焊接日报

This commit is contained in:
2026-06-11 09:43:42 +08:00
parent 2c8af0f2e0
commit 06781c69e1
14 changed files with 713 additions and 24 deletions
+29 -6
View File
@@ -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'],
}]
},
})