From a4ef35bb323b5f8300f15a4eb604d61ff39a194a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 17 十二月 2020 17:35:39 +0800 Subject: [PATCH] 2020-12-17 --- src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx | 133 +++++++++++++++++++++++++------------------- 1 files changed, 76 insertions(+), 57 deletions(-) diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx index cbbd0d8..af3c4ba 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx @@ -1,13 +1,13 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Button, notification, Modal, Menu, Icon, Tooltip, Radio, Dropdown } from 'antd' +import { is, fromJS } from 'immutable' +import { Form, Row, Col, Button, notification, Modal, Icon, Tooltip, Radio, Select } from 'antd' import moment from 'moment' import Utils from '@/utils/utils.js' import Api from '@/api' +import CodeMirror from '@/templates/zshare/codemirror' import './index.scss' - -const { TextArea } = Input class CustomForm extends Component { static propTpyes = { @@ -27,9 +27,20 @@ } UNSAFE_componentWillMount () { - const {usefulfields, btn} = this.props + this.resetfield(this.props.usefulfields) + } - let fields = usefulfields.map(item => item.Column) + UNSAFE_componentWillReceiveProps (nextProps) { + if (nextProps.usefulfields && !is(fromJS(this.props.usefulfields), fromJS(nextProps.usefulfields))) { + this.resetfield(nextProps.usefulfields) + } + } + + resetfield = (columns) => { + const { btn } = this.props + columns = columns.filter(item => item.import !== 'false') + let fields = columns.map(item => item.Column) + if (!fields.includes('ID')) { fields.unshift('ID') } @@ -37,8 +48,8 @@ fields.unshift('BID') } - let _sql = `Declare @${btn.sheet} table (${usefulfields.map(item => item.Column + ' ' + item.type).join(',')},jskey nvarchar(50) ) - Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50), @retmsg nvarchar(4000) + let _sql = `Declare @${btn.sheet} table (${columns.map(item => item.Column + ' ' + item.type).join(',')},jskey nvarchar(50) ) + Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50), @retmsg nvarchar(4000),@tbid Nvarchar(512) Select @ErrorCode='', @retmsg='' ` @@ -125,8 +136,11 @@ func: 's_debug_sql', LText: this.state.verifySql + _initsql + values.sql + tail } + + param.LText = param.LText.replace(/@\$|\$@/ig, '') + param.LText = Utils.formatOptions(param.LText) - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) this.setState({loading: true}) @@ -153,23 +167,34 @@ }) } - selectScript = (e) => { - const { systemScripts, usefulfields, btn } = this.props + handleCancel = () => { + this.setState({ + editItem: null + }) + + this.props.form.setFieldsValue({ + sql: '' + }) + } - let option = '' - if (e.key === 'default') { - let fields = usefulfields.map(col => col.Column).join(',') + selectScript = (value, option) => { + const { usefulfields, btn } = this.props + + let _value = '' + if (value === 'default') { + let fields = usefulfields.filter(item => item.import !== 'false') + fields = fields.map(col => col.Column).join(',') if (fields) { fields = fields + ',' } - option = { - name: '榛樿sql', - value: `Insert into ${btn.sheet} (${fields}createuserid,createuser,createstaff,bid)\nSelect ${fields}@userid,@username,@fullname,@BID From @${btn.sheet}` - } + let database = btn.sheet.match(/(.*)\.(.*)\./ig) || '' + let sheet = btn.sheet.replace(/(.*)\.(.*)\./ig, '') + + _value = `Insert into ${database}${sheet} (${fields}createuserid,createuser,createstaff,bid)\nSelect ${fields}@userid@,@username,@fullname,@BID@ From @${sheet}` } else { - option = systemScripts[+e.key] + _value = value } let _sql = this.props.form.getFieldValue('sql') @@ -180,10 +205,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 @@ -206,11 +231,21 @@ } return ( - <Form {...formItemLayout} className="verify-form" id="verifycard2"> + <Form {...formItemLayout} className="verify-form" id="verify-excelin-custom-scripts"> <Row gutter={24}> + {btn.sheet ? <Col span={8}> + <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}> + {btn.sheet} + </Form.Item> + </Col> : null} + <Col span={16}> + <Form.Item label={'鎶ラ敊瀛楁'} style={{margin: 0}}> + ErrorCode, retmsg + </Form.Item> + </Col> {usefulfields ? <Col span={24} className="sqlfield"> <Form.Item label={'鍙敤瀛楁'}> - {usefulfields} + {usefulfields}, jskey </Form.Item> </Col> : null} <Col span={8} style={{whiteSpace: 'nowrap'}}> @@ -221,7 +256,7 @@ </Tooltip> }> {getFieldDecorator('position', { - initialValue: 'back' + initialValue: 'front' })( <Radio.Group> <Radio value="init">鍒濆鍖�</Radio> @@ -231,48 +266,32 @@ )} </Form.Item> </Col> - <Col span={4} style={{lineHeight: '40px', textAlign: 'center'}}> - <Dropdown trigger={['click']} overlayClassName="mk-normal-dropdown" overlay={ - <Menu onClick={this.selectScript}> - <Menu.Item key="default">榛樿sql</Menu.Item> + <Col span={10}> + <Form.Item style={{marginBottom: 0}} label={'蹇嵎娣诲姞'}> + <Select + showSearch + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={this.selectScript} + getPopupContainer={() => document.getElementById('verify-excelin-custom-scripts')} + > + <Select.Option key="default" value={'default'}> + 榛樿sql + </Select.Option> {systemScripts.map((option, i) => - <Menu.Item key={i} value={option.value}>{option.name}</Menu.Item> - )} - {systemScripts.map((option, i) => - <Menu.Item key={i + '1'} value={option.value}>{option.name}</Menu.Item> - )} - </Menu> - }> - <span style={{color: '#1890ff', display: 'inline-block', cursor: 'pointer'}}> - 蹇嵎娣诲姞 <Icon type="down" style={{marginRight: '5px'}} /> - </span> - </Dropdown> - </Col> - {/* <Col span={8}> - <Form.Item style={{marginBottom: 0}} label={ - <Tooltip placement="bottomLeft" title={'浠庣郴缁熷嚱鏁伴泦涓�夋嫨闇�瑕佺殑鍑芥暟锛屽彲蹇�熸坊鍔犺嚦sql涓��'}> - <Icon type="question-circle" style={{color: '#c49f47', marginRight: '5px'}} /> - 蹇嵎娣诲姞 - </Tooltip> - }> - <Select value="" onChange={this.selectScript}> - {systemScripts.map((option, i) => - <Select.Option title={option.name} key={i} value={option.value}> + <Select.Option key={i} value={option.value}> {option.name} </Select.Option> )} </Select> </Form.Item> - </Col> */} - <Col span={4} className="add"> + </Col> + <Col span={6} 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'}}> - {btn.sheet ? <span style={{maxWidth: '100%', display: 'inline-block', position: 'relative', top: '20px', whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden'}}> - 琛ㄥ悕: {btn.sheet} - </span> : null} + <Button onClick={this.handleCancel} style={{marginBottom: 15, marginLeft: 10}}> + 鍙栨秷 + </Button> </Col> <Col span={24} className="sql"> <Form.Item label={'sql'}> @@ -284,7 +303,7 @@ message: this.props.dict['form.required.input'] + 'sql!' } ] - })(<TextArea rows={15} />)} + })(<CodeMirror />)} </Form.Item> </Col> </Row> -- Gitblit v1.8.0