From 5046d0d13dc6a8563b8e54e31913bc44cfa1072f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 26 四月 2022 19:23:18 +0800 Subject: [PATCH] 2022-04-26 --- src/views/pcdesign/index.jsx | 103 ++++++++++++++++++++++++++++++++++----------------- 1 files changed, 68 insertions(+), 35 deletions(-) diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 7f0144d..b71d127 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -6,7 +6,7 @@ import moment from 'moment' import HTML5Backend from 'react-dnd-html5-backend' import { ConfigProvider, notification, Modal, Collapse, Switch, Button, message, Spin, Typography } from 'antd' -import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined } from '@ant-design/icons' +import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined, ArrowLeftOutlined } from '@ant-design/icons' import Api from '@/api' import Utils, { setGLOBFuncs } from '@/utils/utils.js' @@ -17,7 +17,6 @@ import MKEmitter from '@/utils/events.js' import MenuUtils from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' -import backurl from '@/assets/img/back.jpg' import './index.scss' @@ -216,6 +215,7 @@ let param = { MenuID: menu.MenuID, copyMenuId: menu.copyMenuId || '', + clearMenu: menu.clearMenu !== 'false', type: 'view' } @@ -246,9 +246,9 @@ return } - let homeId = MenuID || '' + let homeId = '' let appViewList = [] - if (!homeId && res.data && res.data.length > 0) { + if (res.data && res.data.length > 0) { appViewList = res.data appViewList.forEach(item => { if (item.keys_type === 'index') { @@ -258,7 +258,7 @@ } if (!homeId) { - homeId = Utils.getuuid() + homeId = MenuID || Utils.getuuid() let param = { func: 's_kei_link_keyids_addupt', @@ -297,7 +297,7 @@ }) } else { sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) - this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: homeId, type: 'view'})))) + this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: MenuID || homeId, type: 'view'})))) } }) } @@ -748,7 +748,7 @@ } } } else { - config.components = MenuUtils.resetConfig(config.components) + config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu) config.enabled = false message.success('澶嶅埗鎴愬姛锛屼繚瀛樺悗鐢熸晥銆�') } @@ -854,11 +854,12 @@ getMenuMessage = () => { const { config } = this.state - let nodes = {type: 'view', key: config.uuid, title: config.MenuName, children: []} + let nodes = {type: 'view', version: '1.0', key: config.uuid, title: config.MenuName, children: []} let popviews = [] let traversal = (components) => { - let list = components.map(item => { + let list = [] + components.forEach(item => { let m = { key: item.uuid, title: item.name, @@ -868,6 +869,7 @@ return null } else if (item.type === 'tabs') { let tabs = [] + let mm = [] item.subtabs.forEach(tab => { let s = traversal(tab.components) @@ -878,13 +880,35 @@ title: tab.label, children: s }) + + mm.push(...s) }) if (tabs.length > 0) { m.children = tabs } + + if (item.setting.permission === 'true') { + list.push(m) + } else if (mm.length) { + list.push(...mm) + } + + return null } else if (item.type === 'group') { m.children = traversal(item.components) + + if (item.setting.permission === 'true') { + list.push(m) + } else if (m.children.length) { + list.push(...m.children) + } + + return null + } if (item.plot && item.plot.permission !== 'true') { + return null + } if (item.wrap && item.wrap.permission !== 'true') { + return null } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) { item.action && item.action.forEach(btn => { this.checkBtn(btn) @@ -990,10 +1014,8 @@ }) } - return m + list.push(m) }) - - list = list.filter(Boolean) return list } @@ -1005,6 +1027,11 @@ if (config.components.findIndex(item => item.type === 'login') > -1) { nodes.login = true + nodes.children = [] + } + if (config.permission !== 'true') { + nodes.pass = true + nodes.children = [] } return nodes @@ -1112,34 +1139,39 @@ let roles = { type: 'navbar', + version: '1.0', key: item.uuid, title: item.name, children: [] } - - roles.children = item.menus.map(fst => { - if (fst.property === 'classify' && fst.sublist.length > 0) { - return { - key: fst.MenuID, - title: fst.name, - children: fst.sublist.map(scd => { - if (scd.property === 'classify' && scd.sublist.length > 0) { - return { - key: scd.MenuID, - title: scd.name, - children: scd.sublist.map(thd => { - return { key: thd.MenuID, title: thd.name } - }) + + if (item.wrap.permission === 'true') { + roles.children = item.menus.map(fst => { + if (fst.property === 'classify' && fst.sublist.length > 0) { + return { + key: fst.MenuID, + title: fst.name, + children: fst.sublist.map(scd => { + if (scd.property === 'classify' && scd.sublist.length > 0) { + return { + key: scd.MenuID, + title: scd.name, + children: scd.sublist.map(thd => { + return { key: thd.MenuID, title: thd.name } + }) + } + } else { + return { key: scd.MenuID, title: scd.name } } - } else { - return { key: scd.MenuID, title: scd.name } - } - }) + }) + } + } else { + return { key: fst.MenuID, title: fst.name } } - } else { - return { key: fst.MenuID, title: fst.name } - } - }) + }) + } else { + roles.pass = true + } let _param = { func: 'sPC_TrdMenu_AddUpt', @@ -1501,6 +1533,7 @@ return } + if (['voucher'].includes(item.subtype)) return if (['propcard', 'brafteditor', 'sandbox', 'stepform', 'tabform'].includes(item.subtype) && item.wrap.datatype === 'static') return if (['balcony'].includes(item.type) && item.wrap.datatype === 'static') return @@ -1778,7 +1811,7 @@ <div className="wrap"> <Button type="primary" id="save-config" onClick={this.submitConfig} loading={menuloading}>{dict['mob.save']}</Button> <Switch className="big" checkedChildren={dict['mob.enable']} unCheckedChildren={dict['mob.disable']} checked={config && config.enabled} onChange={this.onEnabledChange} /> - <img title="鍚庨��" className="back-view" onClick={this.backView} src={backurl} alt=""/> + <ArrowLeftOutlined title="鍚庨��" className="back-view" onClick={this.backView}/> <CreateView resetmenu={this.getAppMenus} /> <PasteController insert={this.insert} /> <StyleCombControlButton menu={config} /> -- Gitblit v1.8.0