From 102be577a7f8df2ae30045d55a1a5fc584f90363 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 19 十二月 2022 18:31:38 +0800
Subject: [PATCH] 2022-12-19

---
 src/tabviews/zshare/actionList/printbutton/index.jsx |  642 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 461 insertions(+), 181 deletions(-)

diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx
index 988c039..a3c01ee 100644
--- a/src/tabviews/zshare/actionList/printbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -27,6 +27,7 @@
     MenuID: PropTypes.string,         // 鑿滃崟ID
     btn: PropTypes.object,            // 鎸夐挳
     setting: PropTypes.any,           // 椤甸潰閫氱敤璁剧疆
+    columns: PropTypes.array,
     disabled: PropTypes.any,          // 琛屾寜閽鐢�
   }
 
@@ -190,6 +191,13 @@
         duration: 5
       })
       return
+    } else if (btn.intertype === 'system' && btn.verify.dataType === 'custom' && (!btn.verify.setting || btn.verify.columns.length === 0)) {
+      notification.warning({
+        top: 92,
+        message: '鑷畾涔夋墦鍗版暟鎹璁剧疆鏁版嵁婧愶紒',
+        duration: 5
+      })
+      return
     }
 
     this.setState({
@@ -244,70 +252,52 @@
   triggerNormalPrint = (data, formlist) => {
     const { btn } = this.props
     let formdata = {}
-    let baseCount = 1
-    let baseType = ''
-    let baseTemp = btn.verify.Template || ''
     
     formlist.forEach(_data => {
-      formdata[_data.key] = _data.value
-
-      if (!_data.value) return
-
-      if (_data.key.toLowerCase() === 'printcount') {
-        baseCount = +_data.value
-      } else if (_data.key.toLowerCase() === 'printtype') {
-        baseType = _data.value
-      } else if (_data.key.toLowerCase() === 'templateid') {
-        baseTemp = _data.value
-      }
+      let _key = _data.key.toLowerCase()
+      formdata[_key] = _data.value
     })
 
     let printlist = []
     let templates = []
 
-    if (isNaN(baseCount) || baseCount < 1) {
-      baseCount = 1
-    }
-
     new Promise(resolve => {
-      if (btn.intertype === 'system') { // 浣跨敤绯荤粺鏃讹紝鐩存帴浠庤〃鏍兼垨琛ㄥ崟涓�夊彇鏁版嵁
+      if (btn.intertype === 'system' && btn.verify.dataType !== 'custom') { // 浣跨敤绯荤粺鏃讹紝鐩存帴浠庤〃鏍兼垨琛ㄥ崟涓�夊彇鏁版嵁
         if (btn.Ot === 'notRequired') {
           let printcell = {}
   
-          printcell.printType = baseType
-          printcell.printCount = baseCount
-          printcell.templateID = baseTemp
+          printcell.printType = formdata.printtype || ''
+          printcell.printCount = +(formdata.printcount || 1)
+          printcell.templateID = formdata.templateid || btn.verify.Template || ''
+
           printcell.data = [formdata]
+
+          if (isNaN(printcell.printCount) || printcell.printCount < 1) {
+            printcell.printCount = 1
+          }
 
           templates.push(printcell.templateID)
 
           printlist.push(printcell)
         } else {
           data.forEach(cell => {
-            let _cell = {...cell, ...formdata}
+            let _cell = {}
+
+            Object.keys(cell).forEach(key => {
+              let _key = key.toLowerCase()
+              _cell[_key] = cell[key]
+            })
+
+            _cell = {..._cell, ...formdata}
             
             let printcell = {data: [_cell]}
   
-            printcell.templateID = baseTemp
-            printcell.printType = baseType
-            printcell.printCount = 0
-
-            Object.keys(_cell).forEach(key => {
-              if (!_cell[key]) return
-
-              let _key = key.toLowerCase()
-
-              if (_key === 'templateid') {
-                printcell.templateID = _cell[key]
-              } else if (_key === 'printtype') {
-                printcell.printType = _cell[key]
-              } else if (_key === 'printcount') {
-                printcell.printCount = +_cell[key]
-              }
-            })
+            printcell.printType = _cell.printtype || ''
+            printcell.printCount = +(_cell.printcount || 1)
+            printcell.templateID = _cell.templateid || btn.verify.Template || ''
 
             if (isNaN(printcell.printCount) || printcell.printCount < 1) {
-              printcell.printCount = baseCount
+              printcell.printCount = 1
             }
 
             templates.push(printcell.templateID)
@@ -316,58 +306,64 @@
           })
         }
 
-        resolve(true)
+        if (btn.verify.printMode === 'custom') {
+          this.execCustomPrint(printlist, formdata)
+          resolve(false)
+        } else {
+          resolve(true)
+        }
       } else {
         this.getprintdata(btn, data, formdata, formlist).then(result => {
-          if (result.next) {
-            result.list.forEach(cell => {
-              // 绯荤粺鎵撳嵃鏁版嵁锛屾牎楠宒ata瀛楁
-              if (btn.verify.printMode !== 'custom' && (!cell.data || cell.data.length === 0)) return
+          if (!result.next) {
+            resolve(false)
+            return
+          }
 
-              let templateID = baseTemp
-              let printType = baseType
-              let printCount = 0
+          // 鑷畾涔夋墦鍗�
+          if (btn.verify.printMode === 'custom') {
+            this.execCustomPrint(result.list, formdata)
+            resolve(false)
+            return
+          }
 
-              Object.keys(cell).forEach(key => {
-                if (!cell[key]) return
+          result.list.forEach(cell => {
+            // 绯荤粺鎵撳嵃鏁版嵁锛屾牎楠宒ata瀛楁
+            if (!cell.data || cell.data.length === 0) return
 
+            cell.data.forEach(item => {
+              let _item = {...formdata}
+
+              _item.printtype = cell.printtype || ''
+              _item.printcount = cell.printcount || 1
+              _item.templateid = cell.templateid || ''
+
+              Object.keys(item).forEach(key => {
                 let _key = key.toLowerCase()
-
-                if (_key === 'templateid') {
-                  templateID = cell[key]
-                } else if (_key === 'printtype') {
-                  printType = cell[key]
-                } else if (_key === 'printcount') {
-                  printCount = +cell[key]
-                }
+                _item[_key] = item[key]
               })
 
-              cell.templateID = templateID
-              cell.printType = printType
-              cell.printCount = printCount
+              let printcell = {data: [_item]}
+  
+              printcell.printType = _item.printtype || ''
+              printcell.printCount = +(_item.printcount || 1)
+              printcell.templateID = _item.templateid || btn.verify.Template || ''
 
-              if (isNaN(cell.printCount) || cell.printCount < 1) {
-                cell.printCount = baseCount
+              if (isNaN(printcell.printCount) || printcell.printCount < 1) {
+                printcell.printCount = 1
               }
 
-              templates.push(cell.templateID)
+              templates.push(printcell.templateID)
 
-              printlist.push(cell)
+              printlist.push(printcell)
             })
-          }
+          })
           
-          resolve(result.next)
+          resolve(true)
         })
       }
     }).then(res => {
       // 鑾峰彇鎵撳嵃妯℃澘 getTemp
       if (!res) return false
-
-      if (btn.verify.printMode === 'custom') {
-        this.execCustomPrint(printlist, formdata)
-
-        return false
-      }
 
       templates = Array.from(new Set(templates)) // 鍘婚噸
 
@@ -447,10 +443,10 @@
               })
             }
 
-            this.execPrint(printlist, _temps, formdata)
+            this.execPrint(printlist, _temps)
           }, 500)
         } else {
-          this.execPrint(printlist, _temps, formdata)
+          this.execPrint(printlist, _temps)
         }
       } else {
         this.execError(errorMsg)
@@ -471,7 +467,7 @@
     })
 
     new Promise(resolve => {
-      if (btn.intertype === 'system') { // 浣跨敤绯荤粺鏃讹紝鐩存帴浠庤〃鏍兼垨琛ㄥ崟涓�夊彇鏁版嵁
+      if (btn.intertype === 'system' && btn.verify.dataType !== 'custom') { // 浣跨敤绯荤粺鏃讹紝鐩存帴浠庤〃鏍兼垨琛ㄥ崟涓�夊彇鏁版嵁
         if (btn.Ot === 'notRequired') {
           if (formlist.length > 0) {
             list = [formdata]
@@ -792,72 +788,124 @@
    * @description 鑾峰彇鎵撳嵃鏁版嵁
    */
   getprintdata = (btn, data, formdata, formlist) => {
-    const { setting } = this.props
+    const { setting, BID } = this.props
 
     let _list = []
     return new Promise(resolve => {
       let params = []
-      let param = {}
 
-      if (this.props.BID) {
-        param.BID = this.props.BID
-      }
-
-      if (btn.Ot === 'notRequired') {
-        let _param = { ...param, ...formdata }
-        params.push(_param)
-      } else if (btn.Ot === 'requiredSgl') {
-        if (setting.primaryKey) {
-          param[setting.primaryKey] = data[0][setting.primaryKey]
-        }
-
-        let _param = { ...param, ...formdata }
-
-        params.push(_param)
-      } else if (btn.Ot === 'requiredOnce') {
-        if (setting.primaryKey) {
-          let ids = data.map(d => { return d[setting.primaryKey]})
-          ids = ids.filter(Boolean)
-          ids = ids.join(',')
+      if (btn.intertype === 'system' && btn.verify.dataType === 'custom') {
+        if (btn.Ot === 'notRequired') {
+          let _param = this.getDefaultSql(formlist, null, '')
   
-          param[setting.primaryKey] = ids
-        }
-
-        let _param = { ...param, ...formdata }
-
-        params.push(_param)
-      } else if (btn.Ot === 'required') {
-        params = data.map((cell, index) => {
-          let _param = { ...param }
-          
+          params.push(_param)
+        } else if (btn.Ot === 'requiredSgl') {
+          let ID = ''
           if (setting.primaryKey) {
-            _param[setting.primaryKey] = cell[setting.primaryKey]
+            ID = data[0][setting.primaryKey] || ''
           }
 
-          let _cell = {}
-          if (index !== 0) {
-            Object.keys(cell).forEach(key => {
-              _cell[key.toLowerCase()] = cell[key]
-            })
+          let _param = this.getDefaultSql(formlist, data[0], ID)
+  
+          params.push(_param)
+        } else if (btn.Ot === 'requiredOnce') {
+          let ID = ''
+  
+          if (setting.primaryKey) {
+            let ids = data.map(d => { return d[setting.primaryKey]})
+            ids = ids.filter(Boolean)
+            ID = ids.join(',')
           }
 
-          formlist.forEach(_data => {
-            if (index !== 0 && _data.readin && _cell.hasOwnProperty(_data.key.toLowerCase())) {
-              _param[_data.key] = _cell[_data.key.toLowerCase()]
-            } else {
-              _param[_data.key] = _data.value
+          let _param = this.getDefaultSql(formlist, data[0], ID)
+  
+          params.push(_param)
+        } else if (btn.Ot === 'required') {
+          params = data.map(cell => {
+            let ID = ''
+            if (setting.primaryKey) {
+              ID = cell[setting.primaryKey] || ''
             }
+
+            return this.getDefaultSql(formlist, cell, ID)
           })
-          return _param
-        })
+        }
+      } else {
+        if (btn.Ot === 'notRequired') {
+          let _param = { ...formdata }
+  
+          if (BID) {
+            _param.BID = BID
+          }
+  
+          params.push(_param)
+        } else if (btn.Ot === 'requiredSgl') {
+          let _param = { ...formdata }
+  
+          if (setting.primaryKey) {
+            _param[setting.primaryKey] = data[0][setting.primaryKey]
+          }
+  
+          if (BID) {
+            _param.BID = BID
+          }
+  
+          params.push(_param)
+        } else if (btn.Ot === 'requiredOnce') {
+          let _param = { ...formdata }
+  
+          if (setting.primaryKey) {
+            let ids = data.map(d => { return d[setting.primaryKey]})
+            ids = ids.filter(Boolean)
+            ids = ids.join(',')
+    
+            _param[setting.primaryKey] = ids
+          }
+  
+          if (BID) {
+            _param.BID = BID
+          }
+  
+          params.push(_param)
+        } else if (btn.Ot === 'required') {
+          params = data.map((cell, index) => {
+            let _param = {}
+            
+            if (setting.primaryKey) {
+              _param[setting.primaryKey] = cell[setting.primaryKey]
+            }
+  
+            if (BID) {
+              _param.BID = BID
+            }
+  
+            let _cell = {}
+            if (index !== 0) {
+              Object.keys(cell).forEach(key => {
+                _cell[key.toLowerCase()] = cell[key]
+              })
+            }
+  
+            formlist.forEach(_data => {
+              if (index !== 0 && _data.readin && _cell.hasOwnProperty(_data.key.toLowerCase())) {
+                _param[_data.key] = _cell[_data.key.toLowerCase()]
+              } else {
+                _param[_data.key] = _data.value
+              }
+            })
+            return _param
+          })
+        }
       }
 
-      if (btn.intertype === 'inner') {
-        params = params.map(_param => {
-          _param.func = btn.innerFunc
-
-          return _param
-        })
+      if (btn.intertype === 'inner' || btn.intertype === 'system') {
+        if (btn.intertype === 'inner') {
+          params = params.map(_param => {
+            _param.func = btn.innerFunc
+  
+            return _param
+          })
+        }
 
         if (params.length <= 20) {
           let deffers = params.map(par => {
@@ -875,7 +923,16 @@
               }
             })
             if (!errorMsg) {
-              resolve({next: true, list: result})
+              resolve({next: true, list: result.map(res => {
+                Object.keys(res).forEach(key => {
+                  let _key = key.toLowerCase()
+                  if (['templateid', 'printtype', 'printcount'].includes(_key)) {
+                    res[_key] = res[key]
+                  }
+                })
+
+                return res
+              })})
             } else {
               this.execError(errorMsg)
               resolve({next: false, list: []})
@@ -888,6 +945,233 @@
         this.printOuterLoopRequest(params, btn, _list, resolve)
       }
     })
+  }
+
+  /**
+   * @description 鑾峰彇榛樿瀛樺偍杩囩▼璇锋眰鍙傛暟
+   */
+  getDefaultSql = (formlist, data, ID) => {
+    const { BID, btn, columns } = this.props
+
+    let arrFields = btn.verify.columns.map(col => col.field).join(',')
+
+    let param = {
+      func: 'sPC_Get_TableData',
+      obj_name: 'data',
+      exec_type: 'y',
+      arr_field: arrFields,
+      default_sql: btn.verify.setting.defaultSql
+    }
+
+    if (BID) {
+      param.BID = BID
+    }
+    if (ID) {
+      param.ID = ID
+    }
+
+    let userName = sessionStorage.getItem('User_Name') || ''
+    let fullName = sessionStorage.getItem('Full_Name') || ''
+    let RoleID = sessionStorage.getItem('role_id') || ''
+    let departmentcode = sessionStorage.getItem('departmentcode') || ''
+    let organization = sessionStorage.getItem('organization') || ''
+    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
+    let nation = sessionStorage.getItem('nation') || ''
+    let province = sessionStorage.getItem('province') || ''
+    let city = sessionStorage.getItem('city') || ''
+    let district = sessionStorage.getItem('district') || ''
+    let address = sessionStorage.getItem('address') || ''
+
+    let _dataresource = btn.verify.setting.dataresource
+    let _customScript = ''
+
+    btn.verify.scripts && btn.verify.scripts.forEach(script => {
+      if (script.status !== 'false') {
+        _customScript += `
+        ${script.sql}
+        `
+      }
+    })
+
+    if (btn.verify.setting.defaultSql === 'false') {
+      _dataresource = ''
+    }
+
+    if (/\s/.test(_dataresource)) {
+      _dataresource = '(' + _dataresource + ') tb'
+    }
+
+    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
+      _dataresource = _dataresource.replace(/\$@/ig, '/*').replace(/@datam@/ig, '\'Y\'')
+      _dataresource = _dataresource.replace(/@\$/ig, '*/')
+      _customScript = _customScript.replace(/\$@/ig, '/*').replace(/@datam@/ig, '\'Y\'')
+      _customScript = _customScript.replace(/@\$/ig, '*/')
+    } else {
+      _dataresource = _dataresource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
+      _customScript = _customScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
+    }
+
+    let initsql = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+      Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
+    `
+
+    let _vars = []
+    let _initvars = []
+    let _declare = []
+    // 鑾峰彇瀛楁閿�煎
+    formlist.forEach(form => {
+      let _key = form.key.toLowerCase()
+
+      if (_vars.includes(_key)) return
+
+      _vars.push(_key)
+
+      if (form.type === 'number' || form.type === 'rate') {
+        let val = form.value
+        if (isNaN(val)) {
+          val = 0
+        }
+        _initvars.push(`@${_key}=${val}`)
+      } else if (['date', 'datemonth'].includes(form.type)) {
+        _initvars.push(`@${_key}='${form.value || '1949-10-01'}'`)
+      } else {
+        _initvars.push(`@${_key}='${form.value}'`)
+      }
+
+      if (form.fieldlen && form.fieldlen > 2048) {
+        form.fieldlen = 'max'
+      }
+
+      let _type = `nvarchar(${form.fieldlen})`
+
+      if (form.type.match(/date/ig)) {
+        _type = 'datetime'
+      } else if (form.type === 'number') {
+        _type = `decimal(18,${form.fieldlen})`
+      } else if (form.type === 'rate') {
+        _type = `decimal(18,2)`
+      }
+
+      _declare.push(`@${_key} ${_type}`)
+    })
+
+    if (_declare.length > 0) {
+      initsql += `/* 琛ㄥ崟鍙橀噺 */
+        Declare ${_declare.join(',')}
+        select ${_initvars.join(',')}
+      `
+
+      _declare = []
+      _initvars = []
+    }
+
+    if (data && columns && columns.length > 0) {
+      let datavars = {}
+
+      Object.keys(data).forEach(key => {
+        datavars[key.toLowerCase()] = data[key]
+      })
+  
+      columns.forEach(col => {
+        if (!col.field || !col.datatype) return
+
+        let _key = col.field.toLowerCase()
+
+        if (_vars.includes(_key)) return
+  
+        let _val = datavars.hasOwnProperty(_key) ? datavars[_key] : ''
+
+        if (/^date/ig.test(col.datatype) && !_val) {
+          _val = '1949-10-01'
+        }
+
+        _initvars.push(`@${_key}='${_val}'`)
+        _declare.push(`@${_key} ${col.datatype}`)
+      })
+    }
+
+    if (_declare.length > 0) {
+      initsql += `/* 鏄剧ず鍒楀彉閲� */
+        Declare ${_declare.join(',')}
+        select ${_initvars.join(',')}
+      `
+    }
+
+    
+    if (_customScript) {
+      _customScript = `${initsql}
+        ${_customScript}
+      `
+    }
+
+    _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, '*/')
+
+    _dataresource = _dataresource.replace(/@ID@/ig, `'${ID}'`)
+    _customScript = _customScript.replace(/@ID@/ig, `'${ID}'`)
+    _dataresource = _dataresource.replace(/@BID@/ig, `'${BID || ''}'`)
+    _customScript = _customScript.replace(/@BID@/ig, `'${BID || ''}'`)
+    _dataresource = _dataresource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _customScript = _customScript.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _dataresource = _dataresource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _customScript = _customScript.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _dataresource = _dataresource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _customScript = _customScript.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _dataresource = _dataresource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _customScript = _customScript.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+
+
+    let LText = ''
+
+    if (_dataresource) {
+      LText = `/*system_query*/select ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${btn.verify.setting.order}) as rows from ${_dataresource}) tmptable order by tmptable.rows `
+    }
+
+    if (_customScript) {
+      if (LText) {
+        LText = `${LText}
+          aaa:
+          if @ErrorCode!=''
+            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@ 
+        `
+      } else {
+        _customScript = `${_customScript}
+          aaa:
+          if @ErrorCode!=''
+            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@ 
+        `
+      }
+    } else {
+      LText = `${initsql}
+        ${LText}
+      `
+    }
+
+    // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
+    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+      _customScript && console.info(`${btn.logLabel ? `/*${btn.logLabel} 鑷畾涔夎剼鏈�*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`)
+      LText && console.info(`${btn.logLabel ? `/*${btn.logLabel} 鏁版嵁婧�*/\n` : ''}` + LText.replace(/\n\s{8}/ig, '\n'))
+    }
+
+    if (btn.logLabel) {
+      param.menuname = btn.logLabel
+    }
+
+    param.custom_script = Utils.formatOptions(_customScript)
+    param.LText = Utils.formatOptions(LText)
+
+    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+    param.secretkey = Utils.encrypt('', param.timestamp)
+
+    if (window.GLOB.probation) {
+      param.s_debug_type = 'Y'
+    }
+
+    return param
   }
 
   /**
@@ -986,6 +1270,12 @@
 
         return Api.genericInterface(_callbackparam)
       } else if (response.status) {
+        Object.keys(response).forEach(key => {
+          let _key = key.toLowerCase()
+          if (['templateid', 'printtype', 'printcount'].includes(_key)) {
+            response[_key] = response[key]
+          }
+        })
 
         _list.push(response)
 
@@ -1003,6 +1293,13 @@
       if (!response) return
 
       if (response.status) {
+        Object.keys(response).forEach(key => {
+          let _key = key.toLowerCase()
+          if (['templateid', 'printtype', 'printcount'].includes(_key)) {
+            response[_key] = response[key]
+          }
+        })
+
         _list.push(response)
 
         // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹�
@@ -1026,6 +1323,12 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
+        Object.keys(res).forEach(key => {
+          let _key = key.toLowerCase()
+          if (['templateid', 'printtype', 'printcount'].includes(_key)) {
+            res[_key] = res[key]
+          }
+        })
         _list.push(res)
 
         if (params.length === 0) {
@@ -1072,7 +1375,7 @@
         }
 
         configParam.elements.forEach(element => {
-          let _field = element.field
+          let _field = element.field || ''
 
           if (_field === 'other_field') {
             _field = element.cusfield || ''
@@ -1082,7 +1385,7 @@
             Name: element.name || '',
             Type: element.type,
             Value: element.value || '',
-            Field: _field,
+            Field: _field.toLowerCase(),
             Left: element.left + offsetLeft,
             Top: element.top + offsetTop,
             Width: element.width,
@@ -1119,11 +1422,13 @@
             item.ImageWidth = element.imgWidth
             item.ImageHeight = element.imgHeight
             item.Trimming = ''
-            if (element.productValue && window.GLOB.systemType === 'production') {
-              item.Value = element.productValue
-              imgs.push(item.Value)
-            } else if (item.Value) {
-              imgs.push(item.Value)
+            if (!item.Field) {
+              if (element.productValue && window.GLOB.systemType === 'production') {
+                item.Value = element.productValue
+                imgs.push(item.Value)
+              } else if (item.Value) {
+                imgs.push(item.Value)
+              }
             }
           } else if (item.Type === 'text') {
             item.FontFamily = element.fontFamily
@@ -1190,8 +1495,8 @@
     return {
       error: error,
       config: _configparam,
-      fields: fields,
-      nonEFields: nonEFields,
+      fields: Array.from(new Set(fields)),
+      nonEFields: Array.from(new Set(nonEFields)),
       imgs: imgs
     }
   }
@@ -1339,7 +1644,7 @@
     })
   }
 
-  execPrint = (list, template, formdata) => {
+  execPrint = (list, template) => {
     const { btn } = this.props
     let _errors = []
 
@@ -1379,30 +1684,25 @@
         _datalist.forEach(res => {
           res.data.forEach(_cell => {
             for (let i = 0; i < res.printCount; i++) {
-              _data.push({...formdata, ..._cell})
+              _data.push(_cell)
             }
           })
         })
 
-        let _fields = Array.from(new Set(template[key].fields))
-        let _nonEFields = Array.from(new Set(template[key].nonEFields))
         let lacks = []
         let emptys = []
 
         _data.forEach(d => {
-          _fields.forEach(f => {
+          template[key].fields.forEach(f => {
             if (!d.hasOwnProperty(f)) {
               lacks.push(f)
-            } else if (_nonEFields.includes(f) && !d[f] && d[f] !== 0) {
+            } else if (template[key].nonEFields.includes(f) && !d[f] && d[f] !== 0) {
               emptys.push(f)
             }
           })
         })
 
         if (lacks.length > 0 || emptys.length > 0) {
-          lacks = Array.from(new Set(lacks))
-          emptys = Array.from(new Set(emptys))
-
           _errors.push({
             title: template[key].config.Title,
             lacks: lacks,
@@ -1490,49 +1790,29 @@
       return
     }
 
-    // let lackItems = printerList.filter(cell => cell.task.printer === 'lackprinter')[0]
-
     if (!socket || socket.readyState !== 1 || socket.url !== 'ws://' + btn.verify.linkUrl) {
       socket = new WebSocket('ws://' + btn.verify.linkUrl)
     } else {
-      // if (lackItems) {
-      //   let request  = {
-      //     requestID: '',
-      //     version: '',
-      //     cmd: 'getPrinters'
-      //   }
-      //   socket.send(JSON.stringify(request))
-      // } else {
-        this.syncMessageSend(printerList)
+      this.syncMessageSend(printerList)
 
-        this.execSuccess({
-          ErrCode: 'S',
-          message: '',
-          ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
-          status: true
-        })
-      // }
+      this.execSuccess({
+        ErrCode: 'S',
+        message: '',
+        ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
+        status: true
+      })
     }
 
     // 鎵撳紑Socket
     socket.onopen = () =>{
-      // if (lackItems) {
-      //   let request  = {
-      //     requestID: '',
-      //     version: '',
-      //     cmd: 'getPrinters'
-      //   }
-      //   socket.send(JSON.stringify(request))
-      // } else {
-        this.syncMessageSend(printerList)
+      this.syncMessageSend(printerList)
 
-        this.execSuccess({
-          ErrCode: 'S',
-          message: '',
-          ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
-          status: true
-        })
-      // }
+      this.execSuccess({
+        ErrCode: 'S',
+        message: '',
+        ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
+        status: true
+      })
     }
     // 鐩戝惉娑堟伅
     socket.onmessage = (event) => {

--
Gitblit v1.8.0