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 |   60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/src/templates/zshare/pasteform/index.jsx b/src/templates/zshare/pasteform/index.jsx
index e6ef04d..72b17fe 100644
--- a/src/templates/zshare/pasteform/index.jsx
+++ b/src/templates/zshare/pasteform/index.jsx
@@ -7,7 +7,7 @@
 
 class MainSearch extends Component {
   static propTpyes = {
-    dict: PropTypes.object     // 瀛楀吀椤�
+    inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢
   }
 
   componentDidMount () {
@@ -16,7 +16,7 @@
       if (_form && _form.select) {
         _form.select()
       }
-    } catch {
+    } catch (e) {
       console.warn('Form focusing error锛�')
     }
   }
@@ -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: 10
-            })
-            _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,16 +101,16 @@
       <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: [
                   {
                     required: true,
-                    message: this.props.dict['form.required.input'] + '閰嶇疆淇℃伅!'
+                    message: '璇疯緭鍏ラ厤缃俊鎭�!'
                   }
                 ]
-              })(<TextArea autosize={{ minRows: 4, maxRows: 8 }} />)}
+              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.enterPress}/>)}
             </Form.Item>
           </Col>
         </Row>

--
Gitblit v1.8.0