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 router from '@/router'
|
||||
|
||||
// 定义名为 'common' 的 Pinia Store
|
||||
export const useCommonStore = defineStore('common', {
|
||||
state: () => {
|
||||
return {
|
||||
// 状态 (state) - 存储应用的数据
|
||||
state: () => ({
|
||||
// 页面文档可视高度(随窗口改变大小)
|
||||
documentClientHeight: 0,
|
||||
// 侧边栏, 布局皮肤, light(浅色) / dark(黑色)
|
||||
// 侧边栏布局皮肤, light(浅色) / dark(黑色)
|
||||
sidebarLayoutSkin: 'dark',
|
||||
// 侧边栏, 折叠状态
|
||||
// 侧边栏折叠状态
|
||||
sidebarFold: true,
|
||||
// 侧边栏, 菜单
|
||||
// 侧边栏菜单列表
|
||||
menuList: [],
|
||||
// 当前激活的菜单名称
|
||||
menuActiveName: '',
|
||||
// 主入口标签页
|
||||
// 主入口标签页列表
|
||||
mainTabs: [],
|
||||
// 当前激活的主入口标签页名称
|
||||
mainTabsActiveName: '',
|
||||
// 当前选择的标签
|
||||
// 当前选择的标签链(用于面包屑导航)
|
||||
selectMenu: [],
|
||||
// 路由列表
|
||||
routeList: [],
|
||||
// 菜单项 ID 列表
|
||||
menuIds: [],
|
||||
// 当前选中的左侧菜单 ID
|
||||
selectLeftId: '',
|
||||
// 当前选中的右侧菜单 ID
|
||||
selectRightId: ''
|
||||
}
|
||||
},
|
||||
}),
|
||||
|
||||
// 动作 (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 => {
|
||||
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) {
|
||||
// 当前选中tab被删除
|
||||
// 如果还有其他标签页,则切换到最后一个标签页
|
||||
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 {
|
||||
this.menuActiveName = ''
|
||||
router.push({ name: 'home' })
|
||||
// 如果没有其他标签页,则重置菜单激活名称并跳转到主页
|
||||
this.menuActiveName = '';
|
||||
router.push({ name: 'home' });
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
Loading…
Reference in new issue