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