From 9d0ea6c591fa288bb86481fc573d14434d8a2b23 Mon Sep 17 00:00:00 2001 From: Megghy Date: Tue, 25 Nov 2025 02:21:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=8D=A1=E7=89=87=E7=BB=84=E4=BB=B6=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=BB=98=E8=AE=A4=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 LiveInfoContainer 组件从传统布局重构为现代卡片式布局 - 优化直播封面展示:添加 LIVE 标识、悬停缩放效果和 16:9 宽高比 - 改进信息展示层次:标题、元数据和统计数据分区显示 - 使用图标增强统计数据可读性(弹幕、互动、收益) - 优化响应式布局,支持移动端和桌面端自适应 - 修改默认启动设置:bootAsMinimized 改为 false - 新增 Man --- src/client/store/useSettings.ts | 2 +- src/components.d.ts | 6 + src/components/LiveInfoContainer.vue | 424 +++++---- src/components/VideoCollectInfoCard.vue | 2 +- src/components/VideoItemCard.vue | 340 ++++++++ src/components/manage/ManagePageHeader.vue | 90 ++ src/views/manage/AnalyzeView.vue | 814 +++++++++-------- src/views/manage/DanmujiManageView.vue | 920 +++++++++++--------- src/views/manage/LiveManager.vue | 216 +++-- src/views/manage/QuestionBoxManageView.vue | 753 ++++++++-------- src/views/manage/QuestionDisplayCard.vue | 55 +- src/views/manage/ScheduleManageView.vue | 143 ++- src/views/manage/SongListManageView.vue | 162 ++-- src/views/manage/VideoCollectDetailView.vue | 846 ++++++++++-------- src/views/manage/VideoCollectManageView.vue | 308 ++++--- src/views/manage/point/PointManage.vue | 137 ++- src/views/obs/LiveLotteryOBS.vue | 14 +- src/views/open_live/OpenLottery.vue | 726 +++++++++------ 18 files changed, 3496 insertions(+), 2462 deletions(-) create mode 100644 src/components/VideoItemCard.vue create mode 100644 src/components/manage/ManagePageHeader.vue diff --git a/src/client/store/useSettings.ts b/src/client/store/useSettings.ts index 70629a5..04548c9 100644 --- a/src/client/store/useSettings.ts +++ b/src/client/store/useSettings.ts @@ -30,7 +30,7 @@ export const useSettings = defineStore('settings', () => { const defaultSettings: VTsuruClientSettings = { useDanmakuClientType: 'openlive', fallbackToOpenLive: true, - bootAsMinimized: true, + bootAsMinimized: false, danmakuHistorySize: 100, loginType: 'qrcode', diff --git a/src/components.d.ts b/src/components.d.ts index 95ca6f9..65231c9 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -22,6 +22,7 @@ declare module 'vue' { FeedbackItem: typeof import('./components/FeedbackItem.vue')['default'] LabelItem: typeof import('./components/LabelItem.vue')['default'] LiveInfoContainer: typeof import('./components/LiveInfoContainer.vue')['default'] + ManagePageHeader: typeof import('./components/manage/ManagePageHeader.vue')['default'] MonacoEditorComponent: typeof import('./components/MonacoEditorComponent.vue')['default'] NAlert: typeof import('naive-ui')['NAlert'] NAvatar: typeof import('naive-ui')['NAvatar'] @@ -45,6 +46,7 @@ declare module 'vue' { NScrollbar: typeof import('naive-ui')['NScrollbar'] NSelect: typeof import('naive-ui')['NSelect'] NSpace: typeof import('naive-ui')['NSpace'] + NSpin: typeof import('naive-ui')['NSpin'] NStatistic: typeof import('naive-ui')['NStatistic'] NSwitch: typeof import('naive-ui')['NSwitch'] NTag: typeof import('naive-ui')['NTag'] @@ -72,6 +74,7 @@ declare module 'vue' { UserBasicInfoCard: typeof import('./components/UserBasicInfoCard.vue')['default'] VEditor: typeof import('./components/VEditor.vue')['default'] VideoCollectInfoCard: typeof import('./components/VideoCollectInfoCard.vue')['default'] + VideoItemCard: typeof import('./components/VideoItemCard.vue')['default'] } } @@ -87,6 +90,7 @@ declare global { const FeedbackItem: typeof import('./components/FeedbackItem.vue')['default'] const LabelItem: typeof import('./components/LabelItem.vue')['default'] const LiveInfoContainer: typeof import('./components/LiveInfoContainer.vue')['default'] + const ManagePageHeader: typeof import('./components/manage/ManagePageHeader.vue')['default'] const MonacoEditorComponent: typeof import('./components/MonacoEditorComponent.vue')['default'] const NAlert: typeof import('naive-ui')['NAlert'] const NAvatar: typeof import('naive-ui')['NAvatar'] @@ -110,6 +114,7 @@ declare global { const NScrollbar: typeof import('naive-ui')['NScrollbar'] const NSelect: typeof import('naive-ui')['NSelect'] const NSpace: typeof import('naive-ui')['NSpace'] + const NSpin: typeof import('naive-ui')['NSpin'] const NStatistic: typeof import('naive-ui')['NStatistic'] const NSwitch: typeof import('naive-ui')['NSwitch'] const NTag: typeof import('naive-ui')['NTag'] @@ -137,4 +142,5 @@ declare global { const UserBasicInfoCard: typeof import('./components/UserBasicInfoCard.vue')['default'] const VEditor: typeof import('./components/VEditor.vue')['default'] const VideoCollectInfoCard: typeof import('./components/VideoCollectInfoCard.vue')['default'] + const VideoItemCard: typeof import('./components/VideoItemCard.vue')['default'] } \ No newline at end of file diff --git a/src/components/LiveInfoContainer.vue b/src/components/LiveInfoContainer.vue index 0621670..c337a9f 100644 --- a/src/components/LiveInfoContainer.vue +++ b/src/components/LiveInfoContainer.vue @@ -1,22 +1,25 @@ diff --git a/src/components/VideoCollectInfoCard.vue b/src/components/VideoCollectInfoCard.vue index 80ab8b8..1f661e9 100644 --- a/src/components/VideoCollectInfoCard.vue +++ b/src/components/VideoCollectInfoCard.vue @@ -42,7 +42,7 @@ function onClick() {