import portal from '@/api/portal.js' const state = { menus: [], registRouter: false, bookmark: {}, selectedMenu: {}, appMenus: [], appTypes: [], } const getters = { menus: function (state) { return state.menus }, bookmark: function (state) { return state.bookmark }, appMenus: (state) => state.appMenus, appTypes: (state) => state.appTypes, } const actions = { actionRegistRouter({commit, state}) { commit('mutationRegistRouter') }, actionMenus({commit, state}) { return new Promise((resolve, reject) => { if (state.menus && state.menus.length >= 1) { resolve(state.menus) return } portal .getMenus() .then((data) => { sessionStorage.setItem('currentMenus', JSON.stringify(data)) commit('mutationMenus', data) resolve(data) }) .catch((error) => { reject(error) }) }) }, actionMenusEmpty({commit, state}) { return new Promise((resolve, reject) => { commit('mutationMenus', []) }) }, //附件在线预览 onlinePreview({commit, state}, id) { return new Promise((resolve, reject) => { portal.onlinePreview(id, (response) => { resolve(response.data) }) }) }, //附件下载 downloadFile({commit, state}, id) { portal.downloadFile(id) }, //获取用户头像 downloadImg({commit, state}, fileId) { return new Promise((resolve, reject) => { portal.downloadImg(fileId, (response) => { resolve(response) }) }) }, actionMenuBookmark({commit, state}) { return new Promise((resolve, reject) => { portal.getMenuBookmark().then((data) => { sessionStorage.setItem('currentMenuBookmark', JSON.stringify(data)) commit('mutationBookmark', data) resolve(data) }) }) }, removeMenuBookmark({commit, state}, ids) { return new Promise((resolve, reject) => { portal.removeBookmarkByMenuIds(ids).then((result) => { portal.getMenuBookmark().then((data) => { sessionStorage.setItem('currentMenuBookmark', JSON.stringify(data)) commit('mutationBookmark', data) resolve(data) }) }) }) }, async getAppMenus({commit, state}, id) { let data = await portal.getSysAppTree(id) commit('setAppMenus', data) return data }, async getAppTypes({commit, state}) { let data = await portal.getMenuTree() let treeData = data[0].children.filter((item) => item.alias === 'app_menu') commit('setAppTypes', treeData[0].children) return data.value }, } const mutations = { mutationRegistRouter(state) { state.registRouter = true }, mutationMenus(state, menus) { state.menus = menus }, mutationBookmark(state, bookmark) { state.bookmark = bookmark }, setSelectedMenu(state, currentMenu) { state.selectedMenu = currentMenu }, setAppMenus(state, appMenus) { state.appMenus = appMenus }, setAppTypes(state, appTypes) { state.appTypes = appTypes }, } export default { namespaced: true, state, getters, actions, mutations, }