From 3a675efd3a8883f23208cefd39e0e871bf57a70b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 31 八月 2023 10:21:29 +0800 Subject: [PATCH] 2023-08-31 --- src/utils/utils-datamanage.js | 10 - src/menu/components/card/double-data-card/options.jsx | 16 -- src/menu/process/settingform/index.jsx | 82 ++++++++++ src/menu/components/card/data-card/options.jsx | 6 src/views/pcdesign/index.jsx | 23 +- src/menu/datasource/verifycard/settingform/index.jsx | 10 - src/menu/process/index.jsx | 136 +++++++++++++++++ src/menu/process/settingform/index.scss | 0 src/menu/components/card/balcony/options.jsx | 2 src/menu/datasource/index.jsx | 6 src/views/tabledesign/index.jsx | 33 ++-- src/views/billprint/index.jsx | 33 +++ src/views/mobdesign/index.jsx | 37 ++-- src/views/menudesign/index.jsx | 53 +++--- src/menu/process/index.scss | 25 +++ src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx | 2 16 files changed, 358 insertions(+), 116 deletions(-) diff --git a/src/menu/components/card/balcony/options.jsx b/src/menu/components/card/balcony/options.jsx index d9694b2..1f90cc9 100644 --- a/src/menu/components/card/balcony/options.jsx +++ b/src/menu/components/card/balcony/options.jsx @@ -6,7 +6,7 @@ */ export default function (wrap, buttons, columns) { let menu = window.GLOB.customMenu - let MenuType = menu.parentId === 'BillPrintTemp' ? 'billPrint' : '' + let MenuType = sessionStorage.getItem('MenuType') || 'custom' let modules = MenuUtils.getLinkModules(menu.components) || [] let supmodules = MenuUtils.getSupModules(menu.components, '', menu.interfaces) diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx index b4ec305..d113003 100644 --- a/src/menu/components/card/data-card/options.jsx +++ b/src/menu/components/card/data-card/options.jsx @@ -5,7 +5,7 @@ */ export default function (wrap, subtype, columns = [], id = '', supNodes = [], setting, buttons = []) { let appType = sessionStorage.getItem('appType') - let MenuType = '' + let MenuType = sessionStorage.getItem('MenuType') || 'custom' let menu = window.GLOB.customMenu let laypage = setting && setting.laypage !== 'false' let interfaces = [] @@ -18,10 +18,6 @@ }) } }) - } - - if (menu.parentId === 'BillPrintTemp') { - MenuType = 'billPrint' } let modules = [] if (subtype === 'propcard' || subtype === 'datacard') { diff --git a/src/menu/components/card/double-data-card/options.jsx b/src/menu/components/card/double-data-card/options.jsx index 778fe4c..4f3c117 100644 --- a/src/menu/components/card/double-data-card/options.jsx +++ b/src/menu/components/card/double-data-card/options.jsx @@ -3,14 +3,7 @@ */ export default function (wrap, columns = [], setting) { let appType = sessionStorage.getItem('appType') - // let MenuType = '' - // let menu = window.GLOB.customMenu let laypage = setting && setting.laypage !== 'false' - - // if (menu.parentId === 'BillPrintTemp') { - // MenuType = 'billPrint' - // } - let roleList = sessionStorage.getItem('sysRoles') if (roleList) { @@ -156,15 +149,6 @@ {value: 'true', label: '鏈�'}, ], }, - // { - // type: 'number', - // field: 'printHeight', - // label: '鎹㈢畻楂樺害', - // initval: wrap.printHeight || '', - // tooltip: '褰撳墠鏁版嵁鍗¢珮搴︾浉褰撲簬鍑犳潯鏁版嵁銆�', - // required: false, - // forbid: MenuType !== 'billPrint' - // }, { type: 'radio', field: 'empty', diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx index 4076942..26b3808 100644 --- a/src/menu/datasource/index.jsx +++ b/src/menu/datasource/index.jsx @@ -147,6 +147,12 @@ this.setState({loading: true}) this.verifyRef.submitDataSource().then(res => { + let MenuType = sessionStorage.getItem('MenuType') + + if (MenuType === 'billPrint') { + res.setting.supModule = ['empty'] + } + if (res.columns) { res.columns = res.columns.map(item => { diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx index 3c256d0..9e2cc1d 100644 --- a/src/menu/datasource/verifycard/settingform/index.jsx +++ b/src/menu/datasource/verifycard/settingform/index.jsx @@ -27,7 +27,7 @@ modules: [], innerRules: [], innertip: '', - MenuType: '', + MenuType: sessionStorage.getItem('MenuType') || '', ismain: false } @@ -35,12 +35,6 @@ const { config, setting } = this.props let menu = window.GLOB.customMenu - let MenuType = '' - - if (menu.parentId === 'BillPrintTemp') { - MenuType = 'billPrint' - } - let modules = MenuUtils.getSupModules(menu.components, config.uuid, menu.interfaces) let ismain = false @@ -90,7 +84,7 @@ } } - this.setState({modules, innerRules, innertip, setting: _setting, ismain, MenuType}) + this.setState({modules, innerRules, innertip, setting: _setting, ismain}) } handleConfirm = () => { diff --git a/src/menu/process/index.jsx b/src/menu/process/index.jsx new file mode 100644 index 0000000..9b9db65 --- /dev/null +++ b/src/menu/process/index.jsx @@ -0,0 +1,136 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { is, fromJS } from 'immutable' +import { Modal, Tooltip, notification } from 'antd' +import { QuestionCircleOutlined, PlusOutlined, CloseOutlined } from '@ant-design/icons' + +import SettingForm from './settingform' +import './index.scss' + +const { confirm } = Modal + +class ProcessComponent extends Component { + static propTpyes = { + config: PropTypes.any, + updateConfig: PropTypes.func + } + + state = { + visible: false, + urlFields: this.props.config.urlFields || [] + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.state), fromJS(nextState)) + } + + editDataSource = () => { + this.setState({ + visible: true + }) + } + + verifySubmit = () => { + const { urlFields } = this.state + const { config } = this.props + + this.verifyRef.handleConfirm().then(res => { + if (urlFields.filter(field => field === res.field).length > 0) { + notification.warning({ + top: 92, + message: '瀛楁宸插瓨鍦紒', + duration: 5 + }) + return + } + + let _urlFields = [...urlFields, res.field] + + this.setState({ + visible: false, + urlFields: _urlFields + }) + + if (window.GLOB.urlFields) { + window.GLOB.urlFields = _urlFields + } + + this.props.updateConfig({...config, urlFields: _urlFields}) + }) + } + + deleteField = (field) => { + let config = JSON.stringify(this.props.config) + const _this = this + + if (new RegExp(field, 'ig').test(config)) { + confirm({ + title: `閰嶇疆涓瓨鍦ˊ${field}@锛岀‘瀹氬垹闄ゅ悧锛焋, + content: '', + onOk() { + _this.execDelete(field) + }, + onCancel() {} + }) + } else { + this.execDelete(field) + } + } + + execDelete = (_field) => { + const { config } = this.props + let _urlFields = this.state.urlFields.filter(field => field !== _field) + + this.setState({ + urlFields: _urlFields + }) + + if (window.GLOB.urlFields) { + window.GLOB.urlFields = _urlFields + } + + this.props.updateConfig({...config, urlFields: _urlFields}) + } + + render () { + const { visible, urlFields } = this.state + + return ( + <div className="url-field-component"> + <div className="field-plus"> + <Tooltip placement="topLeft" title="椤甸潰鍙帴鏀剁殑鍙傛暟瀛楁锛屽湪鏌ヨ鏁版嵁婧愭垨鑷畾涔夎剼鏈腑浣跨敤 @瀛楁@ 鎺ユ敹銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + url鍙橀噺 + </Tooltip> + <PlusOutlined title="娣诲姞" onClick={() => this.editDataSource()} /> + </div> + <div> + {urlFields.map((field, index) => { + return ( + <div className="field-item" key={index}> + <CloseOutlined title="鍒犻櫎" onClick={() => this.deleteField(field)} /> + {field} + </div> + ) + })} + </div> + <Modal + title="瀛楁娣诲姞" + visible={visible} + width={500} + maskClosable={false} + onOk={this.verifySubmit} + onCancel={() => { this.setState({ visible: false }) }} + destroyOnClose + > + <SettingForm + inputSubmit={this.verifySubmit} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> + </Modal> + </div> + ) + } +} + +export default ProcessComponent \ No newline at end of file diff --git a/src/menu/process/index.scss b/src/menu/process/index.scss new file mode 100644 index 0000000..0f1ad12 --- /dev/null +++ b/src/menu/process/index.scss @@ -0,0 +1,25 @@ +.url-field-component { + margin-bottom: 15px; + .field-plus { + line-height: 35px; + padding-left: 16px; + >.anticon-plus { + color: #26C281; + padding: 2px 5px; + margin-left: 5px; + } + } + .field-item { + position: relative; + border: 1px solid #e8e8e8; + padding: 5px 10px; + border-radius: 4px; + + >.anticon-close { + position: absolute; + right: 5px; + top: 3px; + font-size: 13px; + } + } +} \ No newline at end of file diff --git a/src/menu/process/settingform/index.jsx b/src/menu/process/settingform/index.jsx new file mode 100644 index 0000000..2c3784e --- /dev/null +++ b/src/menu/process/settingform/index.jsx @@ -0,0 +1,82 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { Form, Input } from 'antd' + +// import './index.scss' + +class SettingForm extends Component { + static propTpyes = { + inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢 + } + + handleConfirm = () => { + // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� + return new Promise((resolve, reject) => { + this.props.form.validateFieldsAndScroll((err, values) => { + if (!err) { + resolve(values) + } else { + reject(err) + } + }) + }) + } + + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + + componentDidMount() { + try { + let _input = document.getElementById('field') + if (_input.focus) { + _input.focus() + } + } catch (e) { + console.warn('focus error锛�') + } + } + + render() { + const { getFieldDecorator } = this.props.form + + const formItemLayout = { + labelCol: { + xs: { span: 24 }, + sm: { span: 8 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 14 } + } + } + + return ( + <div className="url-field-form"> + <Form {...formItemLayout}> + <Form.Item label="瀛楁鍚�"> + {getFieldDecorator('field', { + initialValue: '', + rules: [ + { + required: true, + message: '璇疯緭鍏ュ瓧娈靛悕!' + }, + { + pattern: /^[a-zA-Z0-9_]*$/ig, + message: '瀛楁鍙娇鐢ㄨ嫳鏂囥�佹暟瀛楁垨_' + } + ] + })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)} + </Form.Item> + </Form> + </div> + ) + } +} + +export default Form.create()(SettingForm) \ No newline at end of file diff --git a/src/menu/process/settingform/index.scss b/src/menu/process/settingform/index.scss new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/menu/process/settingform/index.scss diff --git a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx index 5893982..22c8d18 100644 --- a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx +++ b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx @@ -463,7 +463,7 @@ fields.push( <Col span={24} key={index}> <Form.Item label={item.label}> - <ColorSketch defaultValue={item.initval} onChange={(value) => this.change(value, item.field)}/> + <ColorSketch config={{initval: item.initval}} onChange={(value) => this.change(value, item.field)}/> </Form.Item> </Col> ) diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js index 36018cb..ecd38da 100644 --- a/src/utils/utils-datamanage.js +++ b/src/utils/utils-datamanage.js @@ -445,13 +445,6 @@ _customScript = _customScript.replace(item.reg, item.value) }) - // _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '') - // _customScript = _customScript.replace(/@select\$|\$select@/ig, '') - // _dataresource = _dataresource.replace(/\$sum@/ig, '/*') - // _dataresource = _dataresource.replace(/@sum\$/ig, '*/') - // _customScript = _customScript.replace(/\$sum@/ig, '/*') - // _customScript = _customScript.replace(/@sum\$/ig, '*/') - let _search = '' if (setting.queryType !== 'statistics' && _dataresource) { _search = Utils.joinMainSearchkey(searchlist) @@ -494,8 +487,7 @@ primaryKey: setting.primaryKey || '', foreign_key: '', sql: _dataresource, - script: _customScript, - // transaction: setting.transaction === 'true' + script: _customScript } } diff --git a/src/views/billprint/index.jsx b/src/views/billprint/index.jsx index a245790..c46417f 100644 --- a/src/views/billprint/index.jsx +++ b/src/views/billprint/index.jsx @@ -719,16 +719,11 @@ _dataresource = `select top 1000 ${setting.arr_field} from ${_dataresource} ` } - // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if (window.GLOB.debugger === true) { - _customScript && console.info(`${_dataresource ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`) - _dataresource && console.info(_dataresource) - } - return { name: dataName, columns: columns, par_tablename: '', + order: setting.order || '', type: format === 'array' ? format : '', primaryKey: setting.primaryKey || '', foreign_key: '', @@ -755,6 +750,18 @@ let district = sessionStorage.getItem('district') || '' let address = sessionStorage.getItem('address') || '' + let regoptions = [ + { reg: /@pageSize@/ig, value: 9999 }, + { reg: /@pageIndex@/ig, value: 1}, + { reg: /@ID@/ig, value: `''`}, + { reg: /@BID@/ig, value: `'${BID || ''}'`}, + { reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`}, + { reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`}, + { reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`}, + { reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`}, + { reg: /@typename@/ig, value: `'admin'`}, + ] + let LText = params.map((item, index) => { let _sql = item.sql let _script = item.script @@ -766,6 +773,20 @@ ` } + _sql = _sql.replace(/@orderBy@/ig, item.order) + _script = _script.replace(/@orderBy@/ig, item.order) + + regoptions.forEach(cell => { + _sql = _sql.replace(cell.reg, cell.value) + _script = _script.replace(cell.reg, cell.value) + }) + + // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 + if (window.GLOB.debugger === true) { + _script && console.info(`${_sql ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_script}`) + _sql && console.info(_sql) + } + item.columns.forEach(cell => { LText_field.push(`Select '${item.name}' as tablename,'${cell.field}' as fieldname,'${cell.datatype}' as field_type`) }) diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 0a95623..189034b 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -95,6 +95,8 @@ try { let param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param))) + sessionStorage.setItem('MenuType', param.MenuType || 'custom') + this.setState({ MenuType: param.MenuType, MenuId: param.MenuId || param.MenuID, @@ -1115,31 +1117,32 @@ <Collapse accordion defaultActiveKey="basedata" bordered={false}> {/* 鍩烘湰淇℃伅 */} <Panel header="鍩烘湰淇℃伅" key="basedata"> - {/* 鑿滃崟淇℃伅 */} - {config && MenuType === 'custom' ? <MenuForm - config={config} - MenuId={MenuId} - parentId={ParentId} - MenuName={config.MenuName} - MenuNo={config.MenuNo} - updateConfig={this.updateConfig} - /> : null} - {config && MenuType === 'home' ? <HomeForm - config={config} - updateConfig={this.updateConfig} - /> : null} - {config && MenuType === 'billPrint' ? <PrintMenuForm - config={config} - updateConfig={this.updateConfig} - /> : null} - {config ? <UrlFieldComponent - config={config} - updateConfig={this.updateConfig} - /> : null} - {/* 琛ㄥ悕娣诲姞 */} - {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null} - {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null} - {config ? <NormalCss config={config} updateConfig={this.updateConfig}/> : null} + {config ? <> + {MenuType === 'custom' ? <MenuForm + config={config} + MenuId={MenuId} + parentId={ParentId} + MenuName={config.MenuName} + MenuNo={config.MenuNo} + updateConfig={this.updateConfig} + /> : null} + {MenuType === 'home' ? <HomeForm + config={config} + updateConfig={this.updateConfig} + /> : null} + {MenuType === 'billPrint' ? <PrintMenuForm + config={config} + updateConfig={this.updateConfig} + /> : null} + <UrlFieldComponent + config={config} + updateConfig={this.updateConfig} + /> + {/* 琛ㄥ悕娣诲姞 */} + <TableComponent config={config} updatetable={this.updateConfig}/> + <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + <NormalCss config={config} updateConfig={this.updateConfig}/> + </> : null} </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="缁勪欢" key="component"> diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx index 7db3469..c2092d2 100644 --- a/src/views/mobdesign/index.jsx +++ b/src/views/mobdesign/index.jsx @@ -2070,24 +2070,25 @@ <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}> {/* 鍩烘湰淇℃伅 */} <Panel header="鍩烘湰淇℃伅" forceRender className="basedata" key="basedata"> - {/* 鑿滃崟淇℃伅 */} - {config ? <MenuForm - config={config} - MenuId={MenuId} - adapters={adapters} - updateConfig={(con) => { - this.updateConfig(con) - if (con.direction !== config.direction) { - this.changeView(con.direction) - } - }} - /> : null} - {config ? <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> : null} - {/* 琛ㄥ悕娣诲姞 */} - {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null} - {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null} - {config ? <Paragraph style={{padding: '10px 0px 0px 18px'}} copyable={{ text: `${window.GLOB.baseurl}mob/index.html#/index/${sessionStorage.getItem('kei_no')}/${sessionStorage.getItem('typename')}/${sessionStorage.getItem('lang')}/${MenuId}/@BID@` }}>鑿滃崟閾炬帴</Paragraph> : null} - {config ? <NormalCss config={config} updateConfig={this.updateConfig}/> : null} + {config ? <> + <MenuForm + config={config} + MenuId={MenuId} + adapters={adapters} + updateConfig={(con) => { + this.updateConfig(con) + if (con.direction !== config.direction) { + this.changeView(con.direction) + } + }} + /> + <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> + {/* 琛ㄥ悕娣诲姞 */} + <TableComponent config={config} updatetable={this.updateConfig}/> + <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + <Paragraph style={{padding: '10px 0px 0px 18px'}} copyable={{ text: `${window.GLOB.baseurl}mob/index.html#/index/${sessionStorage.getItem('kei_no')}/${sessionStorage.getItem('typename')}/${sessionStorage.getItem('lang')}/${MenuId}/@BID@` }}>鑿滃崟閾炬帴</Paragraph> + <NormalCss config={config} updateConfig={this.updateConfig}/> + </> : null} </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="缁勪欢" className="component" key="component"> diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 2c136f0..9a139f7 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -1689,17 +1689,18 @@ <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}> {/* 鍩烘湰淇℃伅 */} <Panel header="鍩烘湰淇℃伅" key="basedata"> - {/* 鑿滃崟淇℃伅 */} - {config ? <MenuForm - config={config} - MenuId={MenuId} - updateConfig={this.updateConfig} - /> : null} - {config ? <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> : null} - {/* 琛ㄥ悕娣诲姞 */} - {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null} - {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null} - {config ? <NormalCss config={config} updateConfig={this.updateConfig}/> : null} + {config ? <> + <MenuForm + config={config} + MenuId={MenuId} + updateConfig={this.updateConfig} + /> + <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> + {/* 琛ㄥ悕娣诲姞 */} + <TableComponent config={config} updatetable={this.updateConfig}/> + <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + <NormalCss config={config} updateConfig={this.updateConfig}/> + </> : null} </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="缁勪欢" key="component"> diff --git a/src/views/tabledesign/index.jsx b/src/views/tabledesign/index.jsx index 4696876..3954522 100644 --- a/src/views/tabledesign/index.jsx +++ b/src/views/tabledesign/index.jsx @@ -831,22 +831,23 @@ <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}> {/* 鍩烘湰淇℃伅 */} <Panel header="鍩烘湰淇℃伅" key="basedata"> - {/* 鑿滃崟淇℃伅 */} - {config ? <MenuForm - config={config} - MenuId={MenuId} - parentId={ParentId} - MenuName={config.MenuName} - MenuNo={config.MenuNo} - updateConfig={this.updateConfig} - /> : null} - {config ? <UrlFieldComponent - config={config} - updateConfig={this.updateConfig} - /> : null} - {/* 琛ㄥ悕娣诲姞 */} - {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null} - {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null} + {config ? <> + <MenuForm + config={config} + MenuId={MenuId} + parentId={ParentId} + MenuName={config.MenuName} + MenuNo={config.MenuNo} + updateConfig={this.updateConfig} + /> + <UrlFieldComponent + config={config} + updateConfig={this.updateConfig} + /> + {/* 琛ㄥ悕娣诲姞 */} + <TableComponent config={config} updatetable={this.updateConfig}/> + <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + </> : null} </Panel> <Panel header="鎼滅储" key="search"> {Source.searchItems.map((item, index) => (<SourceElement key={index} content={item}/>))} -- Gitblit v1.8.0