123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import {
- defineStore
- } from 'pinia';
- import config from '@/config'
- import storage from '@/utils/storage'
- import constant from '@/utils/constant'
- import {
- tabMenu,
- workMenuList
- } from '@/api/system.js'
- const baseUrl = config.baseUrl
- const usePermissionStore = defineStore('permission', {
- state: () => ({
- permissions_menu: storage.get(constant.permissions_menu),
- permissions_btn: storage.get(constant.permissions_btn)
- }),
- actions: {
- // 获取用户权限信息
- GetPermis() {
- return new Promise(async (resolve, reject) => {
- let sysIds = await getSystemMenus()
- if (sysIds.length > 0) {
- workMenuList({
- sysId: sysIds //平台端获取固定系统ID
- }).then(res => {
- console.log('菜单', res)
- resolve(res)
- }).catch(error => {
- reject(error)
- })
- } else {
- reject('没有权限')
- }
- })
- }
- }
- });
- //获取顶部系统
- function getSystemMenus() {
- return new Promise((resolve, reject) => {
- tabMenu({}).then(res => {
- console.log('res', res)
- let arr = [];
- //pc固定的四个系统id,如有改动,对应调整
- // let menuIds = [371447078143236, 374535658992901, 374535711753477, 374535878972677];
- //pc固定的四个系统标识,如有改动,对应调整
- let menuCodes = ['xy_system', 'xy_quality', 'xy_data', 'xy_merc_be', 'xy_merc_mini'];
- if (res && res.length) {
- res.forEach(i => {
- if (menuCodes.find(j => j == i.code)) {
- arr.push(i.id)
- }
- })
- }
- resolve(arr)
- }).catch(err => {
- reject(err)
- })
- })
- }
- function assembleRouter(allRouterMenu) {
- // 收集每一项的下标
- const idMapping = allRouterMenu.reduce((acc, el, i) => {
- acc[el.id] = i;
- return acc;
- }, {});
- let menu = [];
- let btn = [];
- allRouterMenu.forEach(el => {
- // 判断根节点
- if (el.paterId === null || el.paterId === 0) {
- menu.push(el)
- return;
- }
- // 用映射表找到父元素
- const parentEl = allRouterMenu[idMapping[el.paterId]];
- // 把当前元素添加到父元素的`children`数组中
- if (parentEl && el.type !== 3) { //非按钮,组成路由树结构
- parentEl.children = [...(parentEl.children || []), el];
- } else {
- btn.push(el.code)
- }
- });
- return {
- menu: menu,
- btn: btn
- }
- }
- export default usePermissionStore
|