From bf24b61a7170d8b026eb3234c6714fab3548f9f1 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 04 六月 2025 10:45:13 +0800 Subject: [PATCH] 2025-06-04 --- src/tabviews/rolemanage/index.jsx | 125 +++++++++++++++++++++++++++-------------- 1 files changed, 82 insertions(+), 43 deletions(-) diff --git a/src/tabviews/rolemanage/index.jsx b/src/tabviews/rolemanage/index.jsx index f334a5c..4801d55 100644 --- a/src/tabviews/rolemanage/index.jsx +++ b/src/tabviews/rolemanage/index.jsx @@ -1,14 +1,13 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Card, Col, Row, Icon, Menu, notification, Spin, Input, Tabs, Button, Tree, Empty, Select } from 'antd' +import { Card, Col, Row, Menu, notification, Spin, Input, Tabs, Button, Tree, Empty, Select } from 'antd' +import { BankOutlined } from '@ant-design/icons' import md5 from 'md5' import Api from '@/api' import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' -import zhCN from '@/locales/zh-CN/main.js' -import enUS from '@/locales/en-US/main.js' import './index.scss' const { Search } = Input @@ -20,12 +19,10 @@ export default class RoleManage extends Component { static propTpyes = { - MenuNo: PropTypes.string, // 鑿滃崟鍙傛暟 MenuID: PropTypes.string // 鑿滃崟Id } state = { - dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, loading: true, loadingTree: false, loadingAppTree: false, @@ -80,7 +77,7 @@ func: 's_get_kei' } - Api.getCloudConfig(param).then(result => { + Api.getSystemConfig(param).then(result => { if (result.status) { let applist = result.data.map(item => { item.sublist = item.data_detail || [] @@ -109,7 +106,8 @@ */ getMainMenuList = async () => { let param = { - func: 's_rolemenu_get_FstMenu' + func: 's_rolemenu_get_FstMenu', + version: 1 } let result = await Api.getSystemConfig(param) @@ -119,7 +117,7 @@ loading: false, mainMenus: result.data.map(item => { return { - title: item.MenuName, + title: item.langname ? item.MenuName + '(' + item.langname + ')' : item.MenuName, key: item.MenuID, children: [], selected: true @@ -144,12 +142,13 @@ * @description 鑾峰彇鎵�鏈夎彍鍗曡妭鐐癸紝褰㈡垚鏉冮檺鏍� */ getAllMenuList = async () => { - const { selectRoleId, mainMenus } = this.state + const { mainMenus } = this.state let param = { func: 's_rolemenu_get_FunMenu', - RoleID: selectRoleId, - SelectedType: '' + RoleID: '', + SelectedType: '', + version: 1 } let result = await Api.getSystemConfig(param) @@ -163,9 +162,19 @@ // item.ParentID = item.TypeCharOne // } // }) + // let map = new Map() // 鍘婚噸 + + // result.data = result.data.filter(item => { + // if (map.has(item.ParentID + item.MenuID)) return false + + // map.set(item.ParentID + item.MenuID, true) + + // return true + // }) + let _tree = this.getTree(fromJS(mainMenus).toJS(), result.data) if (_tree[0]) { - if (_tree[0].key === 'PC' && _tree[0].children) { + if (_tree[0].key.indexOf('PC') > -1 && _tree[0].children) { // _openKeys = _tree[0].children.map(cell => cell.key) this.getOpenNode(_tree[0].children[0], _openKeys) } else { @@ -177,6 +186,10 @@ loadingTree: false, menuTrees: _tree, menuOpenKeys: _openKeys + }, () => { + if (this.state.selectRoleId) { + this.getSelectMenuList() + } }) } else { this.setState({ @@ -199,7 +212,8 @@ let param = { func: 's_rolemenu_get_Menulist', - RoleID: selectRoleId + RoleID: selectRoleId, + version: 1 } this.setState({ @@ -218,7 +232,7 @@ this.getCheckedKeys(fromJS(menuTrees).toJS(), _initKeys) if (menuTrees[0]) { - if (menuTrees[0].key === 'PC' && menuTrees[0].children) { + if (menuTrees[0].key.indexOf('PC') > -1 && menuTrees[0].children) { this.getOpenNode(menuTrees[0].children[0], _openKeys) } else { this.getOpenNode(menuTrees[0], _openKeys) @@ -230,7 +244,7 @@ let _tree = this.getSelectTree(fromJS(menuTrees).toJS(), Keys) if (_tree[0]) { - if (_tree[0].key === 'PC' && _tree[0].children) { + if (_tree[0].key.indexOf('PC') > -1 && _tree[0].children) { this.getOpenNode(_tree[0].children[0], _openkeys) } else { this.getOpenNode(_tree[0], _openkeys) @@ -270,7 +284,8 @@ RoleID: selectRoleId, TypeCharOne: selectApp.kei_no, typename: selectSubApp.typename, - lang: selectSubApp.lang + lang: selectSubApp.lang, + version: 1 } this.setState({ @@ -359,7 +374,7 @@ /** * @description 鑾峰彇鏉冮檺鍒嗛厤鏍� */ - getTree = (parents, options) => { + getTree = (parents, options, addSelf) => { parents.forEach(parent => { parent.children = [] @@ -370,7 +385,7 @@ title: option.MenuName, key: option.MenuID, addSelf: option.OnlySelf === 'true', - tabs: option.Tabs + // tabs: option.Tabs }) } }) @@ -378,13 +393,13 @@ if (parent.children.length === 0) { parent.children = null // 閽堝鏍囩锛岀敓鎴愭柊鐨刬d锛屽苟淇濆瓨鍏宠仈鍏崇郴锛堟爣绛句笉鍞竴锛� - if (parent.tabs) { - let _uuid = Utils.getuuid() - linkMap.set(_uuid, parent.key) + // if (parent.tabs) { + // let _uuid = Utils.getuuid() + // linkMap.set(_uuid, parent.key) - parent.originKey = parent.key - parent.key = _uuid - } + // parent.originKey = parent.key + // parent.key = _uuid + // } } else { // 涓夌骇鑿滃崟鍒涘缓瀛愰」 if (parent.addSelf) { @@ -395,20 +410,29 @@ parent.children.unshift({ title: parent.title + '(浠呴〉闈�)', key: _uuid, - isSubView: true + // isSubView: true + }) + } else if (addSelf) { + let _uuid = Utils.getuuid() + linkMap.set(_uuid, parent.key) + parent.subKey = _uuid + + parent.children.unshift({ + title: parent.title + '(琛ㄦ牸)', + key: _uuid, }) } // 閽堝鏍囩锛岀敓鎴愭柊鐨刬d锛屽苟淇濆瓨鍏宠仈鍏崇郴锛堟爣绛句笉鍞竴锛� - if (parent.tabs) { - let _uuid = Utils.getuuid() - linkMap.set(_uuid, parent.key) + // if (parent.tabs) { + // let _uuid = Utils.getuuid() + // linkMap.set(_uuid, parent.key) - parent.originKey = parent.key - parent.key = _uuid - } + // parent.originKey = parent.key + // parent.key = _uuid + // } - parent.children = this.getTree(parent.children, options) + parent.children = this.getTree(parent.children, options, parent.addSelf) } }) return parents @@ -445,8 +469,8 @@ } } return true - } else if (parent.isSubView) { - return true + // } else if (parent.isSubView) { + // return true } return false }) @@ -555,9 +579,10 @@ submitloading: false }, () => { this.getSelectMenuList() + this.clearBackSqlCache() }) if (window.GLOB.mainSystemApi) { - Api.getLocalConfig(localParam).then(res => { + Api.genericInterface(localParam).then(res => { if (!res.status) { notification.warning({ top: 92, @@ -574,6 +599,20 @@ notification.warning({ top: 92, message: result.message, + duration: 5 + }) + } + }) + } + + clearBackSqlCache = () => { + if (!window.backend) return + + Api.cacheInterface({}).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message || '缂撳瓨娓呯┖澶辫触锛�', duration: 5 }) } @@ -626,7 +665,7 @@ }) if (window.GLOB.mainSystemApi) { - Api.getLocalConfig(localParam).then(res => { + Api.genericInterface(localParam).then(res => { if (!res.status) { notification.warning({ top: 92, @@ -709,15 +748,15 @@ this.setState({loadingAppTree: true}) - Api.getCloudConfig(param).then(result => { + Api.getSystemConfig(param).then(result => { if (result.status) { if (!result.data || result.data.length === 0) { - this.setState({loadingAppTree: false, appTrees: []}) + this.setState({loadingAppTree: false, appTrees: [], appInitCheckKeys: null, appCheckedKeys: [], appOpenKeys: [], selectAppTrees: [], selectAppOpenKeys: []}) } else { this.initTrees(result.data) } } else { - this.setState({loadingAppTree: false, appTrees: []}) + this.setState({loadingAppTree: false, appTrees: [], appInitCheckKeys: null, appCheckedKeys: [], appOpenKeys: [], selectAppTrees: [], selectAppOpenKeys: []}) notification.warning({ top: 92, message: result.message, @@ -770,7 +809,7 @@ let expandedKeys = this.getExpandedKeys(trees, 0, []) - this.setState({loadingAppTree: false, appTrees: trees, appOpenKeys: expandedKeys}, () => { + this.setState({loadingAppTree: false, appInitCheckKeys: null, appCheckedKeys: [], selectAppTrees: [], selectAppOpenKeys: [], appTrees: trees, appOpenKeys: expandedKeys}, () => { this.getSelectAppNodeList() }) } @@ -844,7 +883,7 @@ const { activeKey, filterRoleList, applist, selectApp, selectSubApp, loading, loadingTree, loadingAppTree, primarykey, menuTrees, appTrees, checkedKeys, appCheckedKeys, menuOpenKeys, selectMenuTrees, selectAppTrees, selectRoleId, selectMenuOpenKeys, selectAppOpenKeys, submitloading, appOpenKeys } = this.state return ( - <div className="rolemanage"> + <div className={'rolemanage' + (applist.length === 0 ? ' manager' : '')}> {loading && <Spin size="large" />} <Tabs activeKey={activeKey} type="card" onChange={this.changeType}> <TabPane tab="绠$悊绯荤粺" key="manage"> @@ -854,7 +893,7 @@ className="role-list" title={ <span className="role-title"> - <Icon type="bank" /> + <BankOutlined /> <span className="title">瑙掕壊</span> <Search placeholder="" value={primarykey} onChange={e => this.setState({primarykey: e.target.value})} onSearch={this.filterRole} /> </span> @@ -921,7 +960,7 @@ className="role-list" title={ <span className="role-title"> - <Icon type="bank" /> + <BankOutlined /> <span className="title">瑙掕壊</span> <Search placeholder="" value={primarykey} onChange={e => this.setState({primarykey: e.target.value})} onSearch={this.filterRole} /> </span> -- Gitblit v1.8.0