From da5a9890f33f6c28b48873278db70375cbeab8bf Mon Sep 17 00:00:00 2001 From: Leo Song Date: Fri, 17 Oct 2025 12:17:09 +0800 Subject: [PATCH] Update PublishCenter.vue --- sau_frontend/src/views/PublishCenter.vue | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sau_frontend/src/views/PublishCenter.vue b/sau_frontend/src/views/PublishCenter.vue index 94faca7..d54f431 100644 --- a/sau_frontend/src/views/PublishCenter.vue +++ b/sau_frontend/src/views/PublishCenter.vue @@ -529,9 +529,19 @@ const defaultTabInit = { publishStatus: null // 发布状态,包含message和type } -// tab页数据 - 默认只有一个tab +// helper to create a fresh deep-copied tab from defaultTabInit +const makeNewTab = () => { + // prefer structuredClone when available (newer browsers/node), fallback to JSON + try { + return typeof structuredClone === 'function' ? structuredClone(defaultTabInit) : JSON.parse(JSON.stringify(defaultTabInit)) + } catch (e) { + return JSON.parse(JSON.stringify(defaultTabInit)) + } +} + +// tab页数据 - 默认只有一个tab (use deep copy to avoid shared refs) const tabs = reactive([ - defaultTabInit + makeNewTab() ]) // 账号相关状态 @@ -568,9 +578,9 @@ const recommendedTopics = [ // 添加新tab const addTab = () => { tabCounter++ - const newTab = defaultTabInit - newTab['name'] = `tab${tabCounter}` - newTab['label'] = `发布${tabCounter}` + const newTab = makeNewTab() + newTab.name = `tab${tabCounter}` + newTab.label = `发布${tabCounter}` tabs.push(newTab) activeTab.value = newTab.name }