From 45338ffe7d7e9360c0494be78c019bb23216ea46 Mon Sep 17 00:00:00 2001 From: Megghy Date: Sun, 5 Oct 2025 15:13:47 +0800 Subject: [PATCH] feat: Enhance message content handling and improve UI components - Updated `getShowContentParts` function to handle message content more robustly, ensuring proper display of content parts. - Refactored `GamepadViewer.vue` to use async component loading for `GamepadDisplay`, added a toggle for real-time preview. - Implemented debounced search functionality in `PointGoodsView.vue` for improved performance during keyword searches. - Enhanced `PointOrderView.vue` with order filtering capabilities and added statistics display for better user insights. - Improved `PointUserHistoryView.vue` by adding export functionality for history data and enhanced filtering options. - Updated `PointUserLayout.vue` to improve card styling and tab navigation experience. - Refined `PointUserSettings.vue` layout for better user interaction and added responsive design adjustments. - Adjusted `vite.config.mts` for better dependency management and build optimization. --- bun.lockb | Bin 425593 -> 424861 bytes default.d.ts | 10 + package.json | 4 +- src/App.vue | 14 +- src/components.d.ts | 6 - src/components/MonacoEditorComponent.vue | 149 ++++++--- src/components/ScheduleList.vue | 84 +++-- src/components/manage/PointGoodsItem.vue | 141 +++++++-- src/data/Initializer.ts | 10 +- src/data/constants.ts | 5 +- src/main.ts | 23 +- src/views/manage/DanmujiManageView.vue | 149 +++------ src/views/manage/HistoryView.vue | 6 +- src/views/manage/point/PointManage.vue | 134 ++++++-- src/views/manage/point/PointOrderManage.vue | 126 +++++++- src/views/manage/point/PointSettings.vue | 85 +++-- src/views/manage/point/PointUserManage.vue | 140 +++++++- src/views/obs/blivechat/MessageRender.vue | 27 +- src/views/obs/blivechat/constants.js | 10 +- .../components/gamepads/GamepadViewer.vue | 13 +- src/views/pointViews/PointGoodsView.vue | 116 +++++-- src/views/pointViews/PointOrderView.vue | 166 +++++++++- src/views/pointViews/PointUserHistoryView.vue | 262 +++++++++++++-- src/views/pointViews/PointUserLayout.vue | 63 +++- src/views/pointViews/PointUserSettings.vue | 299 ++++++++++++------ vite.config.mts | 42 ++- 26 files changed, 1597 insertions(+), 487 deletions(-) diff --git a/bun.lockb b/bun.lockb index 28847b16367e2167965840c33b5ac3cbfc9db479..ccf46f902a72ff233b65b29a5283f0f50b5aa813 100644 GIT binary patch delta 79133 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 SZK_g5I(*knedD;;@BaXElG^kD delta 79879 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 diff --git a/default.d.ts b/default.d.ts index 391c8cf..16e885a 100644 --- a/default.d.ts +++ b/default.d.ts @@ -31,3 +31,13 @@ declare global { $dialog: DialogProviderInst } } + +// Vite worker 与样式类型声明 +declare module '*?worker' { + const workerConstructor: { new(): Worker } + export default workerConstructor +} +declare module '*.css' { + const content: string + export default content +} diff --git a/package.json b/package.json index 8064826..913b6a7 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "knip": "knip" }, "dependencies": { - "@guolao/vue-monaco-editor": "^1.5.5", "@hyperdx/browser": "^0.21.2", "@hyperdx/cli": "^0.1.0", "@microsoft/signalr": "^9.0.6", @@ -52,6 +51,7 @@ "jszip": "^3.10.1", "linqts": "^3.2.0", "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "md5": "^2.3.0", "mitt": "^3.0.1", "monaco-editor": "^0.53.0", @@ -65,6 +65,7 @@ "unplugin-vue-markdown": "^29.2.0", "uuid": "^13.0.0", "vite": "npm:rolldown-vite@latest", + "vite-plugin-monaco-editor-nls": "^3.0.1", "vite-svg-loader": "^5.1.0", "vue": "3.5.22", "vue-cropperjs": "^5.0.0", @@ -94,6 +95,7 @@ "stylus": "^0.64.0", "typescript": "^5.9.2", "vite-plugin-cdn-import": "^1.0.1", + "vscode-loc": "git+https://github.com/microsoft/vscode-loc.git", "vue-vine": "^1.7.6" } } diff --git a/src/App.vue b/src/App.vue index 4a66542..1a27409 100644 --- a/src/App.vue +++ b/src/App.vue @@ -12,16 +12,18 @@ import { NSpin, zhCN, } from 'naive-ui' -import { computed } from 'vue' +import { computed, defineAsyncComponent } from 'vue' import { useRoute } from 'vue-router' -import ManageLayout from '@/views/ManageLayout.vue' -import ViewerLayout from '@/views/ViewerLayout.vue' import { ThemeType } from './api/api-models' -import ClientLayout from './client/ClientLayout.vue' import TempComponent from './components/TempComponent.vue' import { isDarkMode, theme } from './Utils' -import OBSLayout from './views/OBSLayout.vue' -import OpenLiveLayout from './views/OpenLiveLayout.vue' + +// 将大型布局组件改为异步组件,避免打入入口包 +const ManageLayout = defineAsyncComponent(() => import('@/views/ManageLayout.vue')) +const ViewerLayout = defineAsyncComponent(() => import('@/views/ViewerLayout.vue')) +const ClientLayout = defineAsyncComponent(() => import('./client/ClientLayout.vue')) +const OBSLayout = defineAsyncComponent(() => import('./views/OBSLayout.vue')) +const OpenLiveLayout = defineAsyncComponent(() => import('./views/OpenLiveLayout.vue')) const route = useRoute() const themeType = useStorage('Settings.Theme', ThemeType.Auto) diff --git a/src/components.d.ts b/src/components.d.ts index 382f8ff..09b830b 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -19,19 +19,13 @@ declare module 'vue' { LiveInfoContainer: typeof import('./components/LiveInfoContainer.vue')['default'] MonacoEditorComponent: typeof import('./components/MonacoEditorComponent.vue')['default'] NAlert: typeof import('naive-ui')['NAlert'] - NAvatar: typeof import('naive-ui')['NAvatar'] - NButton: typeof import('naive-ui')['NButton'] - NCard: typeof import('naive-ui')['NCard'] NEllipsis: typeof import('naive-ui')['NEllipsis'] NEmpty: typeof import('naive-ui')['NEmpty'] NFlex: typeof import('naive-ui')['NFlex'] NFormItemGi: typeof import('naive-ui')['NFormItemGi'] NGridItem: typeof import('naive-ui')['NGridItem'] NIcon: typeof import('naive-ui')['NIcon'] - NImage: typeof import('naive-ui')['NImage'] - NPopconfirm: typeof import('naive-ui')['NPopconfirm'] NScrollbar: typeof import('naive-ui')['NScrollbar'] - NSpace: typeof import('naive-ui')['NSpace'] NTag: typeof import('naive-ui')['NTag'] NText: typeof import('naive-ui')['NText'] NTime: typeof import('naive-ui')['NTime'] diff --git a/src/components/MonacoEditorComponent.vue b/src/components/MonacoEditorComponent.vue index 4adbf93..195265d 100644 --- a/src/components/MonacoEditorComponent.vue +++ b/src/components/MonacoEditorComponent.vue @@ -1,66 +1,121 @@ diff --git a/src/components/ScheduleList.vue b/src/components/ScheduleList.vue index 451fcc2..fd0175e 100644 --- a/src/components/ScheduleList.vue +++ b/src/components/ScheduleList.vue @@ -20,24 +20,34 @@ const themeVars = useThemeVars() const weekdays = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] +// 常量定义 +const MILLISECONDS_PER_DAY = 86400000 + function getISOWeek(date: Date) { const target = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())) const dayNumber = target.getUTCDay() || 7 target.setUTCDate(target.getUTCDate() + 4 - dayNumber) const yearStart = new Date(Date.UTC(target.getUTCFullYear(), 0, 1)) - const week = Math.ceil(((target.getTime() - yearStart.getTime()) / 86400000 + 1) / 7) + const week = Math.ceil(((target.getTime() - yearStart.getTime()) / MILLISECONDS_PER_DAY + 1) / 7) return { year: target.getUTCFullYear(), week, } } -const currentISOWeek = getISOWeek(new Date()) +const now = new Date() +const currentISOWeek = getISOWeek(now) +const currentDayOfWeek = (now.getDay() + 6) % 7 // 转换为周一=0的格式 function isCurrentWeek(year: number, week: number) { return year === currentISOWeek.year && week === currentISOWeek.week } +function isCurrentDay(year: number, week: number, dayIndex: number) { + if (!isCurrentWeek(year, week)) return false + return dayIndex === currentDayOfWeek +} + const dateFormatter = new Intl.DateTimeFormat('zh-CN', { month: '2-digit', day: '2-digit', @@ -51,17 +61,40 @@ function getWeekRangeLabel(year: number, week: number) { function getDateFromWeek(year: number, week: number, dayOfWeek: number): Date { // week starts from 1-52, dayOfWeek starts from 0-6 where 0 is Monday - const simple = new Date(year, 0, 1 + (week - 1) * 7) - const dow = simple.getDay() - const ISOweekStart = simple - if (dow <= 4) ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1) - else ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay()) - return new Date(ISOweekStart.getFullYear(), ISOweekStart.getMonth(), ISOweekStart.getDate() + dayOfWeek) + const januaryFourth = new Date(year, 0, 4) + const startOfWeekOne = new Date(januaryFourth) + const dayOfWeekJan4 = (januaryFourth.getDay() + 6) % 7 + startOfWeekOne.setDate(januaryFourth.getDate() - dayOfWeekJan4) + + const targetDate = new Date(startOfWeekOne) + targetDate.setDate(startOfWeekOne.getDate() + (week - 1) * 7 + dayOfWeek) + return targetDate +} + +// 样式工具函数 +function getDayHeaderStyle(year: number, week: number, dayIndex: number, primaryColor: string, primaryColorSuppl: string) { + const isToday = isCurrentDay(year, week, dayIndex) + + return { + marginBottom: '6px', + padding: '4px 8px', + fontSize: '13px', + fontWeight: '600', + background: isToday + ? `linear-gradient(135deg, ${primaryColor}25 0%, ${primaryColor}40 100%)` + : `linear-gradient(135deg, ${primaryColorSuppl}15 0%, ${primaryColorSuppl}25 100%)`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '6px', + boxShadow: isToday ? `0 0 0 2px ${primaryColor}66` : undefined, + transition: 'all 0.3s ease', + } } + + diff --git a/src/views/pointViews/PointUserSettings.vue b/src/views/pointViews/PointUserSettings.vue index 85671a7..ef68e82 100644 --- a/src/views/pointViews/PointUserSettings.vue +++ b/src/views/pointViews/PointUserSettings.vue @@ -274,55 +274,71 @@ defineExpose({ - + 添加地址 + @@ -333,59 +349,93 @@ defineExpose({ title="登录链接" name="2" > - + + + 使用此链接可以直接登录到您的账号 + + + - + 确定要登出吗? - - 切换账号 - - + 切换账号 + + + - - - {{ item.name }} - - - {{ item.uId }} - - - - + + + 当前账号 + + + {{ item.name }} + + + + {{ item.uId }} + + + + + + @@ -403,18 +453,23 @@ defineExpose({ ref="formRef" :model="currentAddress" :rules="rules" + label-placement="top" > - + @@ -423,8 +478,8 @@ defineExpose({ v-model:value="currentAddress.city" :options="cityOptions(currentAddress.province)" :disabled="!currentAddress?.province" - placeholder="请选择市" - style="width: 100px" + placeholder="市" + style="flex: 1; min-width: 100px" filterable @update:value="onAreaSelectChange(1)" /> @@ -433,8 +488,8 @@ defineExpose({ v-model:value="currentAddress.district" :options="currentAddress.city ? districtOptions(currentAddress.province, currentAddress.city) : []" :disabled="!currentAddress?.city" - placeholder="请选择区" - style="width: 100px" + placeholder="区" + style="flex: 1; min-width: 100px" filterable @update:value="onAreaSelectChange(2)" /> @@ -443,8 +498,8 @@ defineExpose({ v-model:value="currentAddress.street" :options="currentAddress.city && currentAddress.district ? streetOptions(currentAddress.province, currentAddress.city, currentAddress.district) : []" :disabled="!currentAddress?.district" - placeholder="请选择街道" - style="width: 150px" + placeholder="街道" + style="flex: 1; min-width: 120px" filterable /> @@ -456,39 +511,43 @@ defineExpose({ > - - - - - - + + + + + + + + - 阅读并同意本站 + 我已阅读并同意本站 - - 保存 - + + 取消 + + + 保存 + + @@ -519,3 +588,37 @@ defineExpose({ + + diff --git a/vite.config.mts b/vite.config.mts index b9701a4..04889b0 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -9,6 +9,7 @@ import Markdown from 'unplugin-vue-markdown/vite' import { defineConfig } from 'vite' import svgLoader from 'vite-svg-loader' import { VineVitePlugin } from 'vue-vine/vite' +// import MonacoEditorNlsPlugin, { esbuildPluginMonacoEditorNls, Languages } from 'vite-plugin-monaco-editor-nls' // 自定义SVGO插件,删除所有名称以sodipodi:和inkscape:开头的元素 const removeSodipodiInkscape = { @@ -87,6 +88,8 @@ export default defineConfig({ include: [/\.vue$/, /\.vue\?vue/, /\.md$/, /\.vine$/], }), VineVitePlugin(), + // Monaco 中文本地化 + // MonacoEditorNlsPlugin({ locale: Languages.zh_hans }), ], server: { port: 51000 }, resolve: { alias: { '@': path.resolve(__dirname, 'src') } }, @@ -97,9 +100,15 @@ export default defineConfig({ }, optimizeDeps: { include: ['@vicons/fluent', '@vicons/ionicons5', 'vue', 'vue-router'], + esbuildOptions: { + // plugins: [ + // esbuildPluginMonacoEditorNls({ locale: Languages.zh_hans }), + // ], + }, }, build: { - sourcemap: true, + // 生产环境建议关闭以减少产物体积与网络请求 + sourcemap: false, target: 'esnext', minify: 'oxc', chunkSizeWarningLimit: 1000, @@ -117,6 +126,37 @@ export default defineConfig({ test: /[\\/]node_modules[\\/](naive-ui|@vueuse[\\/]core)[\\/]/, priority: -10, }, + // 精细化切分大体积依赖,提升缓存与首屏体积可控性 + { + name: 'echarts-vendor', + test: /[\\/]node_modules[\\/](echarts|zrender|vue-echarts)[\\/]/, + priority: -20, + }, + { + name: 'wangeditor-vendor', + test: /[\\/]node_modules[\\/]@wangeditor[\\/]/, + priority: -20, + }, + { + name: 'hyperdx-vendor', + test: /[\\/]node_modules[\\/]@hyperdx[\\/]/, + priority: -20, + }, + { + name: 'xlsx-vendor', + test: /[\\/]node_modules[\\/]xlsx[\\/]/, + priority: -20, + }, + { + name: 'jszip-vendor', + test: /[\\/]node_modules[\\/]jszip[\\/]/, + priority: -20, + }, + { + name: 'html2canvas-vendor', + test: /[\\/]node_modules[\\/]html2canvas[\\/]/, + priority: -20, + }, ], }, },