From f3d4db769ba9b51b799d981511a710fd443d0e08 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 21 四月 2025 12:18:03 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/templates/zshare/pasteform/index.jsx |   54 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/src/templates/zshare/pasteform/index.jsx b/src/templates/zshare/pasteform/index.jsx
index b6c1af9..72b17fe 100644
--- a/src/templates/zshare/pasteform/index.jsx
+++ b/src/templates/zshare/pasteform/index.jsx
@@ -26,17 +26,45 @@
     return new Promise((resolve, reject) => {
       this.props.form.validateFieldsAndScroll((err, values) => {
         if (!err) {
-          let _config = values.config
+          let _config = values.config.replace(/(\n|\s)+/g, '')
 
+          if (!_config) {
+            notification.warning({
+              top: 92,
+              message: '璇疯緭鍏ラ厤缃俊鎭�',
+              duration: 5
+            })
+            reject()
+            return
+          }
           try {
             _config = JSON.parse(window.decodeURIComponent(window.atob(_config)))
           } catch (e) {
-            notification.warning({
-              top: 92,
-              message: '瑙f瀽閿欒',
-              duration: 5
-            })
-            _config = ''
+            // 閫氳繃sql璇彞娣诲姞瀛楁闆�
+            if (/[a-zA-Z0-9_]+\s+(nvarchar\(\d+\)|Decimal\(18,\d+\)|Int|datetime|date)/ig.test(values.config)) {
+              _config = {
+                key: 'datasourcefield',
+                type: 'array',
+                data: []
+              }
+
+              let list = values.config.match(/[a-zA-Z0-9_]+\s+(nvarchar\(\d+\)|Decimal\(18,\d+\)|Int|datetime|date)/ig)
+
+              list.forEach(item => {
+                _config.data.unshift({
+                  datatype: item.split(/\s+/)[1],
+                  field: item.split(/\s+/)[0],
+                  label: item.split(/\s+/)[0],
+                })
+              })
+            } else {
+              notification.warning({
+                top: 92,
+                message: '瑙f瀽閿欒',
+                duration: 5
+              })
+              _config = ''
+            }
           }
 
           if (_config) {
@@ -47,6 +75,14 @@
         }
       })
     })
+  }
+
+  enterPress = (e) => {
+    e.stopPropagation()
+
+    setTimeout(() => {
+      this.props.inputSubmit && this.props.inputSubmit()
+    }, 200)
   }
 
   render() {
@@ -65,7 +101,7 @@
       <Form {...formItemLayout} className="config-paste-form">
         <Row gutter={24}>
           <Col span={24}>
-            <Form.Item label="閰嶇疆淇℃伅" className="textarea">
+            <Form.Item label="" className="textarea">
               {getFieldDecorator('config', {
                 initialValue: '',
                 rules: [
@@ -74,7 +110,7 @@
                     message: '璇疯緭鍏ラ厤缃俊鎭�!'
                   }
                 ]
-              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={() => this.props.inputSubmit && this.props.inputSubmit()}/>)}
+              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.enterPress}/>)}
             </Form.Item>
           </Col>
         </Row>

--
Gitblit v1.8.0