From 7e5200a09b2c6282382ec8725220f5561de139f6 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 23 二月 2024 18:05:53 +0800
Subject: [PATCH] Merge branch 'develop'

---
 src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx                   |  108 +++++++++++----------
 src/tabviews/zshare/actionList/exceloutbutton/index.jsx                          |   18 +-
 src/tabviews/custom/popview/index.jsx                                            |    4 
 src/views/systemfunc/index.jsx                                                   |    2 
 src/tabviews/custom/index.jsx                                                    |    4 
 src/tabviews/custom/components/share/tabtransfer/index.jsx                       |    4 
 src/views/billprint/index.jsx                                                    |    3 
 src/views/menudesign/index.scss                                                  |    2 
 src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx |    2 
 src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx             |   90 +++++++++++++-----
 src/tabviews/zshare/actionList/excelInbutton/index.jsx                           |   40 +------
 11 files changed, 158 insertions(+), 119 deletions(-)

diff --git a/src/tabviews/custom/components/share/tabtransfer/index.jsx b/src/tabviews/custom/components/share/tabtransfer/index.jsx
index a4f5005..2523935 100644
--- a/src/tabviews/custom/components/share/tabtransfer/index.jsx
+++ b/src/tabviews/custom/components/share/tabtransfer/index.jsx
@@ -168,6 +168,10 @@
         MKEmitter.emit('transferSyncData', tabId)
 
         if (!result.message) return
+
+        if (/灏嗘埅鏂瓧绗︿覆鎴栦簩杩涘埗鏁版嵁/ig.test(result.message)) {
+          result.message = result.message + '璇锋鏌ュ瓧娈甸泦'
+        }
         if (result.ErrCode === 'N') {
           Modal.error({
             title: result.message,
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index aa98810..d41d649 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -1338,6 +1338,10 @@
         MKEmitter.emit('transferSyncData', MenuID)
 
         if (!result.message) return
+
+        if (/灏嗘埅鏂瓧绗︿覆鎴栦簩杩涘埗鏁版嵁/ig.test(result.message)) {
+          result.message = result.message + '璇锋鏌ュ瓧娈甸泦'
+        }
         if (result.ErrCode === 'N') {
           Modal.error({
             title: result.message,
diff --git a/src/tabviews/custom/popview/index.jsx b/src/tabviews/custom/popview/index.jsx
index 403cace..2e3bdff 100644
--- a/src/tabviews/custom/popview/index.jsx
+++ b/src/tabviews/custom/popview/index.jsx
@@ -920,6 +920,10 @@
         MKEmitter.emit('transferSyncData', Tab.uuid)
 
         if (!result.message) return
+
+        if (/灏嗘埅鏂瓧绗︿覆鎴栦簩杩涘埗鏁版嵁/ig.test(result.message)) {
+          result.message = result.message + '璇锋鏌ュ瓧娈甸泦'
+        }
         if (result.ErrCode === 'N') {
           Modal.error({
             title: result.message,
diff --git a/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx b/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx
index ee748ae..80e3562 100644
--- a/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx
+++ b/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx
@@ -1,6 +1,5 @@
 import React, { Component } from 'react'
 import PropTypes from 'prop-types'
-import { notification } from 'antd'
 import * as XLSX from 'sheetjs-style'
 import Utils from '@/utils/utils.js'
 import './index.scss'
@@ -27,10 +26,6 @@
   onImportExcel = file => {
     const { btn } = this.props
 
-    let btnColumns = btn.verify.columns.filter(option => option.import !== 'init')
-    let columns = btnColumns.map(option => option.Column)
-    let range = btn.verify.range || 0
-
     // excel鏁版嵁澶勭悊
     const { files } = file.target
     const fileReader = new FileReader()
@@ -42,50 +37,64 @@
         // 浠ヤ簩杩涘埗娴佹柟寮忚鍙栧緱鍒版暣浠絜xcel琛ㄦ牸瀵硅薄
         const workbook = XLSX.read(result, { type: 'binary' })
 
-        let errors = null
-        let sheetName = btn.verify.sheet
-        let errDetail = ''
-
-        if (sheetName === 'Sheet1' && Object.keys(workbook.Sheets).length === 1) {
-          sheetName = Object.keys(workbook.Sheets)[0]
-        }
-
-        if (!workbook.Sheets.hasOwnProperty(sheetName)) {
-          errors = 'notexit'
-        } else if (range === 1) {
-          let header = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {header: columns})[0]
-
-          if (!header) {
-            errors = 'empty'
-          } else {
-            let iserror = false
-            btnColumns.forEach(op => {
-              if (iserror) return
-
-              let _name = typeof(header[op.Column]) === 'string' ? header[op.Column].replace(/(^\s*|\s*$)/g, '') : header[op.Column]
-              let _text = op.Text ? op.Text.replace(/(^\s*|\s*$)/g, '') : op.Text
-
-              if (!_name) {
-                iserror = true
-                errors = 'headerError'
-                errDetail = `Excel涓笉瀛樺湪锛�${_text}锛夊垪锛乣
-              } else if (_name !== _text) {
-                iserror = true
-                errors = 'headerError'
-                errDetail = `Excel涓紙${_name}锛変笌鎸夐挳鍒椾俊鎭紙${_text}锛変笉涓�鑷达紒`
-              }
-            })
+        if (btn.verify.excelHandle === 'true') {
+          // eslint-disable-next-line
+          let func = new Function('XLSX', 'workbook', 'btn', 'callback', btn.verify.excel_func)
+          func(XLSX, workbook, btn.verify, (data, error) => {
+            if (!error && (!data || data.length === 0)) {
+              error = '鏈幏鍙栧埌Excel鏁版嵁锛�'
+            }
+            this.props.returndata(data, error)
+          })
+        } else {
+          let btnColumns = btn.verify.columns.filter(option => option.import !== 'init')
+          let columns = btnColumns.map(option => option.Column)
+          let range = btn.verify.range || 0
+  
+          let error = null
+          let sheetName = btn.verify.sheet
+  
+          if (sheetName === 'Sheet1' && Object.keys(workbook.Sheets).length === 1) {
+            sheetName = Object.keys(workbook.Sheets)[0]
           }
+  
+          if (!workbook.Sheets.hasOwnProperty(sheetName)) {
+            error = '宸ヤ綔琛ㄣ��' + sheetName + '銆嬩笉瀛樺湪锛�'
+          } else if (range === 1) {
+            let header = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {header: columns})[0]
+  
+            if (!header) {
+              error = '宸ヤ綔琛ㄣ��' + sheetName + '銆嬩负绌猴紒'
+            } else {
+              btnColumns.forEach(op => {
+                if (error) return
+  
+                let _name = typeof(header[op.Column]) === 'string' ? header[op.Column].replace(/(^\s*|\s*$)/g, '') : header[op.Column]
+                let _text = op.Text ? op.Text.replace(/(^\s*|\s*$)/g, '') : op.Text
+  
+                if (!_name) {
+                  error = `宸ヤ綔琛ㄣ��${sheetName}銆嬭〃澶撮敊璇紝Excel涓笉瀛樺湪锛�${_text}锛夊垪锛乣
+                } else if (_name !== _text) {
+                  error = `宸ヤ綔琛ㄣ��${sheetName}銆嬭〃澶撮敊璇紝Excel涓紙${_name}锛変笌鎸夐挳鍒椾俊鎭紙${_text}锛変笉涓�鑷达紒`
+                }
+              })
+            }
+          }
+  
+          let data = []
+  
+          if (!error) {
+            data = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {header: columns, range: (range)})
+  
+            if (!data || data.length === 0) {
+              error = '鏈幏鍙栧埌宸ヤ綔琛ㄣ��' + sheetName + '銆嬫暟鎹紒'
+            }
+          }
+  
+          // 鏈�缁堣幏鍙栧埌骞朵笖鏍煎紡鍖栧悗鐨� json 鏁版嵁
+          this.props.returndata(data, error)
         }
 
-        let data = []
-
-        if (!errors) {
-          data = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {header: columns, range: (range)})
-        }
-
-        // 鏈�缁堣幏鍙栧埌骞朵笖鏍煎紡鍖栧悗鐨� json 鏁版嵁
-        this.props.returndata(data, errors, sheetName, errDetail)
         this.setState({
           excelId: '',
         }, () => {
@@ -101,13 +110,8 @@
             excelId: Utils.getuuid()
           })
         })
-        notification.warning({
-          top: 92,
-          message: '鏂囦欢瑙f瀽閿欒锛�',
-          duration: 5
-        })
         // 閿欒浼犻��
-        this.props.returndata([], 'other')
+        this.props.returndata([], '鏂囦欢瑙f瀽閿欒锛�')
       }
     }
 
diff --git a/src/tabviews/zshare/actionList/excelInbutton/index.jsx b/src/tabviews/zshare/actionList/excelInbutton/index.jsx
index b4ac4ee..bfc7d78 100644
--- a/src/tabviews/zshare/actionList/excelInbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/excelInbutton/index.jsx
@@ -276,43 +276,21 @@
   /**
    * @description Excel 瀵煎叆
    */
-  getexceldata = (data, errors, sheetName, errDetail) => {
+  getexceldata = (data, error) => {
     const { btn, BID } = this.props
 
-    if (errors) {
-      if (errors === 'notexit') {
-        notification.warning({
-          top: 92,
-          message: '宸ヤ綔琛ㄣ��' + sheetName + '銆嬩笉瀛樺湪锛�',
-          duration: 5
-        })
-      } else if (errors === 'empty') {
-        notification.warning({
-          top: 92,
-          message: '宸ヤ綔琛ㄣ��' + sheetName + '銆嬩负绌猴紒',
-          duration: 5
-        })
-      } else if (errors === 'headerError') {
-        notification.warning({
-          top: 92,
-          message: `宸ヤ綔琛ㄣ��${sheetName}銆嬭〃澶撮敊璇紝${errDetail}`,
-          duration: 5
-        })
-      }
+    if (error) {
+      notification.warning({
+        top: 92,
+        message: error,
+        duration: 5
+      })
 
       this.setState({ loading: false })
       return
     }
-
-    if (!data || data.length === 0) {
-      notification.warning({
-        top: 92,
-        message: '鏈幏鍙栧埌宸ヤ綔琛ㄣ��' + sheetName + '銆嬫暟鎹紒',
-        duration: 5
-      })
-      this.setState({ loading: false })
-      return
-    } else if (data.length * btn.verify.columns.length > 30000) {
+    
+    if (data.length * btn.verify.columns.length > 30000) {
       notification.warning({
         top: 92,
         message: '褰撳墠瀵煎叆鏁版嵁閲忚繃澶э紝濡傞亣閿欒鎻愮ず锛岃鍒嗘壒瀵煎叆锛�',
diff --git a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx
index af9100d..59c62e1 100644
--- a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx
@@ -168,7 +168,7 @@
 
         Api.genericInterface(param).then(result => {
           if (result.status) {
-            this.exportExcel(result.data, result.ErrCode, result.message)
+            this.exportExcel(result.data, result.ErrCode, result.message, viewParam.search)
           } else {
             this.execError(result)
           }
@@ -187,7 +187,7 @@
 
         Api.genericInterface(param).then(result => {
           if (result.status) {
-            this.exportExcel(result.data, result.ErrCode, result.message)
+            this.exportExcel(result.data, result.ErrCode, result.message, viewParam.search)
           } else {
             this.execError(result)
           }
@@ -226,7 +226,7 @@
 
         Api.genericInterface(param).then(result => {
           if (result.status) {
-            this.exportExcel(result.data, result.ErrCode, result.message)
+            this.exportExcel(result.data, result.ErrCode, result.message, viewParam.search)
           } else {
             this.execError(result)
           }
@@ -273,7 +273,7 @@
       
             Api.genericInterface(res).then(result => {
               if (result.status) {
-                this.exportExcel(result.data, result.ErrCode, result.message)
+                this.exportExcel(result.data, result.ErrCode, result.message, viewParam.search)
               } else {
                 this.execError(result)
               }
@@ -353,7 +353,7 @@
               this.getExcelOutDoubleData(viewParam, pageIndex, pageSize, data)
             } else {
               data = data.concat(result.data)
-              this.exportExcel(data, result.ErrCode, result.message)
+              this.exportExcel(data, result.ErrCode, result.message, viewParam.search)
             }
           } else {
             this.execError(result)
@@ -429,7 +429,7 @@
           this.getExcelOutData(viewParam, pageIndex, pageSize, data)
         } else {
           data = data.concat(result.data)
-          this.exportExcel(data, result.ErrCode, result.message)
+          this.exportExcel(data, result.ErrCode, result.message, viewParam.search)
         }
       } else {
         this.execError(result)
@@ -443,7 +443,7 @@
   /**
    * @description Excel 鐢熸垚
    */
-  exportExcel = (data, ErrCode, msg) => {
+  exportExcel = (data, ErrCode, msg, search) => {
     const { btn } = this.props
     
     let imgCol = false
@@ -486,8 +486,8 @@
     try {
       if (btn.verify.excelHandle === 'true') {
         // eslint-disable-next-line
-        let func = new Function('XLSX', 'data', 'columns', 'callback', btn.verify.excel_func)
-        func(XLSX, data, columns, (res) => {
+        let func = new Function('XLSX', 'data', 'columns', 'searches', 'callback', btn.verify.excel_func)
+        func(XLSX, data, columns, search, (res) => {
           res = res || {ErrCode: ErrCode || 'S', message: msg || '瀵煎嚭鎴愬姛锛�'}
           this.execSuccess(res)
         })
diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
index 5dd577b..a8733e8 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
@@ -19,7 +19,9 @@
 const { confirm } = Modal
 const { Search } = Input
 const { Paragraph } = Typography
+
 const EditTable = asyncComponent(() => import('@/templates/zshare/editTable'))
+const CodeMirror = asyncComponent(() => import('@/templates/zshare/codemirror'))
 const FullScripts = asyncComponent(() => import('@/templates/zshare/verifycard/fullScripts'))
 
 class VerifyCard extends Component {
@@ -307,17 +309,17 @@
       _verify.range = 1
     }
 
+    _verify.excelHandle = _verify.excelHandle || 'false'
+    _verify.default = _verify.default || 'true'
+    _verify.sheet = _verify.sheet || 'Sheet1'
+    _verify.range = _verify.range || 0
+    _verify.columns = _columns
+    _verify.scripts = _verify.scripts || []
+    _verify.uniques = _verify.uniques || []
+
     this.setState({
       searchKey: '',
-      verify: {
-        ..._verify,
-        default: _verify.default || 'true',
-        sheet: _verify.sheet || 'Sheet1',
-        range: _verify.range || 0,
-        columns: _columns,
-        scripts: _verify.scripts || [],
-        uniques: _verify.uniques || []
-      }
+      verify: _verify
     }, () => {
       this.resetUniqueColumns()
     })
@@ -712,6 +714,10 @@
         if (!err) {
           let _verify = {...verify, ...values}
 
+          if (_verify.excelHandle !== 'true') {
+            delete _verify.excel_func
+          }
+
           let cols = _verify.columns.map(col => col.Column.toLowerCase())
           cols = Array.from(new Set(cols))
 
@@ -771,22 +777,27 @@
             resolve(_verify)
           }
         } else {
-          notification.warning({
-            top: 92,
-            message: '璇疯缃瓻xcel琛ㄥ悕!',
-            duration: 5
-          })
+          this.setState({activeKey: 'basemsg'})
         }
       })
     })
   }
 
-  onOptionChange = (e, key) => {
+  onOptionChange = (e) => {
     const { verify } = this.state
     let value = e.target.value
 
     this.setState({
       verify: {...verify, default: value}
+    })
+  }
+
+  onHandleChange = (e) => {
+    const { verify } = this.state
+    let value = e.target.value
+
+    this.setState({
+      verify: {...verify, excelHandle: value}
     })
   }
 
@@ -867,7 +878,44 @@
           <TabPane tab="鍩虹楠岃瘉" key="basemsg">
             <Form {...formItemLayout}>
               <Row gutter={24}>
+                {card.intertype === 'system' ? <Col span={8}>
+                  <Form.Item label={'榛樿sql'}>
+                    <Radio.Group value={verify.default} onChange={this.onOptionChange}>
+                      <Radio value="true">鎵ц</Radio>
+                      <Radio value="false">涓嶆墽琛�</Radio>
+                    </Radio.Group>
+                  </Form.Item>
+                </Col> : null}
                 <Col span={8}>
+                  <Form.Item label={
+                    <Tooltip placement="topRight" title="鑷畾涔夐獙璇丒xcel鏍煎紡锛屽彲鐢ㄥ弬鏁颁负 XLSX銆亀orkbook銆乥tn銆乧allback銆�">
+                      <QuestionCircleOutlined className="mk-form-tip" />
+                      瀵煎叆鏍煎紡
+                    </Tooltip>
+                  }>
+                    {getFieldDecorator('excelHandle', {
+                      initialValue: verify.excelHandle
+                    })(
+                    <Radio.Group onChange={this.onHandleChange}>
+                      <Radio value="false">榛樿</Radio>
+                      <Radio value="true">鑷畾涔�</Radio>
+                    </Radio.Group>)}
+                  </Form.Item>
+                </Col>
+                {verify.excelHandle === 'true' ? <Col span={24} style={{paddingLeft: '30px'}}>
+                  <Form.Item wrapperCol={ {xs: { span: 24 }, sm: { span: 24 }} } label="">
+                    {getFieldDecorator('excel_func', {
+                      initialValue: verify.excel_func || '',
+                      rules: [
+                        {
+                          required: true,
+                          message: '璇峰~鍐欒嚜瀹氫箟閫昏緫!'
+                        }
+                      ]
+                    })(<CodeMirror mode="text/javascript" theme="cobalt" />)}
+                  </Form.Item>
+                </Col> : null}
+                {verify.excelHandle !== 'true' ? <Col span={8}>
                   <Form.Item label={
                     <Tooltip placement="bottomLeft" title="瀵煎叆鏃跺伐浣滆〃鍚嶄笌excel涓繀椤讳竴鑷达紝娉細宸ヤ綔琛ㄥ悕涓篠heet1涓攅xcel涓粎鏈変竴涓伐浣滆〃鏃朵笉杩涜琛ㄥ悕楠岃瘉銆�">
                       <QuestionCircleOutlined className="mk-form-tip" />
@@ -884,8 +932,8 @@
                       ]
                     })(<Input placeholder="" autoComplete="off" />)}
                   </Form.Item>
-                </Col>
-                <Col span={8}>
+                </Col> : null}
+                {verify.excelHandle !== 'true' ? <Col span={8}>
                   <Form.Item label={
                     <Tooltip placement="bottomLeft" title="蹇界暐棣栬鏃讹紝浼氭牎楠宔xcel涓〃澶村悕绉颁笌excel鍒楄缃槸鍚︿竴鑷淬��">
                       <QuestionCircleOutlined className="mk-form-tip" />
@@ -895,14 +943,6 @@
                     {getFieldDecorator('range', {
                       initialValue: verify.range || 0
                     })(<InputNumber min={0} max={100} precision={0} />)}
-                  </Form.Item>
-                </Col>
-                {card.intertype === 'system' ? <Col span={8}>
-                  <Form.Item label={'榛樿sql'}>
-                    <Radio.Group value={verify.default} onChange={this.onOptionChange}>
-                      <Radio value="true">鎵ц</Radio>
-                      <Radio value="false">涓嶆墽琛�</Radio>
-                    </Radio.Group>
                   </Form.Item>
                 </Col> : null}
               </Row>
diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
index 3460133..1e04573 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
@@ -219,7 +219,7 @@
             </Col> : null}
             {btnType !== 'print' ? <Col span={8}>
               <Form.Item label={
-                <Tooltip placement="topRight" title="鑷畾涔夌敓鎴怑xcel锛屽彲鐢ㄥ弬鏁颁负 XLSX銆乨ata銆乧olumns銆乧allback銆�">
+                <Tooltip placement="topRight" title="鑷畾涔夌敓鎴怑xcel锛屽彲鐢ㄥ弬鏁颁负 XLSX銆乨ata銆乧olumns銆乻earches銆乧allback銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
                   瀵煎嚭鏍煎紡
                 </Tooltip>
diff --git a/src/views/billprint/index.jsx b/src/views/billprint/index.jsx
index 453d8a0..85f4b7e 100644
--- a/src/views/billprint/index.jsx
+++ b/src/views/billprint/index.jsx
@@ -909,6 +909,9 @@
       return new Promise(resolve => {
         Api.genericInterface(item).then(res => {
           if (!res.status) {
+            if (item.func === 'sPC_Get_structured_data' && /灏嗘埅鏂瓧绗︿覆鎴栦簩杩涘埗鏁版嵁/ig.test(res.message)) {
+              res.message = res.message + '璇锋鏌ュ瓧娈甸泦'
+            }
             notification.warning({
               top: 92,
               message: res.message,
diff --git a/src/views/menudesign/index.scss b/src/views/menudesign/index.scss
index 3c97cf2..74d1cf2 100644
--- a/src/views/menudesign/index.scss
+++ b/src/views/menudesign/index.scss
@@ -237,7 +237,7 @@
   table {
     border-radius: 0!important;
     .ant-table-column-sorter {
-      display: none!important;
+      opacity: 0!important;
     }
   }
   .ant-table-thead > tr > th {
diff --git a/src/views/systemfunc/index.jsx b/src/views/systemfunc/index.jsx
index 63bee5f..9c33163 100644
--- a/src/views/systemfunc/index.jsx
+++ b/src/views/systemfunc/index.jsx
@@ -11,6 +11,7 @@
 // import './index.scss'
 
 const Tabview = asyncComponent(() => import('@/components/tabview'))
+const ImgScale = asyncComponent(() => import('@/components/imgScale'))
 
 class MkHS extends Component {
   UNSAFE_componentWillMount() {
@@ -63,6 +64,7 @@
           <Tabview key="tabview"/>
           <Header key="header"/>
         </ConfigProvider>
+        <ImgScale />
       </div>
     )
   }

--
Gitblit v1.8.0