From aaaf56d7ca060f7c681d6b8a67aac46aa89a4dbc Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 09 五月 2020 14:50:39 +0800
Subject: [PATCH] 2020-05-09

---
 src/templates/sharecomponent/settingcomponent/settingform/customscript/index.jsx |  107 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 80 insertions(+), 27 deletions(-)

diff --git a/src/templates/sharecomponent/settingcomponent/settingform/customscript/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/customscript/index.jsx
index ad8097e..7d5847d 100644
--- a/src/templates/sharecomponent/settingcomponent/settingform/customscript/index.jsx
+++ b/src/templates/sharecomponent/settingcomponent/settingform/customscript/index.jsx
@@ -1,6 +1,6 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Input, Button, notification, Modal, Menu, Icon, Radio, Dropdown } from 'antd'
+import { Form, Row, Col, Input, Button, notification, Modal, Select, Radio } from 'antd'
 import moment from 'moment'
 
 import Utils from '@/utils/utils.js'
@@ -12,7 +12,8 @@
 class CustomForm extends Component {
   static propTpyes = {
     dict: PropTypes.object,         // 瀛楀吀椤�
-    tableName: PropTypes.string,    // 琛ㄥ悕
+    setting: PropTypes.object,      // 璁剧疆
+    searches: PropTypes.array,      // 鎼滅储鏉′欢
     systemScripts: PropTypes.array, // 绯荤粺鑴氭湰
     customScripts: PropTypes.array, // 鑷畾涔夎剼鏈�
     scriptsChange: PropTypes.func   // 琛ㄥ崟
@@ -20,7 +21,27 @@
 
   state = {
     editItem: null,
-    loading: false
+    loading: false,
+    usefulFields: ''
+  }
+
+  UNSAFE_componentWillMount() {
+    const { searches } = this.props
+    let _usefulFields = searches.map(item => {
+      if (item.type === 'group') {
+        if (item.transfer === 'true') {
+          return item.field + ', ' + item.datefield
+        } else {
+          return item.datefield
+        }
+      } else {
+        return item.field
+      }
+    })
+
+    this.setState({
+      usefulFields: _usefulFields.join(', ')
+    })
   }
 
   edit = (record) => {
@@ -35,6 +56,8 @@
   }
 
   handleConfirm = () => {
+    const { searches, setting } = this.props
+
     // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭�
     this.props.form.validateFieldsAndScroll((err, values) => {
       if (!err) {
@@ -101,6 +124,34 @@
           LText: _initsql + values.sql + tail
         }
 
+        let allSearch = Utils.initMainSearch(searches)
+        allSearch = Utils.getAllSearchOptions(allSearch)
+
+        let regoptions = allSearch.map(item => {
+          return {
+            reg: new RegExp('@' + item.key + '@', 'ig'),
+            value: `'${item.value}'`
+          }
+        })
+
+        regoptions.push({
+          reg: new RegExp('@orderBy@', 'ig'),
+          value: setting.order
+        })
+        if (setting.laypage !== 'false') {
+          regoptions.push({
+            reg: new RegExp('@pageSize@', 'ig'),
+            value: 10
+          }, {
+            reg: new RegExp('@pageIndex@', 'ig'),
+            value: 1
+          })
+        }
+  
+        regoptions.forEach(item => {
+          param.LText = param.LText.replace(item.reg, item.value)
+        })
+
         param.LText = Utils.formatOptions(param.LText)
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
         param.secretkey = Utils.encrypt(param.LText, param.timestamp)
@@ -129,11 +180,7 @@
     })
   }
 
-  selectScript = (e) => {
-    const { systemScripts } = this.props
-
-    let option = systemScripts[+e.key]
-
+  selectScript = (value, option) => {
     let _sql = this.props.form.getFieldValue('sql')
     if (_sql) {
       _sql = _sql + ` 
@@ -142,10 +189,10 @@
     }
 
     _sql = _sql.replace(/\s{6}$/, '')
-    _sql = _sql + `/*${option.name}*/
+    _sql = _sql + `/*${option.props.children}*/
     `
     _sql = _sql.replace(/\s{4}$/, '')
-    _sql = _sql + option.value
+    _sql = _sql + value
 
     this.props.form.setFieldsValue({
       sql: _sql
@@ -153,8 +200,9 @@
   }
 
   render() {
-    const { systemScripts, tableName } = this.props
+    const { systemScripts, setting } = this.props
     const { getFieldDecorator } = this.props.form
+    const { usefulFields } = this.state
     const formItemLayout = {
       labelCol: {
         xs: { span: 24 },
@@ -169,9 +217,19 @@
     return (
       <Form {...formItemLayout} className="modal-menu-setting-script">
         <Row gutter={24}>
+          {setting.tableName ? <Col span={8}>
+            <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}>
+              {setting.tableName}
+            </Form.Item>
+          </Col> : null}
+          <Col span={16}>
+            <Form.Item label={'鎶ラ敊瀛楁'} style={{margin: 0}}>
+              errorCode, errmsg
+            </Form.Item>
+          </Col>
           <Col span={24} className="sqlfield">
             <Form.Item label={'鍙敤瀛楁'}>
-              id, bid, loginuid, sessionuid, userid, appkey
+              id, bid, loginuid, sessionuid, userid, appkey{usefulFields ? ', ' + usefulFields : ''}
             </Form.Item>
           </Col>
           <Col span={8} style={{whiteSpace: 'nowrap'}}>
@@ -186,28 +244,23 @@
               )}
             </Form.Item>
           </Col>
-          <Col span={4} style={{lineHeight: '40px', textAlign: 'center'}}>
-            <Dropdown trigger={['click']} overlayClassName="mk-normal-dropdown" overlay={
-              <Menu onClick={this.selectScript}>
+          <Col span={10}>
+            <Form.Item label={'蹇嵎娣诲姞'} style={{marginBottom: 0}}>
+              <Select
+                showSearch
+                filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
+                onChange={this.selectScript}
+              >
                 {systemScripts.map((option, i) =>
-                  <Menu.Item key={i}>{option.name}</Menu.Item>
+                  <Select.Option style={{whiteSpace: 'normal'}} key={i} value={option.value}>{option.name}</Select.Option>
                 )}
-              </Menu>
-            }>
-              <span style={{color: '#1890ff', display: 'inline-block', cursor: 'pointer'}}>
-                蹇嵎娣诲姞 <Icon type="down" style={{marginRight: '5px'}} />
-              </span>
-            </Dropdown>
+              </Select>
+            </Form.Item>
           </Col>
           <Col span={4} className="add">
             <Button onClick={this.handleConfirm} loading={this.state.loading} className="mk-green" style={{marginBottom: 15, marginLeft: 40}}>
               淇濆瓨
             </Button>
-          </Col>
-          <Col span={8} style={{textAlign: 'right'}}>
-            {tableName ? <span style={{maxWidth: '100%', display: 'inline-block', position: 'relative', top: '20px', whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden'}}>
-              琛ㄥ悕:  {tableName}
-            </span> : null}
           </Col>
           <Col span={24} className="sql">
             <Form.Item label={'sql'}>

--
Gitblit v1.8.0