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 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 56 insertions(+), 52 deletions(-)

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瀽閿欒锛�')
       }
     }
 

--
Gitblit v1.8.0