diff --git a/package.json b/package.json index 4e541df..0fb8e3f 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "vue-router": "4", "vue-turnstile": "^1.0.0", "vue3-aplayer": "^1.7.3", + "vue3-marquee": "^4.1.0", "vuex": "^4.0.0" }, "devDependencies": { diff --git a/src/App.vue b/src/App.vue index 517c4e9..277cee5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,18 +2,21 @@ - - - - - - - - + +
+ + + + + + +
+ +
@@ -38,6 +41,9 @@ const layout = computed(() => { } else if (route.path.startsWith('/manage')) { document.title = route.meta.title + ' · 管理 · VTsuru' return 'manage' + } else if (route.path.startsWith('/obs')) { + document.title = route.meta.title + ' · OBS · VTsuru' + return 'obs' } else { document.title = route.meta.title + ' · VTsuru' return '' diff --git a/src/api/api-models.ts b/src/api/api-models.ts index f7bbd20..75e0fdb 100644 --- a/src/api/api-models.ts +++ b/src/api/api-models.ts @@ -36,6 +36,7 @@ export interface AccountInfo extends UserInfo { settings: UserSetting token: string + biliAuthCode?: string biliAuthCodeStatus: BiliAuthCodeStatusType eventFetcherOnline: boolean @@ -236,3 +237,22 @@ export interface OpenLiveInfo { websocket_info: WebsocketInfo anchor_info: AnchorInfo } +export interface OpenLiveLotteryUserInfo { + name: string + uId: number + level?: number + avatar: string + fans_medal_level: number + fans_medal_name: string //粉丝勋章名 + fans_medal_wearing_status: boolean //该房间粉丝勋章佩戴情况 + guard_level: number +} +export enum OpenLiveLotteryType{ + Waiting, + Result +} +export interface UpdateLiveLotteryUsersModel { + users: OpenLiveLotteryUserInfo[] + resultUsers: OpenLiveLotteryUserInfo[] + type: OpenLiveLotteryType +} \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts index a673146..b9cc824 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -205,6 +205,20 @@ const routes: Array = [ }, ], }, + { + path: '/obs', + name: 'obs', + children: [ + { + path: 'live-lottery', + name: 'obs-live-lottery', + component: () => import('@/views/obs/LiveLotteryOBS.vue'), + meta: { + title: '直播抽奖', + }, + }, + ], + }, { path: '/:pathMatch(.*)*', name: 'notfound', diff --git a/src/views/manage/MusicRequestManage.vue b/src/views/manage/MusicRequestManage.vue new file mode 100644 index 0000000..da2214c --- /dev/null +++ b/src/views/manage/MusicRequestManage.vue @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/src/views/obs/LiveLotteryOBS.vue b/src/views/obs/LiveLotteryOBS.vue new file mode 100644 index 0000000..7830223 --- /dev/null +++ b/src/views/obs/LiveLotteryOBS.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/open_live/OpenLottery.vue b/src/views/open_live/OpenLottery.vue index 191b06b..e3525b9 100644 --- a/src/views/open_live/OpenLottery.vue +++ b/src/views/open_live/OpenLottery.vue @@ -1,15 +1,17 @@