From 37e28da53f6d4d7d8abe7626ba28ba7dbe16e7bb Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 08 四月 2024 15:36:01 +0800
Subject: [PATCH] 2024-04-08

---
 src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx |  170 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 119 insertions(+), 51 deletions(-)

diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
index c4df36d..f8240c3 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
@@ -1,9 +1,9 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Input, Radio, Tooltip, notification } from 'antd'
+import { Form, Row, Col, Input, Radio, Tooltip, notification, InputNumber } from 'antd'
 import { QuestionCircleOutlined } from '@ant-design/icons'
 
-import Utils from '@/utils/utils.js'
+import { checkSQL } from '@/utils/utils-custom.js'
 import asyncComponent from '@/utils/asyncComponent'
 import './index.scss'
 
@@ -17,7 +17,8 @@
 
   state = {
     dataType: '',
-    defaultSql: 'true'
+    defaultSql: 'true',
+    excelHandle: 'false'
   }
 
   UNSAFE_componentWillMount () {
@@ -25,7 +26,8 @@
 
     this.setState({
       dataType: btnType === 'print' ? 'custom' : setting.dataType,
-      defaultSql: setting.defaultSql || 'true'
+      defaultSql: setting.defaultSql || 'true',
+      excelHandle: setting.excelHandle || 'false'
     })
   }
 
@@ -44,48 +46,9 @@
             reject()
             return
           } else if (values.defaultSql === 'true' && values.dataresource) {
-            let _quot = values.dataresource.match(/'{1}/g)
-            let _lparen = values.dataresource.match(/\({1}/g)
-            let _rparen = values.dataresource.match(/\){1}/g)
+            let pass = checkSQL(values.dataresource)
 
-            _quot = _quot ? _quot.length : 0
-            _lparen = _lparen ? _lparen.length : 0
-            _rparen = _rparen ? _rparen.length : 0
-
-            if (_quot % 2 !== 0) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑\'蹇呴』鎴愬鍑虹幇',
-                duration: 5
-              })
-              reject()
-              return
-            } else if (_lparen !== _rparen) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑()蹇呴』鎴愬鍑虹幇',
-                duration: 5
-              })
-              reject()
-              return
-            } else if (/--/ig.test(values.dataresource)) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑锛屼笉鍙嚭鐜板瓧绗� -- 锛屾敞閲婅鐢� /*鍐呭*/',
-                duration: 5
-              })
-              reject()
-              return
-            }
-
-            let error = Utils.verifySql(values.dataresource)
-
-            if (error) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑涓嶅彲浣跨敤' + error,
-                duration: 5
-              })
+            if (!pass) {
               reject()
               return
             }
@@ -100,14 +63,24 @@
   }
 
   updateDataType = (e) => {
-    this.setState({dataType: e.target.value})
     this.props.updateDataType(e.target.value)
+
+    if (e.target.value === 'custom') {
+      setTimeout(() => {
+        this.setState({
+          dataType: e.target.value,
+          defaultSql: this.props.setting.defaultSql || 'true'
+        })
+      }, 10)
+    } else {
+      this.setState({dataType: e.target.value})
+    }
   }
 
   render() {
     const { setting, btnType } = this.props
     const { getFieldDecorator } = this.props.form
-    const { dataType, defaultSql } = this.state
+    const { dataType, defaultSql, excelHandle } = this.state
 
     const formItemLayout = {
       labelCol: {
@@ -198,15 +171,25 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
-            {dataType === 'custom' && defaultSql === 'true' ? <Col className="short-label" span={8}>
-              <Form.Item label="涓婚敭">
+            {btnType !== 'print' && dataType === 'custom' && defaultSql === 'true' ? <Col className="short-label" span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="鍙嚜瀹氫箟涓婚敭锛岀┖鏃堕粯璁や负鏁版嵁婧愪富閿�傛敞锛氶�夎瀵煎嚭鏃朵娇鐢ㄣ��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  涓婚敭
+                </Tooltip>
+              }>
                 {getFieldDecorator('primaryKey', {
-                  initialValue: setting.primaryKey || 'ID',
+                  initialValue: setting.primaryKey || '',
                 })(<Input placeholder={''} autoComplete="off" />)}
               </Form.Item>
             </Col> : null}
             {dataType === 'custom' && defaultSql === 'true' ? <Col className="short-label" span={8}>
-              <Form.Item label="鎺掑簭鏂瑰紡">
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="濡傛灉鍦ㄨ嚜瀹氫箟鑴氭湰涓娇鐢ㄤ簡@pageSize@鎴朄orderBy@锛岃鍦ㄦ暟鎹簮涓崟鐙啓鎺掑簭璇彞銆�">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  鎺掑簭鏂瑰紡
+                </Tooltip>
+              }>
                 {getFieldDecorator('order', {
                   initialValue: setting.order || '',
                   rules: [
@@ -234,6 +217,91 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
+            {btnType !== 'print' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topRight" title="鑷畾涔夌敓鎴怑xcel锛屽彲鐢ㄥ弬鏁颁负 XLSX銆乨ata銆乧olumns銆乻earches銆乧allback銆�">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  瀵煎嚭鏍煎紡
+                </Tooltip>
+              }>
+                {getFieldDecorator('excelHandle', {
+                  initialValue: excelHandle
+                })(
+                <Radio.Group onChange={(e) => this.setState({excelHandle: e.target.value})}>
+                  <Radio value="false">榛樿</Radio>
+                  <Radio value="true">鑷畾涔�</Radio>
+                </Radio.Group>)}
+              </Form.Item>
+            </Col> : null}
+            {btnType !== 'print' && excelHandle === 'true' ? <Col span={24} style={{paddingLeft: '30px'}}>
+              <Form.Item wrapperCol={ {xs: { span: 24 }, sm: { span: 24 }} } label="">
+                {getFieldDecorator('excel_func', {
+                  initialValue: setting.excel_func || '',
+                  rules: [
+                    {
+                      required: true,
+                      message: '璇峰~鍐欒嚜瀹氫箟閫昏緫!'
+                    }
+                  ]
+                })(<CodeMirror mode="text/javascript" theme="cobalt" />)}
+              </Form.Item>
+            </Col> : null}
+            {btnType !== 'print' && excelHandle !== 'true' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="瀵煎嚭excel涓伐浣滆〃鍚嶇О锛岄粯璁や负Sheet1銆�">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  宸ヤ綔琛�
+                </Tooltip>
+              }>
+                {getFieldDecorator('sheet', {
+                  initialValue: setting.sheet || ''
+                })(<Input placeholder="" autoComplete="off" />)}
+              </Form.Item>
+            </Col> : null}
+            {btnType !== 'print' && excelHandle !== 'true' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="瀵煎嚭excel涓殑琛岄珮銆�">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  琛岄珮
+                </Tooltip>
+              }>
+                {getFieldDecorator('rowHeight', {
+                  initialValue: setting.rowHeight || ''
+                })(<InputNumber min={10} max={200} precision={0} />)}
+              </Form.Item>
+            </Col> : null}
+            {btnType !== 'print' && excelHandle !== 'true' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="璇峰皢闇�瑕佸悎骞剁殑琛ㄥご浣跨敤涓í绾垮垎闅旓紙濡傦細鍟嗗搧-鏁伴噺銆佸晢鍝�-鍗曚环锛夛紝鍓嶉儴鍒嗗皢浣滀负涓昏〃澶达紝鍚庨儴鍒嗗皢浣滀负瀛愯〃澶淬��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  琛ㄥご鍚堝苟
+                </Tooltip>
+              }>
+                {getFieldDecorator('merge', {
+                  initialValue: setting.merge || 'false'
+                })(
+                <Radio.Group>
+                  <Radio value="false">鍚�</Radio>
+                  <Radio value="true">鏄�</Radio>
+                </Radio.Group>)}
+              </Form.Item>
+            </Col> : null}
+            {/* {btnType !== 'print' && excelHandle !== 'true' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="Excel鍐呭鍖烘槸鍚﹁嚜鍔ㄦ崲琛屻��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  鑷姩鎹㈣
+                </Tooltip>
+              }>
+                {getFieldDecorator('wrapText', {
+                  initialValue: setting.wrapText || 'false'
+                })(
+                <Radio.Group>
+                  <Radio value="false">鍚�</Radio>
+                  <Radio value="true">鏄�</Radio>
+                </Radio.Group>)}
+              </Form.Item>
+            </Col> : null} */}
           </Row>
         </Form>
       </div>

--
Gitblit v1.8.0