From da34633b25d16359cd91a656acad5e811f9972b7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 三月 2023 18:09:54 +0800
Subject: [PATCH] 2023-03-14

---
 src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx |  191 +++++++++++++++++++++++++----------------------
 1 files changed, 101 insertions(+), 90 deletions(-)

diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
index 47fe124..76e6878 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({
@@ -743,7 +712,8 @@
 
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
         param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id)@/ig, `'${param.timestamp}'`)
-
+        param.LText = param.LText.replace(/\n/g, ' ')
+        
         param.LText = Utils.formatOptions(param.LText)
         param.secretkey = Utils.encrypt('', param.timestamp)
         
@@ -802,6 +772,7 @@
         Width: 20,
         abs: 'false',
         output: 'true',
+        required: 'false',
         type: 'text',
         uuid: Utils.getuuid()
       }
@@ -813,6 +784,31 @@
 
       columns.push(cell)
     })
+
+    if (config.subtype === 'dualdatacard') {
+      config.subColumns.forEach(item => {
+        if (fields.includes(item.field) || !item.field) return
+        fields.push(item.field)
+  
+        let cell = {
+          Column: item.field,
+          Text: item.label,
+          Width: 20,
+          abs: 'false',
+          output: 'true',
+          required: 'false',
+          type: 'text',
+          uuid: Utils.getuuid()
+        }
+  
+        if (item.type === 'number') {
+          cell.type = 'number'
+          cell.decimal = item.decimal
+        }
+  
+        columns.push(cell)
+      })
+    }
 
     this.setState({
       verify: {...verify, columns: columns}
@@ -840,21 +836,37 @@
   changeColumns = (columns) => {
     const { verify } = this.state
 
-    if (columns[0] && (columns[0].type !== 'image' && columns[0].type !== 'text' && columns[0].type !== 'number')) {
-      columns = columns.map(col => {
-        let _cell = {
-          uuid: Utils.getuuid(),
-          Column: col.Column,
-          Text: col.Text,
-          Width: 20,
-          abs: 'false',
-          output: 'true',
-          type: 'text',
-        }
+    columns = columns.map(col => {
+      col.type = col.type || 'text'
+      col.output = col.output || 'true'
+      col.required = col.required || 'false'
 
-        return _cell
-      })
-    }
+      if (!['text', 'image', 'number'].includes(col.type)) {
+        if (/^Decimal/ig.test(col.type)) {
+          col.type = 'number'
+        } else {
+          col.type = 'text'
+        }
+      }
+
+      return col
+    })
+    // if (columns[0] && !['image', 'text', 'number'].includes(columns[0].type)) {
+    //   columns = columns.map(col => {
+    //     let _cell = {
+    //       uuid: Utils.getuuid(),
+    //       Column: col.Column,
+    //       Text: col.Text,
+    //       Width: 20,
+    //       abs: 'false',
+    //       output: col.output || 'true',
+    //       required: col.required || 'false',
+    //       type: 'text',
+    //     }
+
+    //     return _cell
+    //   })
+    // }
 
     this.setState({verify: {...verify, columns}})
   }
@@ -919,10 +931,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})
@@ -944,7 +955,7 @@
     }
   }
 
-  scriptsChange = (values) => {
+  scriptsChange = (values, callback) => {
     let verify = JSON.parse(JSON.stringify(this.state.verify))
 
     if (values.uuid) {
@@ -967,10 +978,12 @@
         loading: false,
         verify: verify
       })
+      callback(true)
     }, () => {             // 楠岃瘉澶辫触
       this.setState({
         loading: false
       })
+      callback(false)
     }, verify.scripts)
   }
 
@@ -983,7 +996,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',
@@ -1011,7 +1024,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: {
@@ -1045,7 +1058,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={
@@ -1057,9 +1070,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