From cd42d41344f0f780e0c0ac0a3625aeb78160f9dd Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 19 六月 2020 19:58:52 +0800 Subject: [PATCH] 2020-06-19 --- src/mob/datasource/verifycard/customscript/index.jsx | 142 +++++++++++++++++++++++++++-------------------- 1 files changed, 82 insertions(+), 60 deletions(-) diff --git a/src/mob/datasource/verifycard/customscript/index.jsx b/src/mob/datasource/verifycard/customscript/index.jsx index 7191459..6c9d489 100644 --- a/src/mob/datasource/verifycard/customscript/index.jsx +++ b/src/mob/datasource/verifycard/customscript/index.jsx @@ -1,9 +1,10 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Button, notification, Modal, Tooltip, Icon, Radio, Select } from 'antd' +import { Form, Row, Col, Input, Button, notification, Modal, Select } from 'antd' import moment from 'moment' import Utils from '@/utils/utils.js' +import SettingUtils from '../utils.jsx' import Api from '@/api' import './index.scss' @@ -11,18 +12,47 @@ class CustomForm extends Component { static propTpyes = { + type: PropTypes.string, // 鑿滃崟绫诲瀷 dict: PropTypes.object, // 瀛楀吀椤� - btn: PropTypes.object, // 鎸夐挳淇℃伅 - usefulfields: PropTypes.string, // 鍙敤瀛楁 - initsql: PropTypes.string, // sql鍓嶇紑 + setting: PropTypes.object, // 璁剧疆 + searches: PropTypes.array, // 鎼滅储鏉′欢 + swhere: PropTypes.string, // where鏉′欢 + arr_field: PropTypes.string, // 鍒楀瓧娈� + regoptions: PropTypes.array, // 姝e垯鏇挎崲 systemScripts: PropTypes.array, // 绯荤粺鑴氭湰 - customScripts: PropTypes.array, // 鑷畾涔夎剼鏈� scriptsChange: PropTypes.func // 琛ㄥ崟 } state = { editItem: null, - loading: false + loading: false, + usefulFields: '' + } + + UNSAFE_componentWillMount() { + const { searches } = this.props + + let _usefulFields = [] + searches.forEach(item => { + if (item.type === 'group') { + if (item.transfer === 'true') { + _usefulFields.push(item.field) + } + _usefulFields.push(item.datefield) + _usefulFields.push(item.datefield + '1') + } else if (['dateweek', 'datemonth', 'daterange'].includes(item.type)) { + _usefulFields.push(item.field) + _usefulFields.push(item.field + '1') + } else if (_usefulFields.includes(item.field)) { + _usefulFields.push(item.field + '1') + } else { + _usefulFields.push(item.field) + } + }) + + this.setState({ + usefulFields: _usefulFields.join(', ') + }) } edit = (record) => { @@ -31,12 +61,22 @@ }) this.props.form.setFieldsValue({ - sql: record.sql, - position: record.position || 'back' + sql: record.sql + }) + } + + handleCancel = () => { + this.setState({ + editItem: null + }) + this.props.form.setFieldsValue({ + sql: '' }) } handleConfirm = () => { + const { setting, arr_field, regoptions, swhere } = this.props + // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { @@ -84,27 +124,37 @@ return } - let tail = ` - aaa: - ` - - let _initsql = '' - this.props.customScripts.forEach(script => { - if (this.state.editItem && this.state.editItem.uuid === script.uuid) return - if (script.status === 'false' || script.position !== 'init') return - - _initsql += ` + let _customScript = '' + setting.scripts && setting.scripts.forEach(script => { + if (this.state.editItem && this.state.editItem.uuid === script.uuid) { + _customScript += ` + ${values.sql} + ` + } else if (script.status !== 'false') { + _customScript += ` ${script.sql} ` + } }) + + if (!this.state.editItem) { + _customScript += ` + ${values.sql} + ` + } + + if (_customScript) { + _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000) select @ErrorCode='',@retmsg ='' + ${_customScript} + ` + } + + let _setting = {...setting, customScript: _customScript} let param = { func: 's_debug_sql', - LText: this.props.initsql + _initsql + values.sql + tail + LText: SettingUtils.getDebugSql(_setting, arr_field, regoptions, swhere) } - - // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/@\$|\$@/ig, '') param.LText = Utils.formatOptions(param.LText) param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' @@ -134,16 +184,6 @@ }) } - handleCancel = () => { - this.setState({ - editItem: null - }) - - this.props.form.setFieldsValue({ - sql: '' - }) - } - selectScript = (value, option) => { let _sql = this.props.form.getFieldValue('sql') if (_sql) { @@ -164,8 +204,9 @@ } render() { - const { usefulfields, systemScripts, btn } = this.props + const { systemScripts, setting, type } = this.props const { getFieldDecorator } = this.props.form + const { usefulFields } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -178,11 +219,11 @@ } return ( - <Form {...formItemLayout} className="verify-form" id="verify-custom-scripts"> + <Form {...formItemLayout} className="modal-menu-setting-script"> <Row gutter={24}> - {btn.sql ? <Col span={8}> + {setting.tableName ? <Col span={8}> <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}> - {btn.sql} + {setting.tableName} </Form.Item> </Col> : null} <Col span={16}> @@ -190,27 +231,9 @@ ErrorCode, retmsg </Form.Item> </Col> - {usefulfields ? <Col span={24} className="sqlfield"> + <Col span={24} className="sqlfield"> <Form.Item label={'鍙敤瀛楁'}> - {usefulfields} - </Form.Item> - </Col> : null} - <Col span={8} style={{whiteSpace: 'nowrap'}}> - <Form.Item style={{marginBottom: 0}} label={ - <Tooltip placement="bottomLeft" title={'鑷畾涔夎剼鏈笌榛樿sql浣嶇疆鍏崇郴銆�'}> - <Icon type="question-circle" style={{color: '#c49f47', marginRight: '5px'}} /> - 鎵ц浣嶇疆 - </Tooltip> - }> - {getFieldDecorator('position', { - initialValue: 'front' - })( - <Radio.Group> - <Radio value="init">鍒濆鍖�</Radio> - <Radio value="front">sql鍓�</Radio> - <Radio value="back">sql鍚�</Radio> - </Radio.Group> - )} + id, bid, loginuid, sessionuid, userid, appkey, {type === 'main' ? 'out_id, ' : '' }time_id, orderBy{setting.laypage !== 'false' ? ', pageSize, pageIndex': ''}{usefulFields ? ', ' + usefulFields : ''} </Form.Item> </Col> <Col span={10}> @@ -219,19 +242,18 @@ showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onChange={this.selectScript} - getPopupContainer={() => document.getElementById('verify-custom-scripts')} > {systemScripts.map((option, i) => - <Select.Option key={i} value={option.value}>{option.name}</Select.Option> + <Select.Option style={{whiteSpace: 'normal'}} key={i} value={option.value}>{option.name}</Select.Option> )} </Select> </Form.Item> </Col> <Col span={6} className="add"> - <Button onClick={this.handleConfirm} loading={this.state.loading} className="mk-green" style={{marginBottom: 15, marginLeft: 40}}> + <Button onClick={this.handleConfirm} loading={this.state.loading} className="mk-green" style={{marginTop: 5, marginBottom: 15, marginLeft: 30}}> 淇濆瓨 </Button> - <Button onClick={this.handleCancel} style={{marginBottom: 15, marginLeft: 10}}> + <Button onClick={this.handleCancel} style={{marginTop: 5, marginBottom: 15, marginLeft: 10}}> 鍙栨秷 </Button> </Col> -- Gitblit v1.8.0