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 |   66 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 22 deletions(-)

diff --git a/src/templates/zshare/pasteform/index.jsx b/src/templates/zshare/pasteform/index.jsx
index 6b5cd34..72b17fe 100644
--- a/src/templates/zshare/pasteform/index.jsx
+++ b/src/templates/zshare/pasteform/index.jsx
@@ -26,31 +26,45 @@
     return new Promise((resolve, reject) => {
       this.props.form.validateFieldsAndScroll((err, values) => {
         if (!err) {
-          let _config = values.config
-          try {
-            _config = JSON.parse(window.decodeURIComponent(window.atob(_config)))
+          let _config = values.config.replace(/(\n|\s)+/g, '')
 
-            if (typeof(_config) === 'object' && _config.$srcId) {
-              let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId')
-              if (srcid && _config.$srcId !== srcid) {
-                notification.warning({
-                  top: 92,
-                  message: '褰撳墠绯荤粺鏃犳潈闄愪娇鐢ㄦ椤归厤缃紒',
-                  duration: 5
-                })
-
-                _config = ''
-              } else {
-                delete _config.$srcId
-              }
-            }
-          } catch (e) {
+          if (!_config) {
             notification.warning({
               top: 92,
-              message: '瑙f瀽閿欒',
+              message: '璇疯緭鍏ラ厤缃俊鎭�',
               duration: 5
             })
-            _config = ''
+            reject()
+            return
+          }
+          try {
+            _config = JSON.parse(window.decodeURIComponent(window.atob(_config)))
+          } catch (e) {
+            // 閫氳繃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) {
@@ -61,6 +75,14 @@
         }
       })
     })
+  }
+
+  enterPress = (e) => {
+    e.stopPropagation()
+
+    setTimeout(() => {
+      this.props.inputSubmit && this.props.inputSubmit()
+    }, 200)
   }
 
   render() {
@@ -79,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: [
@@ -88,7 +110,7 @@
                     message: '璇疯緭鍏ラ厤缃俊鎭�!'
                   }
                 ]
-              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }}/>)}
+              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.enterPress}/>)}
             </Form.Item>
           </Col>
         </Row>

--
Gitblit v1.8.0