Compare commits
2 Commits
7fdd1a5829
...
714b4ad4ab
Author | SHA1 | Date |
---|---|---|
|
714b4ad4ab | 2 months ago |
|
8998395a99 | 2 months ago |
@ -1,80 +1,116 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
|
|
||||||
|
// 定义名为 'common' 的 Pinia Store
|
||||||
export const useCommonStore = defineStore('common', {
|
export const useCommonStore = defineStore('common', {
|
||||||
state: () => {
|
// 状态 (state) - 存储应用的数据
|
||||||
return {
|
state: () => ({
|
||||||
// 页面文档可视高度(随窗口改变大小)
|
// 页面文档可视高度(随窗口改变大小)
|
||||||
documentClientHeight: 0,
|
documentClientHeight: 0,
|
||||||
// 侧边栏, 布局皮肤, light(浅色) / dark(黑色)
|
// 侧边栏布局皮肤, light(浅色) / dark(黑色)
|
||||||
sidebarLayoutSkin: 'dark',
|
sidebarLayoutSkin: 'dark',
|
||||||
// 侧边栏, 折叠状态
|
// 侧边栏折叠状态
|
||||||
sidebarFold: true,
|
sidebarFold: true,
|
||||||
// 侧边栏, 菜单
|
// 侧边栏菜单列表
|
||||||
menuList: [],
|
menuList: [],
|
||||||
menuActiveName: '',
|
// 当前激活的菜单名称
|
||||||
// 主入口标签页
|
menuActiveName: '',
|
||||||
mainTabs: [],
|
// 主入口标签页列表
|
||||||
mainTabsActiveName: '',
|
mainTabs: [],
|
||||||
// 当前选择的标签
|
// 当前激活的主入口标签页名称
|
||||||
selectMenu: [],
|
mainTabsActiveName: '',
|
||||||
// 路由列表
|
// 当前选择的标签链(用于面包屑导航)
|
||||||
routeList: [],
|
selectMenu: [],
|
||||||
menuIds: [],
|
// 路由列表
|
||||||
selectLeftId: '',
|
routeList: [],
|
||||||
selectRightId: ''
|
// 菜单项 ID 列表
|
||||||
}
|
menuIds: [],
|
||||||
},
|
// 当前选中的左侧菜单 ID
|
||||||
|
selectLeftId: '',
|
||||||
|
// 当前选中的右侧菜单 ID
|
||||||
|
selectRightId: ''
|
||||||
|
}),
|
||||||
|
|
||||||
|
// 动作 (actions) - 包含更改状态的逻辑
|
||||||
actions: {
|
actions: {
|
||||||
updateDocumentClientHeight (height) {
|
// 更新页面文档可视高度
|
||||||
this.documentClientHeight = height
|
updateDocumentClientHeight(height) {
|
||||||
|
this.documentClientHeight = height;
|
||||||
},
|
},
|
||||||
updateSidebarFold (fold) {
|
|
||||||
this.sidebarFold = fold
|
// 更新侧边栏折叠状态
|
||||||
|
updateSidebarFold(fold) {
|
||||||
|
this.sidebarFold = fold;
|
||||||
},
|
},
|
||||||
updateMenuList (list) {
|
|
||||||
this.menuList = list
|
// 更新侧边栏菜单列表
|
||||||
|
updateMenuList(list) {
|
||||||
|
this.menuList = list;
|
||||||
},
|
},
|
||||||
updateMenuActiveName (name) {
|
|
||||||
this.menuActiveName = name
|
// 更新当前激活的菜单名称
|
||||||
|
updateMenuActiveName(name) {
|
||||||
|
this.menuActiveName = name;
|
||||||
},
|
},
|
||||||
updateMainTabs (tabs) {
|
|
||||||
this.mainTabs = tabs
|
// 更新主入口标签页列表
|
||||||
|
updateMainTabs(tabs) {
|
||||||
|
this.mainTabs = tabs;
|
||||||
},
|
},
|
||||||
updateMainTabsActiveName (name) {
|
|
||||||
this.mainTabsActiveName = name
|
// 更新当前激活的主入口标签页名称
|
||||||
|
updateMainTabsActiveName(name) {
|
||||||
|
this.mainTabsActiveName = name;
|
||||||
},
|
},
|
||||||
updateRouteList (list) {
|
|
||||||
this.routeList = list
|
// 更新路由列表
|
||||||
|
updateRouteList(list) {
|
||||||
|
this.routeList = list;
|
||||||
},
|
},
|
||||||
updateSelectMenu (list) {
|
|
||||||
this.selectMenu = list
|
// 更新当前选择的标签链(用于面包屑导航)
|
||||||
|
updateSelectMenu(list) {
|
||||||
|
this.selectMenu = list;
|
||||||
},
|
},
|
||||||
updateSelectLeftId (id) {
|
|
||||||
this.selectLeftId = id
|
// 更新当前选中的左侧菜单 ID
|
||||||
|
updateSelectLeftId(id) {
|
||||||
|
this.selectLeftId = id;
|
||||||
},
|
},
|
||||||
updateSelectRightId (id) {
|
|
||||||
this.selectRightId = id
|
// 更新当前选中的右侧菜单 ID
|
||||||
|
updateSelectRightId(id) {
|
||||||
|
this.selectRightId = id;
|
||||||
},
|
},
|
||||||
replaceSelectMenu (title) {
|
|
||||||
this.selectMenu.splice(this.selectMenu.length - 1, 1, title)
|
// 替换当前选择的标签链的最后一项
|
||||||
|
replaceSelectMenu(title) {
|
||||||
|
this.selectMenu.splice(this.selectMenu.length - 1, 1, title);
|
||||||
},
|
},
|
||||||
updateMenuIds (list) {
|
|
||||||
this.menuIds = []
|
// 更新菜单项 ID 列表,确保所有 ID 是字符串形式
|
||||||
|
updateMenuIds(list) {
|
||||||
|
this.menuIds = [];
|
||||||
list.forEach(menu => {
|
list.forEach(menu => {
|
||||||
this.menuIds.push(String(menu.menuId + ''))
|
this.menuIds.push(String(menu.menuId + ''));
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
removeMainActiveTab () {
|
|
||||||
this.mainTabs = this.mainTabs.filter(item => item.name !== this.mainTabsActiveName)
|
// 移除当前激活的主入口标签页,并处理相关逻辑
|
||||||
|
removeMainActiveTab() {
|
||||||
|
// 过滤掉当前激活的标签页
|
||||||
|
this.mainTabs = this.mainTabs.filter(item => item.name !== this.mainTabsActiveName);
|
||||||
|
|
||||||
if (this.mainTabs.length >= 1) {
|
if (this.mainTabs.length >= 1) {
|
||||||
// 当前选中tab被删除
|
// 如果还有其他标签页,则切换到最后一个标签页
|
||||||
router.push({ name: this.mainTabs[this.mainTabs.length - 1].name }, () => {
|
router.push({ name: this.mainTabs[this.mainTabs.length - 1].name }, () => {
|
||||||
this.mainTabsActiveName = this.mainTabs[this.mainTabs.length - 1].name
|
this.mainTabsActiveName = this.mainTabs[this.mainTabs.length - 1].name;
|
||||||
})
|
});
|
||||||
} else {
|
} else {
|
||||||
this.menuActiveName = ''
|
// 如果没有其他标签页,则重置菜单激活名称并跳转到主页
|
||||||
router.push({ name: 'home' })
|
this.menuActiveName = '';
|
||||||
|
router.push({ name: 'home' });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
Loading…
Reference in new issue