|
@@ -1,8 +1,25 @@
|
|
-import { getAllFunctions, getCanUseFunctions, saveCommonFunctions } from '@/api/modules'
|
|
|
|
|
|
+import { tryCallHooks } from '@jianyu/easy-inject-qiankun'
|
|
|
|
+import { getWorkspaceMenu, workspaceCommonUse } from '@/api/modules'
|
|
|
|
+
|
|
|
|
+// 把菜单接口数据转化成一维数组
|
|
|
|
+function flatMenuList (list = [], index) {
|
|
|
|
+ let children = []
|
|
|
|
+ if (Array.isArray(list) && list.length !== 0) {
|
|
|
|
+ const level = index + 1
|
|
|
|
+ children = children.concat(list)
|
|
|
|
+ list.forEach(menu => {
|
|
|
|
+ menu.level = level
|
|
|
|
+ const r = flatMenuList(menu.child, level)
|
|
|
|
+ children = children.concat(r)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ return children
|
|
|
|
+}
|
|
|
|
|
|
export default {
|
|
export default {
|
|
namespaced: true,
|
|
namespaced: true,
|
|
state: () => ({
|
|
state: () => ({
|
|
|
|
+ platform: 'PC',
|
|
maxCount: 8,
|
|
maxCount: 8,
|
|
dialogShow: false,
|
|
dialogShow: false,
|
|
allFunctions: [], // 所有功能
|
|
allFunctions: [], // 所有功能
|
|
@@ -28,13 +45,33 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
actions: {
|
|
actions: {
|
|
- // 获取所有功能
|
|
|
|
- async getAllFunctions ({ commit }) {
|
|
|
|
|
|
+ // 获取所有可用功能
|
|
|
|
+ async getAllFunctions ({ commit, dispatch }, payload) {
|
|
|
|
+ const { vm } = payload
|
|
|
|
+ tryCallHooks(vm.$BraceHooks, 'getStore', {}, async () => {
|
|
|
|
+ dispatch('getWorkspaceMenu')
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 获取工作桌面菜单
|
|
|
|
+ async getWorkspaceMenu ({ state, commit }) {
|
|
try {
|
|
try {
|
|
// 平台参数 platform 平台:默认PC,微信:WX,app:APP, 可不传
|
|
// 平台参数 platform 平台:默认PC,微信:WX,app:APP, 可不传
|
|
- const { data = [], error_code: code } = await getAllFunctions()
|
|
|
|
|
|
+ const { data = [], error_code: code } = await getWorkspaceMenu()
|
|
if (code === 0 && data) {
|
|
if (code === 0 && data) {
|
|
- commit('setAllFunctions', data)
|
|
|
|
|
|
+ const menuList = flatMenuList(data.menuList, 0)
|
|
|
|
+ // 排除无权限的
|
|
|
|
+ const usableMenu = menuList.filter(menu => menu.level === 3 && menu.usable)
|
|
|
|
+ // 按照name去重
|
|
|
|
+ const list = []
|
|
|
|
+ const nameList = []
|
|
|
|
+ usableMenu.forEach(menu => {
|
|
|
|
+ const { name } = menu
|
|
|
|
+ if (!nameList.includes(name)) {
|
|
|
|
+ list.push(menu)
|
|
|
|
+ nameList.push(name)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ commit('setAllFunctions', list)
|
|
} else {
|
|
} else {
|
|
commit('setAllFunctions', [])
|
|
commit('setAllFunctions', [])
|
|
}
|
|
}
|
|
@@ -43,16 +80,13 @@ export default {
|
|
return []
|
|
return []
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- // 获取常用功能
|
|
|
|
- async getCanUseFunctions ({ commit }) {
|
|
|
|
|
|
+ // 获取自己已经选择的常用功能
|
|
|
|
+ async getCanUseFunctions ({ state, commit }) {
|
|
try {
|
|
try {
|
|
- const { data, error_code: code } = await getCanUseFunctions()
|
|
|
|
- if (code === 0 && data && Array.isArray(data)) {
|
|
|
|
- data.forEach(v => {
|
|
|
|
- if (v.name.indexOf('/') > -1) {
|
|
|
|
- v.name = v.name.replace('/', '/<br>')
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ const { data = [], error_code: code } = await workspaceCommonUse('list', {
|
|
|
|
+ platform: state.platform
|
|
|
|
+ })
|
|
|
|
+ if (code === 0 && data) {
|
|
commit('setCommonList', data)
|
|
commit('setCommonList', data)
|
|
} else {
|
|
} else {
|
|
commit('setCommonList', [])
|
|
commit('setCommonList', [])
|
|
@@ -68,11 +102,11 @@ export default {
|
|
return commit('changeDialogState', false)
|
|
return commit('changeDialogState', false)
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
- const { data, error_code: code, error_msg: msg } = await saveCommonFunctions({
|
|
|
|
- platform: 'PC',
|
|
|
|
- names: state.saveData.toString()
|
|
|
|
|
|
+ const { error_code: code, error_msg: msg } = await workspaceCommonUse('save', {
|
|
|
|
+ platform: state.platform,
|
|
|
|
+ menuIds: state.saveData.toString()
|
|
})
|
|
})
|
|
- if (code === 0 && data) {
|
|
|
|
|
|
+ if (code === 0) {
|
|
dispatch('getCanUseFunctions')
|
|
dispatch('getCanUseFunctions')
|
|
} else {
|
|
} else {
|
|
throw new Error(msg)
|
|
throw new Error(msg)
|