diff --git a/bun.lockb b/bun.lockb index 16a7a86..81fe540 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/message_render_content.txt b/message_render_content.txt deleted file mode 100644 index 58cbbac..0000000 Binary files a/message_render_content.txt and /dev/null differ diff --git a/package.json b/package.json index 83dbfd7..7c84dcb 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "eslint": "^9.26.0", "eslint-plugin-vue": "^10.1.0", "stylus": "^0.64.0", - "typescript": "^5.8.3", + "typescript": "^5.9.0-dev.20250512", "vue-vine": "^0.4.4" } } diff --git a/src/components/VEditor.vue b/src/components/VEditor.vue index c7bb873..fb55b3e 100644 --- a/src/components/VEditor.vue +++ b/src/components/VEditor.vue @@ -3,12 +3,13 @@ import { isDarkMode } from '@/Utils' import { APIRoot } from '@/api/api-models' import { GetHeaders } from '@/api/query' import '@/assets/editorDarkMode.css' -import { BASE_URL, VTSURU_API_URL } from '@/data/constants' +import { VTSURU_API_URL } from '@/data/constants' import { DomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor' +// @ts-ignore import { Editor, Toolbar } from '@wangeditor/editor-for-vue' import '@wangeditor/editor/dist/css/style.css' // 引入 css import { NotificationReactive, useMessage } from 'naive-ui' -import { onBeforeUnmount, ref, shallowRef, onMounted } from 'vue' +import { onBeforeUnmount, ref, shallowRef } from 'vue' type InsertFnType = (url: string, alt: string, href: string) => void diff --git a/src/store/useWebFetcher.ts b/src/store/useWebFetcher.ts index 294af1b..4784275 100644 --- a/src/store/useWebFetcher.ts +++ b/src/store/useWebFetcher.ts @@ -471,5 +471,6 @@ export const useWebFetcher = defineStore('WebFetcher', () => { // 实例 (谨慎暴露,主要用于调试或特定场景) signalRClient: computed(() => signalRClient.value), // 返回计算属性以防直接修改 + client }; }); \ No newline at end of file diff --git a/src/views/manage/SongListManageView.vue b/src/views/manage/SongListManageView.vue index f0462a7..fd5ee30 100644 --- a/src/views/manage/SongListManageView.vue +++ b/src/views/manage/SongListManageView.vue @@ -615,6 +615,7 @@ function parseExcelFile() { * 解析多值字段(如作者、标签等) */ function parseMultipleValues(value: string): string[] { + if (!value) return [] return value ?.replace('/', '/') .replace(',', ',') diff --git a/src/views/manage/obs_store/OBSComponentStoreView.vue b/src/views/manage/obs_store/OBSComponentStoreView.vue index 37510d2..5575e43 100644 --- a/src/views/manage/obs_store/OBSComponentStoreView.vue +++ b/src/views/manage/obs_store/OBSComponentStoreView.vue @@ -147,7 +147,7 @@ const accountInfo = useAccount(); const biliAuth = useBiliAuth(); // 若需要B站授权信息 const message = useMessage(); -const userInfo = ref(accountInfo.value.id ? { id: accountInfo.value.id, name: accountInfo.value.username } as UserInfo : undefined); // 模拟 +const userInfo = ref(accountInfo.value.id ? { id: accountInfo.value.id, name: accountInfo.value.name } as UserInfo : undefined); // 模拟 const availableComponents = ref([]); const currentSelectedComponentId = ref(null); @@ -234,7 +234,7 @@ async function loadComponentConfig(settingName: string) { isLoading.value = true; try { - const configData = await DownloadConfig(settingName, userInfo.value.id); + const configData = await DownloadConfig(settingName, userInfo.value.id); const defaultConfig = dynamicComponentRef.value?.DefaultConfig || {}; if (configData.msg || Object.keys(configData.data || {}).length === 0) { @@ -242,7 +242,7 @@ async function loadComponentConfig(settingName: string) { message.info('未找到在线配置,已加载默认配置。'); } else { // 合并远程配置和默认配置,确保所有键都存在 - componentConfig.value = { ...defaultConfig, ...configData.data }; + componentConfig.value = configData.data; } } catch (error) { console.error('加载组件配置失败:', error); @@ -261,11 +261,9 @@ async function saveComponentConfig() { } isLoading.value = true; try { - await UploadConfig({ - name: currentSelectedComponent.value.settingName, - config: JSON.stringify(componentConfigForEditing.value), // 保存编辑后的配置 - isPublic: false, // 或根据需要设置为 true - }); + await UploadConfig(currentSelectedComponent.value.settingName, + JSON.stringify(componentConfigForEditing.value), // 保存编辑后的配置 + false) // 或根据需要设置为 true); message.success('配置保存成功!'); componentConfig.value = JSON.parse(JSON.stringify(componentConfigForEditing.value)); // 更新运行时配置 showSettingModal.value = false; diff --git a/src/views/manage/obs_store/components/ExampleOBSComponent.vue b/src/views/manage/obs_store/components/ExampleOBSComponent.vue index 51a2753..2042d03 100644 --- a/src/views/manage/obs_store/components/ExampleOBSComponent.vue +++ b/src/views/manage/obs_store/components/ExampleOBSComponent.vue @@ -4,7 +4,7 @@ class="example-obs-component" >

{{ localConfig.contentText || '这是示例 OBS 组件的内容。' }}

@@ -31,7 +31,7 @@ diff --git a/src/views/manage/obs_store/components/gamepads/SvgInspector.vue b/src/views/manage/obs_store/components/gamepads/SvgInspector.vue deleted file mode 100644 index 5d7c9cb..0000000 --- a/src/views/manage/obs_store/components/gamepads/SvgInspector.vue +++ /dev/null @@ -1,404 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/manage/point/PointManage.vue b/src/views/manage/point/PointManage.vue index 2fd8d7b..8a9d37f 100644 --- a/src/views/manage/point/PointManage.vue +++ b/src/views/manage/point/PointManage.vue @@ -1,409 +1,409 @@