From 6ee201b2f734c9e704fb989aca0dabd09890c724 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 23 二月 2024 18:07:18 +0800 Subject: [PATCH] Merge branch 'positec' into dms --- 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