|
@@ -1,7 +1,7 @@
|
|
import { defineStore } from 'pinia'
|
|
import { defineStore } from 'pinia'
|
|
import { TemplateId } from './constant'
|
|
import { TemplateId } from './constant'
|
|
import { useUserStore } from './user'
|
|
import { useUserStore } from './user'
|
|
-import { mainURL,liveStreamURL } from '@/env'
|
|
|
|
|
|
+import { mainURL, liveStreamURL } from '@/env'
|
|
import {
|
|
import {
|
|
fetchRomms,
|
|
fetchRomms,
|
|
fetchRoomMiniCode,
|
|
fetchRoomMiniCode,
|
|
@@ -22,6 +22,15 @@ export type Room = SRoom & {
|
|
scenes: Scenes
|
|
scenes: Scenes
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+export interface ShareLinkType {
|
|
|
|
+ num: string
|
|
|
|
+ name?: string
|
|
|
|
+ roomId: number
|
|
|
|
+ role?: string
|
|
|
|
+ lang?: string
|
|
|
|
+ avatar?: string
|
|
|
|
+}
|
|
|
|
+
|
|
export const createRoom = (room: Partial<Room>): Room => {
|
|
export const createRoom = (room: Partial<Room>): Room => {
|
|
const user = useUserStore().current
|
|
const user = useUserStore().current
|
|
return {
|
|
return {
|
|
@@ -39,18 +48,24 @@ export const createRoom = (room: Partial<Room>): Room => {
|
|
|
|
|
|
export const useRoomStore = defineStore('room', {
|
|
export const useRoomStore = defineStore('room', {
|
|
state: () => ({
|
|
state: () => ({
|
|
- list: [] as Rooms
|
|
|
|
|
|
+ list: [] as Rooms,
|
|
|
|
+ shareLink: ''
|
|
}),
|
|
}),
|
|
getters: {
|
|
getters: {
|
|
getNums:
|
|
getNums:
|
|
() =>
|
|
() =>
|
|
- <T extends Pick<Room, 'scenes'>>(room: T) =>
|
|
|
|
- room.scenes.map(scene => scene.num),
|
|
|
|
- getShareUrl: () => (room: Room, m?: string) => {
|
|
|
|
- // m=${scene}
|
|
|
|
- return m
|
|
|
|
- ? `${liveStreamURL}?m=${m}&roomId=roomId_${room.id}`
|
|
|
|
- : `${liveStreamURL}?&roomId=roomId_${room.id}`
|
|
|
|
|
|
+ <T extends Pick<Room, 'scenes'>>(room: T) =>
|
|
|
|
+ room.scenes.map(scene => scene.num),
|
|
|
|
+ getShareUrl: () => (param: ShareLinkType) => {
|
|
|
|
+ const search = new URLSearchParams()
|
|
|
|
+ search.set('m', `${param.num}`)
|
|
|
|
+ search.set('role', `${param.role || 'leader'}`)
|
|
|
|
+ param.name && search.set('name', `${param.name}`)
|
|
|
|
+ search.set('roomId', `roomId_${param.roomId}`)
|
|
|
|
+ param.avatar && search.set('avatar', param.avatar)
|
|
|
|
+ param.lang && search.set('set', param.lang)
|
|
|
|
+ search.set('isTour', '0')
|
|
|
|
+ return liveStreamURL + '?' + search.toString()
|
|
},
|
|
},
|
|
filter: state => (keyowrd: string) =>
|
|
filter: state => (keyowrd: string) =>
|
|
state.list.filter(room => room.title.includes(keyowrd))
|
|
state.list.filter(room => room.title.includes(keyowrd))
|
|
@@ -88,6 +103,15 @@ export const useRoomStore = defineStore('room', {
|
|
async setLeaderRoomMiniCode(room: Room) {
|
|
async setLeaderRoomMiniCode(room: Room) {
|
|
const code = room.leaderMiniCode || (await fetchLeaderRoomMiniCode(room))
|
|
const code = room.leaderMiniCode || (await fetchLeaderRoomMiniCode(room))
|
|
room.leaderMiniCode = code
|
|
room.leaderMiniCode = code
|
|
|
|
+ },
|
|
|
|
+ setShareLink(param: ShareLinkType) {
|
|
|
|
+ const search = new URLSearchParams()
|
|
|
|
+ search.set('m', `${param.num}`)
|
|
|
|
+ search.set('role', `${param.role || 'leader'}`)
|
|
|
|
+ param.name && search.set('name', `${param.name}`)
|
|
|
|
+ search.set('roomId', `${param.roomId}`)
|
|
|
|
+ param.lang && search.set('set', param.lang)
|
|
|
|
+ this.shareLink = liveStreamURL + search.toString()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|