From d5ce81026882ada34e5d49411be7c90ee96cc102 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 17 一月 2023 18:20:11 +0800
Subject: [PATCH] 2023-01-17

---
 src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx |  120 ++++++++++++++++++++++-------------------------------------
 1 files changed, 45 insertions(+), 75 deletions(-)

diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
index eb8ffeb..8f566d2 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
@@ -29,7 +29,6 @@
   state = {
     verify: {},
     activeKey: 'setting',
-    systemScripts: [],
     defaultscript: '', // 鑷畾涔夎剼鏈�
     excelColumns: [
       {
@@ -38,7 +37,7 @@
         inputType: 'input',
         editable: true,
         unique: true,
-        width: '17%'
+        width: '16%'
       },
       {
         title: '鍚嶇О',
@@ -46,7 +45,7 @@
         inputType: 'input',
         editable: true,
         unique: true,
-        width: '17%'
+        width: '16%'
       },
       {
         title: '鍒楀',
@@ -55,7 +54,7 @@
         min: 5,
         max: 200,
         editable: true,
-        width: '12%',
+        width: '10%',
         render: (text) => text || 20
       },
       {
@@ -64,7 +63,7 @@
         inputType: 'select',
         editable: true,
         required: false,
-        width: '14%',
+        width: '12%',
         render: (text) => {
           if (text === 'image') {
             return '鍥剧墖'
@@ -86,7 +85,7 @@
         inputType: 'radio',
         editable: true,
         required: false,
-        width: '14%',
+        width: '12%',
         render: (text) => {
           if (text === 'true') {
             return '鏄�'
@@ -115,7 +114,7 @@
         inputType: 'radio',
         editable: true,
         required: false,
-        width: '14%',
+        width: '12%',
         render: (text) => {
           if (text !== 'false') {
             return '鏄�'
@@ -127,7 +126,19 @@
           {value: 'true', text: '鏄�'},
           {value: 'false', text: '鍚�'}
         ]
-      }
+      },
+      {
+        title: '绾㈣壊鏍囬',
+        dataIndex: 'required',
+        width: '10%',
+        editable: true,
+        inputType: 'radio',
+        render: (text, record) => record.required === 'true' ? '鏄�' : '鍚�',
+        options: [
+          {value: 'true', text: '鏄�'},
+          {value: 'false', text: '鍚�'}
+        ]
+      },
     ],
     scriptsColumns: [
       {
@@ -216,13 +227,21 @@
     if (card.intertype !== 'system') {
       _verify.enable = 'false'
     }
-    if (_verify.columns[0] && (!_verify.columns[0].type || !_verify.columns[0].output)) {
-      _verify.columns = _verify.columns.map(col => {
-        col.type = col.type || 'text'
-        col.output = col.output || 'true'
-        return col
-      })
-    }
+    _verify.columns = _verify.columns.map(col => {
+      col.type = col.type || 'text'
+      col.output = col.output || 'true'
+      col.required = col.required || 'false'
+
+      if (!['text', 'image', 'number'].includes(col.type)) {
+        if (/^Decimal/ig.test(col.type)) {
+          col.type = 'number'
+        } else {
+          col.type = 'text'
+        }
+      }
+
+      return col
+    })
 
     let defaultscript = ''
     if (!_verify.script && card.intertype === 'system') {
@@ -356,57 +375,6 @@
     })
   }
 
-  componentDidMount () {
-    this.getsysScript()
-  }
-
-  getsysScript = () => {
-    if (sessionStorage.getItem('mk_sys_scripts')) {
-      this.setState({
-        systemScripts: JSON.parse(sessionStorage.getItem('mk_sys_scripts'))
-      })
-      return
-    }
-    
-    let _scriptSql = `Select distinct func+Remark as funcname,longparam, s.Sort from聽 s_custom_script s inner join (select OpenID from sapp where ID=@Appkey@) p on s.openid = case when s.appkey='' then s.openid else p.OpenID end order by s.Sort`
-
-    _scriptSql = Utils.formatOptions(_scriptSql)
-
-    let _sParam = {
-      func: 'sPC_Get_SelectedList',
-      LText: _scriptSql,
-      obj_name: 'data',
-      arr_field: 'funcname,longparam'
-    }
-    
-    _sParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
-    _sParam.secretkey = Utils.encrypt(_sParam.LText, _sParam.timestamp)
-    _sParam.open_key = Utils.encryptOpenKey(_sParam.secretkey, _sParam.timestamp) // 浜戠鏁版嵁楠岃瘉
-    
-    Api.getSystemConfig(_sParam).then(res => {
-      if (res.status) {
-        let _scripts = res.data.map(item => {
-          return {
-            name: item.funcname,
-            value: window.decodeURIComponent(window.atob(item.longparam))
-          }
-        })
-
-        sessionStorage.setItem('mk_sys_scripts', JSON.stringify(_scripts))
-
-        this.setState({
-          systemScripts: _scripts
-        })
-      } else {
-        notification.warning({
-          top: 92,
-          message: res.message,
-          duration: 5
-        })
-      }
-    })
-  }
-
   handleEdit = (record, type) => {
     let node = null
 
@@ -511,6 +479,7 @@
     values.uuid = Utils.getuuid()
     values.abs = 'false'
     values.output = 'true'
+    values.required = 'false'
     verify.columns.push(values)
 
     this.setState({
@@ -803,6 +772,7 @@
         Width: 20,
         abs: 'false',
         output: 'true',
+        required: 'false',
         type: 'text',
         uuid: Utils.getuuid()
       }
@@ -850,6 +820,7 @@
           Width: 20,
           abs: 'false',
           output: col.output || 'true',
+          required: col.required || 'false',
           type: 'text',
         }
 
@@ -920,10 +891,9 @@
       if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) {
         notification.warning({
           top: 92,
-          message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒',
+          message: '瀛樺湪鏈繚瀛樿剼鏈紒',
           duration: 5
         })
-        return
       }
 
       this.setState({loading: true})
@@ -945,7 +915,7 @@
     }
   }
 
-  scriptsChange = (values) => {
+  scriptsChange = (values, callback) => {
     let verify = JSON.parse(JSON.stringify(this.state.verify))
 
     if (values.uuid) {
@@ -968,10 +938,12 @@
         loading: false,
         verify: verify
       })
+      callback(true)
     }, () => {             // 楠岃瘉澶辫触
       this.setState({
         loading: false
       })
+      callback(false)
     }, verify.scripts)
   }
 
@@ -984,7 +956,7 @@
     }
 
     let timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
-    let sql = SettingUtils.getDebugSql(verify, scripts, searches, Utils, timestamp)
+    let sql = SettingUtils.getDebugSql(verify, scripts, (verify.useSearch === 'true' ? searches : []), Utils, timestamp)
     let param = {
       func: 's_debug_sql',
       exec_type: 'y',
@@ -1012,7 +984,7 @@
 
   render() {
     const { card } = this.props
-    const { verify, excelColumns, defaultscript, scriptsColumns, activeKey, loading } = this.state
+    const { verify, excelColumns, defaultscript, scriptsColumns, activeKey, loading, searches } = this.state
     const { getFieldDecorator } = this.props.form
     const formItemLayout = {
       labelCol: {
@@ -1046,7 +1018,7 @@
             <Button className="excel-col-add mk-red" title="娓呯┖Excel鍒�" onClick={this.clearField}>
               娓呯┖Excel鍒�
             </Button>
-            <div style={{color: '#959595', fontSize: '13px', paddingLeft: '10px'}}>濡傞渶瀵煎嚭搴忓彿锛岃浣跨敤瀛楁 $Index锛涙暟鍊肩被鍨嬪鍑烘椂鍙繘琛屾暟鎹鐞嗭紙鍙栫粷瀵瑰�笺�佷繚鐣欏皬鏁颁綅锛夈��</div>
+            <div style={{color: '#959595', fontSize: '13px', paddingLeft: '10px'}}>濡傞渶瀵煎嚭搴忓彿锛岃浣跨敤瀛楁 $Index锛涙暟鍊肩被鍨嬪鍑烘椂鍙繘琛屾暟鎹鐞嗭紙鍙栫粷瀵瑰�笺�佷繚鐣欏皬鏁颁綅锛夛紱绾㈣壊鏍囬瀵煎嚭鏃跺垪澶存枃瀛椾负绾㈣壊銆�</div>
             <EditTable actions={['edit', 'move', 'copy', 'del']} type="excelcolumn" wrappedComponentRef={(inst) => this.columnRef = inst} data={verify.columns} columns={excelColumns} onChange={this.changeColumns}/>
           </TabPane>
           {card.intertype === 'system' ? <TabPane tab={
@@ -1058,9 +1030,7 @@
             <CustomScript
               btn={card}
               sheet={verify.tableName}
-              usefulfields={verify.columns}
-              scripts={verify.scripts}
-              systemScripts={this.state.systemScripts}
+              searches={verify.useSearch === 'true' ? searches : []}
               scriptsChange={this.scriptsChange}
               wrappedComponentRef={(inst) => this.scriptsForm = inst}
             />

--
Gitblit v1.8.0