【update】菜单管理增加是否为外网展示字段

This commit is contained in:
fengchenchen
2023-08-22 14:32:58 +08:00
parent 7332f26f7c
commit 73fd4b708a
7 changed files with 5033 additions and 30 deletions
+6 -1
View File
@@ -9,6 +9,7 @@ import { generateIndexRouter } from '@/utils/util'
import { menuPermission } from './utils/hasPermission'
import {loginIdmPlatform} from '@api/api'
import {notification} from 'ant-design-vue'
import { filterTreeData, isExternalTerminal } from './utils/util'
NProgress.configure({ showSpinner: false }) // NProgress Configuration
// ,'/signupentrance','/signUpPage'
@@ -54,11 +55,15 @@ router.beforeEach(async (to, from, next) => {
} else {
if (store.getters.permissionList.length === 0) {
store.dispatch('GetPermissionList').then(res => {
const menuData = res.result.menu
let menuData = res.result.menu
if (menuData === null || menuData === '' || menuData === undefined) {
return
}
let constRoutes = []
if(isExternalTerminal) {
// 为外部系统的时候,过滤掉所有的 isExternalTerminal = false 的数据
menuData = filterTreeData(menuData)
}
constRoutes = generateIndexRouter(menuData)
// 添加主界面路由
store.dispatch('UpdateAppRouter', { constRoutes }).then(() => {
+3 -3
View File
@@ -17,14 +17,14 @@ const err = (error) => {
if (error.response) {
let data = error.response.data
const token = Vue.ls.get(ACCESS_TOKEN)
console.log('------异常响应------', token)
console.log('------异常响应------', error.response.status)
// console.log('------异常响应------', token)
// console.log('------异常响应------', error.response.status)
switch (error.response.status) {
case 403:
notification.error({ message: '系统提示', description: '拒绝访问', duration: 4 })
break
case 500:
console.log('------error.response------', error.response)
// console.log('------error.response------', error.response)
// update-begin- --- author:liusq ------ date:20200910 ---- for:处理Blob情况----
let type = error.response.request.responseType
if (type === 'blob') {
+9 -2
View File
@@ -4,6 +4,8 @@ import { ACCESS_TOKEN, USER_NAME,USER_INFO,USER_AUTH,SYS_BUTTON_AUTH,UI_CACHE_DB
import { welcome } from '@/utils/util'
import { queryPermissionsByUser } from '@/api/api'
import { getAction } from '@/api/manage'
// import { menuList } from '../../utils/menuList'
import { filterTreeData, isExternalTerminal } from '../../utils/util'
const user = {
state: {
@@ -123,15 +125,20 @@ const user = {
GetPermissionList({ commit }) {
return new Promise((resolve, reject) => {
queryPermissionsByUser().then(response => {
const menuData = response.result.menu
// response = menuList
let menuData = response.result.menu
const authData = response.result.auth
const allAuthData = response.result.allAuth
//Vue.ls.set(USER_AUTH,authData);
sessionStorage.setItem(USER_AUTH,JSON.stringify(authData))
sessionStorage.setItem(SYS_BUTTON_AUTH,JSON.stringify(allAuthData))
if (menuData && menuData.length > 0) {
if(isExternalTerminal) {
// 为外部系统的时候,过滤掉所有的 isExternalTerminal = false 的数据
menuData = filterTreeData(menuData)
}
//update--begin--autor:qinfeng-----date:20200109------forJEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------
menuData.forEach((item, index) => {
menuData.forEach((item) => {
if (item['children']) {
let hasChildrenMenu = item['children'].filter((i) => {
return !i.hidden || i.hidden == false
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -24,14 +24,14 @@ const err = (error) => {
if (error.response) {
let data = error.response.data
const token = Vue.ls.get(ACCESS_TOKEN)
console.log('------异常响应------',token)
console.log('------异常响应------',error.response.status)
// console.log('------异常响应------',token)
// console.log('------异常响应------',error.response.status)
switch (error.response.status) {
case 403:
notification.error({ message: '系统提示', description: '拒绝访问',duration: 4})
break
case 500:
console.log('------error.response------',error.response)
// console.log('------error.response------',error.response)
// update-begin- --- author:liusq ------ date:20200910 ---- for:处理Blob情况----
let type=error.response.request.responseType
if(type === 'blob'){
+20 -20
View File
@@ -1,6 +1,10 @@
import * as api from '@/api/api'
import { isURL } from '@/utils/validate'
import { JSEncrypt } from 'jsencrypt'
// 全局字段,是否是外网部署
export const isExternalTerminal = false
// import onlineCommons from '@/components/onlineForm/onlineForm'
//
export function timeFix() {
@@ -138,28 +142,8 @@ function generateChildRouters(data) {
}
let componentPath
// if(item.component=="modules/online/cgform/OnlCgformHeadList"){
// componentPath = onlineCommons.OnlCgformHeadList
// }else if(item.component=="modules/online/cgform/OnlCgformCopyList"){
// componentPath = onlineCommons.OnlCgformCopyList
// }else if(item.component=="modules/online/cgform/auto/OnlCgformAutoList"){
// componentPath = onlineCommons.OnlCgformAutoList
// }else if(item.component=="modules/online/cgform/auto/OnlCgformTreeList"){
// componentPath = onlineCommons.OnlCgformTreeList
// }else if(item.component=="modules/online/cgform/auto/erp/OnlCgformErpList"){
// componentPath = onlineCommons.OnlCgformErpList
// }else if(item.component=="modules/online/cgform/auto/tab/OnlCgformTabList"){
// componentPath = onlineCommons.OnlCgformTabList
// }else if(item.component=="modules/online/cgform/auto/innerTable/OnlCgformInnerTableList"){
// componentPath = onlineCommons.OnlCgformInnerTableList
// }else if(item.component=="modules/online/cgreport/OnlCgreportHeadList"){
// componentPath = onlineCommons.OnlCgreportHeadList
// }else if(item.component=="modules/online/cgreport/auto/OnlCgreportAutoList"){
// componentPath = onlineCommons.OnlCgreportAutoList
// }else{
// eslint-disable-next-line
componentPath = resolve => require(['@/' + component + '.vue'], resolve)
// }
let menu = {
path: item.path,
name: item.name,
@@ -712,3 +696,19 @@ export function deepMerge (target, ...arg) {
}, acc)
}, target)
}
// 为外部系统的时候,过滤掉所有的 isExternalTerminal = false 的数据
export const filterTreeData = (treeData) => {
const result = []
treeData.map(item => {
if(item.meta.externalTerminalShow) {
let treeNode = {...item }
if (item.children && item.children.length > 0) {
treeNode.children = [...filterTreeData(item.children)]
}
result.push(treeNode)
}
})
return result
}
+17 -1
View File
@@ -157,7 +157,13 @@
<a-switch checkedChildren="外部" unCheckedChildren="内部" v-model="internalOrExternal"/>
</a-form-item>
<!--update_end author:wuxianquan date:20190908 for:增加组件外链打开方式可选 -->
<!--是否外网显示默认为否选择是代表外网系统可以生成菜单也可以使用-->
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="是否外网可见">
<a-switch checkedChildren="是" unCheckedChildren="否" v-model="externalTerminalShow"/>
</a-form-item>
</a-form>
@@ -197,6 +203,7 @@
routeSwitch:true, //是否路由菜单
/*update_begin author:wuxianquan date:20190908 for:定义变量,初始值代表内部打开*/
internalOrExternal:false,//菜单打开方式
externalTerminalShow: false,// 是否是外网展示的菜单
/*update_end author:wuxianquan date:20190908 for:定义变量,初始值代表内部打开*/
isKeepalive:true, //是否缓存路由
show:true,//根据菜单类型,动态显示隐藏表单元素
@@ -279,6 +286,14 @@
}
/*update_end author:wuxianquan date:20190908 for:编辑初始化数据*/
/*编辑初始化数据*/
if(record.externalTerminalShow!=null){
this.externalTerminalShow = record.externalTerminalShow?true:false
}else{
this.externalTerminalShow = true
}
/*编辑初始化数据*/
this.show = record.menuType==2?false:true
this.menuLabel = record.menuType==2?'按钮/权限':'菜单名称'
@@ -316,6 +331,7 @@
this.model.internalOrExternal = this.internalOrExternal
/*update_end author:wuxianquan date:20190908 for:获取值*/
this.model.externalTerminalShow = this.externalTerminalShow
let formData = Object.assign(this.model, values)
if ((formData.menuType == 1 || formData.menuType == 2) && !formData.parentId) {
that.validateStatus = 'error'