feat: task#2060

This commit is contained in:
XieYongHong 2023-06-07 10:56:22 +08:00
parent e39c4aaf76
commit 10a59c318b
3 changed files with 23 additions and 5 deletions

View File

@ -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) {

View File

@ -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 = {}

View File

@ -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);