焊接日报
This commit is contained in:
+29
-6
@@ -3,24 +3,42 @@ import {
|
||||
} from 'pinia'
|
||||
import {
|
||||
ref,
|
||||
computed
|
||||
computed,
|
||||
watch
|
||||
} from 'vue'
|
||||
import {pastelColors,defaultApps} from '@/utils/constant.js'
|
||||
import {reqMenuPowerList} from '@/api/auth.js'
|
||||
|
||||
export const useMenuStore = defineStore('menu', () => {
|
||||
// 应用列表(默认配置 + 持久化)
|
||||
const appsList = ref([...defaultApps])
|
||||
// 持久化:仅缓存快捷应用的 menuId 列表,不缓存全部菜单
|
||||
const quickAppIds = ref([])
|
||||
|
||||
// 根据默认配置 + 持久化状态重建应用列表
|
||||
const buildAppsList = () => {
|
||||
return defaultApps.map(app => ({
|
||||
...app,
|
||||
selected: quickAppIds.value.includes(app.menuId)
|
||||
}))
|
||||
}
|
||||
|
||||
// 应用列表(从默认配置构建 + 持久化 selected 状态)
|
||||
const appsList = ref(buildAppsList())
|
||||
// 持久化恢复后,appsList 需重新根据 quickAppIds 构建
|
||||
watch(quickAppIds, (ids) => {
|
||||
if (ids && ids.length > 0) {
|
||||
appsList.value = buildAppsList()
|
||||
}
|
||||
}, { deep: true })
|
||||
// 编辑时的临时缓存
|
||||
const editCache = ref([])
|
||||
// 菜单的权限列表(后端返回的有权限的菜单 code 数组)
|
||||
const menuProwerList = ref([])
|
||||
|
||||
// 快捷应用列表(已选择的)
|
||||
const quickApps = computed(() => appsList.value.filter(app => app.selected&&hasMenuPermission(app.menuId)))
|
||||
const quickApps = computed(() => appsList.value.filter(app => app.selected && hasMenuPermission(app.menuId)))
|
||||
|
||||
// 业务查询列表(未选择的)
|
||||
const queryApps = computed(() => appsList.value.filter(app => !app.selected&&hasMenuPermission(app.menuId)))
|
||||
const queryApps = computed(() => appsList.value.filter(app => !app.selected && hasMenuPermission(app.menuId)))
|
||||
|
||||
/**
|
||||
* 打开编辑弹窗(备份当前状态)
|
||||
@@ -41,6 +59,10 @@ export const useMenuStore = defineStore('menu', () => {
|
||||
*/
|
||||
const confirmEdit = () => {
|
||||
appsList.value = editCache.value.map(app => ({ ...app }))
|
||||
// 只持久化快捷应用的 menuId 列表
|
||||
quickAppIds.value = appsList.value
|
||||
.filter(app => app.selected)
|
||||
.map(app => app.menuId)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,6 +101,7 @@ export const useMenuStore = defineStore('menu', () => {
|
||||
|
||||
return {
|
||||
appsList,
|
||||
quickAppIds,
|
||||
editCache,
|
||||
quickApps,
|
||||
quickAppsWithPermission,
|
||||
@@ -96,7 +119,7 @@ export const useMenuStore = defineStore('menu', () => {
|
||||
enabled: true,
|
||||
strategies: [{
|
||||
key: 'menu',
|
||||
paths: ['appsList'],
|
||||
paths: ['quickAppIds'],
|
||||
}]
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user