From a29d9d644a2a30e9ef4afcc6d728c20c218dc359 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 15 六月 2023 14:25:28 +0800 Subject: [PATCH] 2023-06-15 --- src/templates/subtableconfig/index.jsx | 516 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 257 insertions(+), 259 deletions(-) diff --git a/src/templates/subtableconfig/index.jsx b/src/templates/subtableconfig/index.jsx index 3acb99e..19bfb12 100644 --- a/src/templates/subtableconfig/index.jsx +++ b/src/templates/subtableconfig/index.jsx @@ -1,17 +1,15 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import {connect} from 'react-redux' import { is, fromJS } from 'immutable' import { DndProvider } from 'react-dnd' import HTML5Backend from 'react-dnd-html5-backend' -import { Button, Card, Modal, Collapse, notification, Spin, Icon, Switch, Tooltip, Col } from 'antd' -import moment from 'moment' +import { Button, Card, Modal, Collapse, notification, Spin, Switch, Tooltip, Col } from 'antd' +import { QuestionCircleOutlined, RedoOutlined } from '@ant-design/icons' +// import moment from 'moment' import Api from '@/api' -import zhCN from '@/locales/zh-CN/model.js' -import enUS from '@/locales/en-US/model.js' import Utils from '@/utils/utils.js' -import UtilsUpdate from '@/utils/utils-update.js' +import { updateSubTable } from '@/utils/utils-update.js' import asyncComponent from '@/utils/asyncComponent' import SearchComponent from '@/templates/sharecomponent/searchcomponent' @@ -26,6 +24,8 @@ const { Panel } = Collapse const { confirm } = Modal +const Versions = asyncComponent(() => import('@/menu/versions')) +// const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) const EditComponent = asyncComponent(() => import('@/templates/zshare/editcomponent')) const SettingComponent = asyncComponent(() => import('@/templates/sharecomponent/settingcomponent')) const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) @@ -47,10 +47,8 @@ } state = { - dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, // 瀛楀吀 config: null, // 椤甸潰閰嶇疆 visible: false, // 鎼滅储鏉′欢銆佹寜閽�佹樉绀哄垪锛屾ā鎬佹鏄剧ず鎺у埗 - tableFields: [], // 宸查�夎〃瀛楁闆� menuloading: false, // 鑿滃崟淇濆瓨涓� menucloseloading: false, // 鑿滃崟鍏抽棴鏃讹紝閫夋嫨淇濆瓨 loading: false, // 鍔犺浇涓紝椤甸潰spin @@ -60,10 +58,9 @@ delActions: [], // 鍒犻櫎鎸夐挳鍒楄〃 copyActions: [], // 澶嶅埗鎸夐挳缁� tabviews: [], // 鎵�鏈夋爣绛鹃〉 - thawButtons: [], // 宸查�夋嫨瑕佽В鍐荤殑鎸夐挳 activeKey: '0', // 榛樿灞曞紑鍩烘湰淇℃伅 chartview: null, // 褰撳墠瑙嗗浘 - openEdition: '' // 缂栬緫鐗堟湰鏍囪锛岄槻姝㈠浜烘搷浣� + openEdition: '', // 缂栬緫鐗堟湰鏍囪锛岄槻姝㈠浜烘搷浣� } /** @@ -90,6 +87,11 @@ if (_config.type === 'user') { _config.action = _config.action.map(item => { let uuid = Utils.getuuid() + + if (item.linkTab) { + item.linkTab = '' + } + if (item.OpenType === 'pop') { // 鍚湁瀛愰厤缃」鐨勬寜閽� _oriActions.push({ prebtn: fromJS(item).toJS(), @@ -106,11 +108,11 @@ let _activeKey = editSubTab ? editSubTab.activeKey : editTab.activeKey // 鐗堟湰鍏煎 - _config = UtilsUpdate.updateSubTable(_config) + _config = updateSubTable(_config) this.setState({ openEdition: editSubTab ? (editSubTab.open_edition || '') : (editTab.open_edition || ''), - chartview: _config.charts[0].uuid, + chartview: _config.charts ? _config.charts[0].uuid : '', originActions: _oriActions, config: _config, activeKey: _activeKey || '0', @@ -125,6 +127,54 @@ */ componentDidMount () { this.reloadTab(false) + document.onkeydown = (event) => { + let e = event || window.event + let keyCode = e.keyCode || e.which || e.charCode + let preKey = '' + + if (e.ctrlKey) { + preKey = 'ctrl' + } + if (e.shiftKey) { + preKey = 'shift' + } else if (e.altKey) { + preKey = 'alt' + } + + if (!preKey || !keyCode) return + + let _shortcut = `${preKey}+${keyCode}` + + if (_shortcut === 'ctrl+83') { + let modals = document.querySelectorAll('.mk-pop-modal') + let msg = null + for (let i = 0; i < modals.length; i++) { + if (msg) { + break + } + + let node = modals[i].querySelector('.mk-com-name') + + if (node) { + msg = node.innerText + } + } + if (msg) { + notification.warning({ + top: 92, + message: '璇蜂繚瀛�' + msg, + duration: 5 + }) + return false + } + + let node = document.getElementById('save-config') + if (node && node.click) { + node.click() + } + return false + } + } } /** @@ -184,6 +234,7 @@ this.setState = () => { return } + document.onkeydown = () => {} } // 椤甸潰杩斿洖 @@ -195,7 +246,7 @@ if (editSubTab) { _subconfig = tabConfig if (editTab.hasOwnProperty('OpenType')) { - _tabview = editTab.tabType + _tabview = editTab.tabType || 'SubTable' } else { _tabview = editTab.type } @@ -232,7 +283,7 @@ * @description 鏍囩椤典繚瀛� */ submitConfig = () => { - const { delActions, thawButtons, openEdition } = this.state + const { delActions, openEdition } = this.state let _config = fromJS(this.state.config).toJS() let copyreg = /\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/ig @@ -240,7 +291,7 @@ if (!_config.tabName || !_config.tabNo) { notification.warning({ top: 92, - message: this.state.dict['model.menu.basemsg'], + message: '璇峰畬鍠勮彍鍗曞熀鏈俊鎭紒', duration: 5 }) this.setState({activeKey: '0'}) @@ -268,6 +319,10 @@ } } + if (_config.setting.doubleClick && _config.action.findIndex((item) => item.uuid === _config.setting.doubleClick) === -1) { + _config.setting.doubleClick = '' + } + // 鏈缃暟鎹簮鎴栦富閿椂锛屽惎鐢ㄧ姸鎬佷负false let result = this.verifyconfig(_config) @@ -285,11 +340,11 @@ }) } + let _LongParam = '' + // 淇濆瓨鏃跺垹闄ら厤缃被鍨嬶紝system 銆乽ser delete _config.type delete _config.isAdd - - let _LongParam = '' try { _LongParam = window.btoa(window.encodeURIComponent(JSON.stringify(_config))) @@ -307,40 +362,41 @@ return } - let btnParam = { - func: 'sPC_Button_AddUpt', - Type: 40, - ParentID: _config.uuid, - MenuNo: _config.tabNo, - Template: 'SubTable', - PageParam: '', - LongParam: '', - LText: [] - } + // let btnParam = { + // func: 'sPC_Button_AddUpt', + // Type: 40, + // ParentID: _config.uuid, + // MenuNo: _config.tabNo, + // Template: 'SubTable', + // PageParam: '', + // LongParam: '', + // LText: [] + // } - let btntabs = [] + // let btntabs = [] - _config.action.forEach((item, index) => { - if (item.OpenType === 'popview') { - btntabs.push(`select '${item.uuid}' as MenuID ,'${item.linkTab}' as Tabid,'${item.label}' as TabName ,'${(index + 1) * 10}' as Sort`) - } - btnParam.LText.push(`select '${item.uuid}' as menuid, '${item.label}' as menuname, '${(index + 1) * 10}' as Sort`) - }) + // _config.action.forEach((item, index) => { + // if (item.hidden === 'true') return + // if (item.OpenType === 'popview') { + // btntabs.push(`select '${item.uuid}' as MenuID ,'${item.linkTab}' as Tabid,'${item.label}' as TabName ,'${(index + 1) * 10}' as Sort`) + // } + // btnParam.LText.push(`select '${item.uuid}' as menuid, '${item.label}' as menuname, '${(index + 1) * 10}' as Sort`) + // }) - btnParam.LText = btnParam.LText.join(' union all ') - btnParam.LText = Utils.formatOptions(btnParam.LText) - btnParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - btnParam.secretkey = Utils.encrypt(btnParam.LText, btnParam.timestamp) + // btnParam.LText = btnParam.LText.join(' union all ') + // btnParam.LText = Utils.formatOptions(btnParam.LText) + // btnParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + // btnParam.secretkey = Utils.encrypt(btnParam.LText, btnParam.timestamp) - let tabParam = { // 娣诲姞鏍囩鎸夐挳tab椤� - func: 'sPC_sMenusTab_AddUpt', - MenuID: _config.uuid, - LText: btntabs.join(' union all ') - } + // let tabParam = { // 娣诲姞鏍囩鎸夐挳tab椤� + // func: 'sPC_sMenusTab_AddUpt', + // MenuID: _config.uuid, + // LText: btntabs.join(' union all ') + // } - tabParam.LText = Utils.formatOptions(tabParam.LText) - tabParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - tabParam.secretkey = Utils.encrypt(tabParam.LText, tabParam.timestamp) + // tabParam.LText = Utils.formatOptions(tabParam.LText) + // tabParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + // tabParam.secretkey = Utils.encrypt(tabParam.LText, tabParam.timestamp) let param = { func: 'sPC_Tab_AddUpt', @@ -419,26 +475,7 @@ }).then(resp => { if (resp === false) return - if (thawButtons.length > 0) { - let defers = thawButtons.map(item => { - return new Promise((resolve) => { - Api.getSystemConfig({ - func: 'sPC_MainMenu_ReDel', - MenuID: item - }).then(res => { - if (res.status) { - resolve('') - } else { - resolve(res.message) - } - }) - }) - }) - - return Promise.all(defers) - } else { - return true - } + return true }).then(res => { if (res === true || res === false) return res @@ -451,9 +488,6 @@ }) return false } else { - this.setState({ - thawButtons: [] - }) return true } }).then(resp => { @@ -470,8 +504,16 @@ menuloading: false, menucloseloading: false }) - this.submitAction(btnParam, tabParam) + notification.success({ + top: 92, + message: '淇濆瓨鎴愬姛', + duration: 2 + }) + if (this.state.closeVisible) { + this.handleViewBack() + } }) + this.submitAction() } else { this.setState({ menuloading: false, @@ -490,130 +532,56 @@ /** * @description 淇濆瓨鎴栦慨鏀硅彍鍗曟寜閽� */ - submitAction = (btnParam, tabParam) => { + submitAction = () => { const { config } = this.state - new Promise(resolve => { - let deffers = [] + let oriActions = [] + this.state.originActions.forEach(item => { + let curBtn = config.action.filter(cell => item.curuuid === cell.uuid)[0] // 鏌ョ湅鍒濆鍖栨寜閽槸鍚﹀瓨鍦� + if (!curBtn) return + if (curBtn.OpenType !== item.prebtn.OpenType) return + if (curBtn.OpenType === 'funcbutton' && curBtn.execMode !== 'pop') return - if (tabParam.LText) { - let defer = new Promise(resolve => { - Api.getSystemConfig(tabParam).then(result => { - resolve(result) - }) - }) - deffers.push(defer) - } - - if (btnParam.LText) { - let defer = new Promise(resolve => { - Api.getSystemConfig(btnParam).then(result => { - if (result.status) { - this.setState({ // 淇濆瓨鎴愬姛鍚庢竻绌哄鍒跺垪琛� - copyActions: [] - }) - } - resolve(result) - }) - }) - deffers.push(defer) - } - - if (deffers.length === 0) { - resolve(true) - } else { - Promise.all(deffers).then(result => { - let error = false - result.forEach(res => { - if (!res.status) { - error = res - } - }) - - if (error) { - notification.warning({ - top: 92, - message: error.message, - duration: 5 - }) - resolve(false) - } else { - resolve(true) - } - }) - } - }).then(response => { - if (response === false) return response - - let oriActions = [] - this.state.originActions.forEach(item => { - let curBtn = config.action.filter(cell => item.curuuid === cell.uuid)[0] // 鏌ョ湅鍒濆鍖栨寜閽槸鍚﹀瓨鍦� - if (!curBtn) return - if (curBtn.OpenType !== item.prebtn.OpenType) return - - oriActions.push({ - prebtn: item.prebtn, - curBtn: curBtn - }) + oriActions.push({ + prebtn: item.prebtn, + curBtn: curBtn }) + }) - if (oriActions.length === 0) return 'true' + if (oriActions.length === 0) return - oriActions.forEach(action => { - Api.getSystemConfig({ - func: 'sPC_Get_LongParam', - MenuID: action.prebtn ? action.prebtn.uuid : '' - }).then(result => { - if (result.status && result.LongParam) { - let _LongParam = '' - - if (result.LongParam) { - try { - _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) - } catch (e) { - console.warn('Parse Failure') - _LongParam = '' - } - } + oriActions.forEach(action => { + Api.getSystemConfig({ + func: 'sPC_Get_LongParam', + MenuID: action.prebtn ? action.prebtn.uuid : '' + }).then(result => { + if (result.status && result.LongParam) { + let _LongParam = '' - if (_LongParam) { - let param = { - func: 'sPC_ButtonParam_AddUpt', - ParentID: config.uuid, - MenuID: action.curBtn.uuid, - MenuNo: config.tabNo, - Template: _LongParam.type, - MenuName: action.curBtn.label, - PageParam: JSON.stringify({Template: _LongParam.type}), - LongParam: result.LongParam - } - Api.getSystemConfig(param).then(() => {}) + if (result.LongParam) { + try { + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) + } catch (e) { + console.warn('Parse Failure') + _LongParam = '' } } - }) - }) - return 'true' - }).then(response => { - if (response === 'true') { - notification.success({ - top: 92, - message: '淇濆瓨鎴愬姛', - duration: 2 - }) - if (this.state.closeVisible) { - this.handleViewBack() - } else { - this.setState({ - menuloading: false, - menucloseloading: false - }) + + if (_LongParam) { + let param = { + func: 'sPC_ButtonParam_AddUpt', + ParentID: config.uuid, + MenuID: action.curBtn.uuid, + MenuNo: config.tabNo, + Template: _LongParam.type, + MenuName: action.curBtn.label, + PageParam: JSON.stringify({Template: _LongParam.type}), + LongParam: result.LongParam + } + Api.getSystemConfig(param).then(() => {}) + } } - } else { - this.setState({ - menuloading: false, - menucloseloading: false - }) - } + }) }) } @@ -666,10 +634,10 @@ let _view = '' let _subtab = editSubTab - if (btn.OpenType === 'pop') { - _view = 'Modal' // 琛ㄥ崟椤甸潰 + if (btn.OpenType === 'pop' || btn.execMode === 'pop') { + _view = 'Modal' // 琛ㄥ崟椤甸潰 } else if (btn.OpenType === 'popview') { - _view = btn.tabType // 鏂板脊绐楁爣绛炬ā鏉� + _view = 'SubTable' // 鏂板脊绐楁爣绛炬ā鏉� tabType 灞炴�у凡鍘婚櫎 _subtab = btn if (editSubTab) { @@ -816,8 +784,12 @@ } }) - if (config.setting.interType === 'system' && config.setting.default !== 'false' && !config.setting.dataresource) { - return '灏氭湭璁剧疆鏁版嵁婧愶紝涓嶅彲鍚敤锛�' + if (config.setting.interType === 'system' && config.setting.default === 'false' && config.setting.scripts && config.setting.scripts.filter(item => item.status !== 'false').length === 0) { + return '鏁版嵁婧愪腑涓嶆墽琛岄粯璁ql锛屼笖鏈坊鍔犺嚜瀹氫箟鑴氭湰锛屼笉鍙惎鐢紒' + } else if (config.setting.interType === 'custom' && config.setting.procMode !== 'inner' && config.setting.preScripts && config.setting.preScripts.filter(item => item.status !== 'false').length === 0) { + return '鏁版嵁婧愭湭璁剧疆鍓嶇疆鑴氭湰锛屼笉鍙惎鐢紒' + } else if (config.setting.interType === 'custom' && config.setting.callbackType === 'script' && config.setting.cbScripts && config.setting.cbScripts.filter(item => item.status !== 'false').length === 0) { + return '鏁版嵁婧愭湭璁剧疆鍥炶皟鑴氭湰锛屼笉鍙惎鐢紒' } else if (!config.setting.primaryKey) { return '灏氭湭璁剧疆涓婚敭锛屼笉鍙惎鐢紒' } else if (config.columns.length === 0) { @@ -832,17 +804,12 @@ } /** - * @description 缂栬緫鍔熻兘瀹屾垚鏇存柊锛屽寘鎷В鍐绘寜閽�佺矘璐淬�佹浛鎹㈢瓑 + * @description 缂栬緫鍔熻兘瀹屾垚鏇存柊锛屽寘鎷В鍐绘寜閽瓑 */ updateConfig = (res) => { - if (res.type === 'thaw') { - this.setState({ - thawButtons: res.thawButtons, - config: res.config - }) - } else if (res.type === 'paste') { - this.setState({config: res.config}) - } + this.setState({ + config: res.config + }) } /** @@ -886,32 +853,68 @@ chartview: _chartview }) } + - /** - * @description 鏇存柊甯哥敤琛ㄤ俊鎭紝蹇嵎娣诲姞鍚庢洿鏂伴厤缃俊鎭� - */ - updatetable = (config, fields) => { - const { tableFields } = this.state + refreshConfig = () => { + const { config } = this.props + + let param = { + func: 'sPC_Get_LongParam', + MenuID: config.uuid + } - this.setState({ - config: config, - tableFields: fields ? fields : tableFields - }) - } + Api.getSystemConfig(param).then(res => { + if (res.status) { + let _config = '' + if (res.LongParam) { + try { + _config = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) + } catch (e) { + console.warn('Parse Failure') + _config = '' + } + } - /** - * @description 鎵归噺娣诲姞锛屾洿鏂伴厤缃俊鎭� - */ - updatefield = (config) => { - this.setState({ - config: config + if (!_config) { + notification.warning({ + top: 92, + message: '鏈幏鍙栧埌閰嶇疆淇℃伅锛�', + duration: 5 + }) + return + } + + // 鐗堟湰鍏煎 + _config = updateSubTable(_config) + + this.setState({ + config: null + }, () => { + this.setState({ + chartview: _config.charts ? _config.charts[0].uuid : '', + config: _config, + openEdition: res.open_edition || '', + activeKey: '0', + originActions: [], + originConfig: fromJS(_config).toJS() + }) + }) + } else { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } }) } render () { - const { activeKey, config, chartview } = this.state + const { activeKey, config, chartview, openEdition } = this.state - const confActions = config.action.filter(_action => !_action.origin && ['pop', 'popview', 'blank'].includes(_action.OpenType)) + if (!config) return null + + const confActions = config.action.filter(_action => !_action.origin && (['pop', 'popview'].includes(_action.OpenType) || (_action.OpenType === 'funcbutton' && _action.execMode === 'pop'))) return ( <div className="model-subtable-board"> @@ -923,7 +926,6 @@ <Panel forceRender={true} header={'鏍囩鍩烘湰淇℃伅'} key="0" id="subtable-basedata"> {/* 鑿滃崟淇℃伅 */} <MenuForm - dict={this.state.dict} config={config} updatemenu={this.updateconfig} /> @@ -931,25 +933,20 @@ <TableComponent config={config} containerId="subtable-basedata" - updatetable={this.updatetable} + updatetable={this.updateconfig} /> </Panel> {/* 鎼滅储鏉′欢娣诲姞 */} - <Panel header={this.state.dict['header.menu.search']} key="1"> + <Panel header="鎼滅储" key="1"> <div className="search-element"> {Source.searchItems.map((item, index) => { return (<SourceElement key={index} content={item}/>) })} </div> - <FieldsComponent - config={config} - type="search" - tableFields={this.state.tableFields} - updatefield={this.updatefield} - /> + <FieldsComponent config={config} type="search" /> </Panel> {/* 鎸夐挳娣诲姞 */} - <Panel header={this.state.dict['header.menu.action']} key="2"> + <Panel header="鎸夐挳" key="2"> <div className="search-element"> {Source.actionItems.map((item, index) => { return (<SourceElement key={index} content={item}/>) @@ -959,9 +956,9 @@ {confActions.length > 0 ? <p className="config-btn-title"> <Tooltip placement="topLeft" title="鐐瑰嚮鎸夐挳锛屽彲瀹屾垚鎴栨煡鐪嬫寜閽厤缃俊鎭��"> - <Icon type="question-circle" /> + <QuestionCircleOutlined className="mk-form-tip" /> </Tooltip> - {this.state.dict['header.menu.action.configurable']} + 鎸夐挳閰嶇疆 </p> : null } </div> @@ -979,18 +976,13 @@ })} </Panel> {/* 娣诲姞鏄剧ず鍒� */} - <Panel header={this.state.dict['header.menu.column']} key="3"> + <Panel header="鏄剧ず鍒�" key="3"> <div className="search-element"> {Source.columnItems.map((item, index) => { return (<SourceElement key={index} content={item}/>) })} </div> - <FieldsComponent - config={config} - type="columns" - tableFields={this.state.tableFields} - updatefield={this.updatefield} - /> + <FieldsComponent config={config} type="columns" /> </Panel> </Collapse> </div> @@ -998,14 +990,16 @@ <Card title={ <div> 鏍囩锛堝瓙琛級椤甸潰閰嶇疆 - <Icon type="redo" style={{marginLeft: '10px'}} title="鍒锋柊鏍囩鍒楄〃" onClick={() => this.reloadTab(true)} /> + <RedoOutlined style={{marginLeft: '10px'}} title="鍒锋柊鏍囩鍒楄〃" onClick={() => this.reloadTab(true)} /> </div> } bordered={false} extra={ <div> - <EditComponent dict={this.state.dict} options={['search', 'action', 'columns']} config={config} MenuID={config.uuid} thawButtons={this.state.thawButtons} refresh={this.updateConfig}/> + <Versions MenuId={config.uuid} open_edition={openEdition} updateConfig={this.refreshConfig}/> + {/* <ReplaceField type="table" config={config} updateConfig={this.updateconfig}/> */} + <EditComponent type="table" options={['search', 'form', 'action', 'columns']} config={config} refresh={this.updateConfig}/> <Switch className="big" checkedChildren="鍚�" unCheckedChildren="鍋�" checked={config.enabled} onChange={this.onEnabledChange} /> - <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['model.save']}</Button> - <Button onClick={this.cancelConfig}>{this.state.dict['model.back']}</Button> + <Button type="primary" id="save-config" onClick={this.submitConfig} loading={this.state.menuloading}>淇濆瓨</Button> + <Button onClick={this.cancelConfig}>杩斿洖</Button> </div> } style={{ width: '100%' }}> <SettingComponent @@ -1018,12 +1012,12 @@ config={config} updatesearch={this.updatesearch} /> - <div className="chart-view" style={{position: 'relative'}}> - {/* 瑙嗗浘缁� 鏉冮檺 浼氬憳绛夌骇20+ */} - {this.props.memberLevel >= 20 ? <ChartGroupComponent + {config.charts ? <div className="chart-view" style={{position: 'relative'}}> + {/* 瑙嗗浘缁� 宸插純鐢� */} + <ChartGroupComponent config={config} updatechartgroup={this.updatechartgroup} - /> : null} + /> {config.charts.map(item => { if (!config.expand && chartview !== item.uuid) return '' @@ -1068,7 +1062,21 @@ ) } })} - </div> + </div> : <> + <ActionComponent + type="subtable" + menu={{MenuID: config.uuid, MenuName: config.tabName, MenuNo: config.tabNo, fstMenuList: this.props.menu.fstMenuList}} + config={config} + tabs={this.state.tabviews} + setSubConfig={this.setSubConfig} + updateaction={this.updateaction} + /> + <ColumnComponent + config={config} + menu={this.props.menu} + updatecolumn={this.updateconfig} + /> + </>} </Card> </div> </DndProvider> @@ -1079,13 +1087,13 @@ visible={this.state.closeVisible} onCancel={() => { this.setState({closeVisible: false}) }} footer={[ - <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['model.save']}</Button>, - <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['model.notsave']}</Button>, - <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['model.cancel']}</Button> + <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>淇濆瓨</Button>, + <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>涓嶄繚瀛�</Button>, + <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>鍙栨秷</Button> ]} destroyOnClose > - {this.state.dict['header.menu.config.placeholder']} + 閰嶇疆宸蹭慨鏀癸紝鏄惁淇濆瓨閰嶇疆淇℃伅锛� </Modal> {this.state.loading && <Spin size="large" />} </div> @@ -1093,14 +1101,4 @@ } } -const mapStateToProps = (state) => { - return { - memberLevel: state.memberLevel - } -} - -const mapDispatchToProps = () => { - return {} -} - -export default connect(mapStateToProps, mapDispatchToProps)(SubTableConfig) +export default SubTableConfig -- Gitblit v1.8.0