diff --git a/src/route/AdminRoutes.js b/src/route/AdminRoutes.js index 165b96e..c789fda 100644 --- a/src/route/AdminRoutes.js +++ b/src/route/AdminRoutes.js @@ -22,17 +22,17 @@ export default [{ component: () => import('@/views/admin/Authority.vue') }, { path: `${BASE_PATH}/menus`, - name: 'Menus', + name: 'MenusBase', children: [{ path: '', - name: 'menus-index', + name: 'Menus', component: () => import('@/views/admin/Menus.vue') }, { path: 'edit/:id', - name: 'menus-edit', + name: 'MenuEdit', component: () => import('@/views/admin/MenuEdit.vue'), meta: { - replaceTabHistory: 'menus-index', + replaceTabHistory: 'Menus', labelKey: 'menu.label.menuEdit', icon: 'Edit' } diff --git a/src/stores/TabsViewStore.js b/src/stores/TabsViewStore.js index da2c276..5dd8bd4 100644 --- a/src/stores/TabsViewStore.js +++ b/src/stores/TabsViewStore.js @@ -65,19 +65,14 @@ export const useTabsViewStore = defineStore('tabsView', () => { if (idx < 0) { const replaceIdx = historyTabs.value.findIndex(v => checkMataReplaceHistory(v, tab) || checkMataReplaceHistory(tab, v) || isSameReplaceHistory(v, tab)) + let replaceTab = null if (replaceIdx > -1) { - console.info(replaceIdx, historyTabs.value[replaceIdx]) - if (replaceIdx !== undefined) { - historyTabs.value.splice(replaceIdx, 1, Object.assign({}, tab)) - return - } - } - historyTabs.value.push(Object.assign({}, tab)) // 可能是Proxy,需要解析出来 - if (isCachedTabMode.value && tab.name) { - if (!cachedTabs.value.includes(tab.name)) { - cachedTabs.value.push(tab.name) - } + replaceTab = historyTabs.value[replaceIdx] + historyTabs.value.splice(replaceIdx, 1, Object.assign({}, tab)) + } else { + historyTabs.value.push(Object.assign({}, tab)) // 可能是Proxy,需要解析出来 } + addCachedTab(tab, replaceTab) } } } @@ -116,8 +111,9 @@ export const useTabsViewStore = defineStore('tabsView', () => { } } } - const addCachedTab = (tab) => { - if (isCachedTabMode.value && tab.name) { + const addCachedTab = (tab, replaceTab) => { + if (isCachedTabMode.value && tab.name && !tab.name.includes('-')) { + removeCachedTab(replaceTab) if (!cachedTabs.value.includes(tab.name)) { cachedTabs.value.push(tab.name) } diff --git a/src/views/admin/MenuEdit.vue b/src/views/admin/MenuEdit.vue index d095c6a..7226c3d 100644 --- a/src/views/admin/MenuEdit.vue +++ b/src/views/admin/MenuEdit.vue @@ -1,10 +1,12 @@