feat: task#2060
This commit is contained in:
parent
e39c4aaf76
commit
10a59c318b
|
@ -1,12 +1,13 @@
|
|||
import { defineStore } from 'pinia'
|
||||
import { queryOwnThree } from '@/api/system/menu'
|
||||
import { filterAsyncRouter, findCodeRoute, MenuItem } from '@/utils/menu'
|
||||
import {filterAsyncRouter, filterCommunityMenus, findCodeRoute, MenuItem} from '@/utils/menu'
|
||||
import { cloneDeep, isArray } from 'lodash-es'
|
||||
import { usePermissionStore } from './permission'
|
||||
import router from '@/router'
|
||||
import { onlyMessage } from '@/utils/comm'
|
||||
import { AccountMenu, NotificationRecordCode, NotificationSubscriptionCode } from '@/router/menu'
|
||||
import { MESSAGE_SUBSCRIBE_MENU_CODE, USER_CENTER_MENU_CODE } from '@/utils/consts'
|
||||
import {isNoCommunity} from "@/utils/utils";
|
||||
|
||||
const defaultOwnParams = [
|
||||
{
|
||||
|
@ -95,15 +96,19 @@ export const useMenuStore = defineStore({
|
|||
const resp = await queryOwnThree({ paging: false, terms: defaultOwnParams })
|
||||
if (resp.success) {
|
||||
const permission = usePermissionStore()
|
||||
let resultData = resp.result
|
||||
if (!isNoCommunity) {
|
||||
resultData = filterCommunityMenus(resultData)
|
||||
}
|
||||
permission.permissions = {}
|
||||
const { menusData, silderMenus } = filterAsyncRouter(resp.result)
|
||||
const { menusData, silderMenus } = filterAsyncRouter(resultData)
|
||||
|
||||
// 是否存在通知订阅
|
||||
const hasMessageSub = resp.result.some((item: { code: string }) => item.code === MESSAGE_SUBSCRIBE_MENU_CODE)
|
||||
const hasMessageSub = resultData.some((item: { code: string }) => item.code === MESSAGE_SUBSCRIBE_MENU_CODE)
|
||||
if (!hasMessageSub) {
|
||||
AccountMenu.children = AccountMenu.children.filter((item: { code: string }) => ![NotificationSubscriptionCode, NotificationRecordCode].includes(item.code) )
|
||||
}
|
||||
this.menus = findCodeRoute([...resp.result, AccountMenu])
|
||||
this.menus = findCodeRoute([...resultData, AccountMenu])
|
||||
Object.keys(this.menus).forEach((item) => {
|
||||
const _item = this.menus[item]
|
||||
if (_item.buttons?.length) {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import { cloneDeep } from 'lodash-es'
|
||||
import { BlankLayoutPage, BasicLayoutPage } from 'components/Layout'
|
||||
import { isNoCommunity } from '@/utils/utils'
|
||||
|
||||
const pagesComponent = import.meta.glob('../views/**/*.vue');
|
||||
|
||||
/**
|
||||
|
@ -206,6 +208,16 @@ const findDetailRoutes = (routes: any[]): any[] => {
|
|||
return newRoutes
|
||||
}
|
||||
|
||||
const filterMenus = ['device/DashBoard']
|
||||
export const filterCommunityMenus = (menuData: any[]) => {
|
||||
return menuData.filter(item => {
|
||||
if (item.children) {
|
||||
item.children = filterCommunityMenus(item.children)
|
||||
}
|
||||
return !filterMenus.includes(item.code)
|
||||
})
|
||||
}
|
||||
|
||||
export const findCodeRoute = (asyncRouterMap: any[]) => {
|
||||
const routeMeta = {}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="device-count-container">
|
||||
<h5 class="title">设备统计</h5>
|
||||
<span class="detail" @click="jumpPage('device/DashBoard')"> 详情 </span>
|
||||
<span class="detail" @click="jumpPage('device/DashBoard')" v-if="isNoCommunity"> 详情 </span>
|
||||
|
||||
<div class="box-list">
|
||||
<div class="box-item">
|
||||
|
@ -21,6 +21,7 @@
|
|||
<script setup lang="ts">
|
||||
import { getDeviceCount_api, getProductCount_api } from '@/api/home';
|
||||
import { useMenuStore } from '@/store/menu';
|
||||
import { isNoCommunity } from '@/utils/utils'
|
||||
|
||||
const { jumpPage } = useMenuStore();
|
||||
const projectNum = ref(0);
|
||||
|
|
Loading…
Reference in New Issue