From f45b2ad61211cf2821cdaab07676c7906c96410a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 05 七月 2023 18:23:56 +0800 Subject: [PATCH] 2023-07-05 --- src/menu/datasource/verifycard/customscript/index.jsx | 141 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 108 insertions(+), 33 deletions(-) diff --git a/src/menu/datasource/verifycard/customscript/index.jsx b/src/menu/datasource/verifycard/customscript/index.jsx index 0e59cf7..3b897eb 100644 --- a/src/menu/datasource/verifycard/customscript/index.jsx +++ b/src/menu/datasource/verifycard/customscript/index.jsx @@ -1,15 +1,18 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Form, Row, Col, Button, notification, Select } from 'antd' +import { Form, Row, Col, Button, notification, Select, Tooltip, Modal } from 'antd' +import Toast from 'antd-mobile/es/components/toast' +import Dialog from 'antd-mobile/es/components/dialog' import Utils from '@/utils/utils.js' import CodeMirror from '@/templates/zshare/codemirror' +import MKEmitter from '@/utils/events.js' import './index.scss' class CustomForm extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� + type: PropTypes.string, // 缁勪欢绫诲瀷 defaultsql: PropTypes.string, // 榛樿sql setting: PropTypes.object, // 璁剧疆 searches: PropTypes.array, // 鎼滅储鏉′欢 @@ -32,9 +35,7 @@ if (!item.field) return if (item.type === 'group') { - if (item.transfer === 'true') { - _usefulFields.push(item.field) - } + _usefulFields.push(item.field) _usefulFields.push(item.datefield) _usefulFields.push(item.datefield + '1') } else if (['dateweek', 'datemonth', 'daterange'].includes(item.type)) { @@ -60,9 +61,7 @@ if (!item.field) return if (item.type === 'group') { - if (item.transfer === 'true') { - _usefulFields.push(item.field) - } + _usefulFields.push(item.field) _usefulFields.push(item.datefield) _usefulFields.push(item.datefield + '1') } else if (['dateweek', 'datemonth', 'daterange'].includes(item.type)) { @@ -104,6 +103,15 @@ // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { + if (/^[\s\n]+$/.test(values.sql)) { + notification.warning({ + top: 92, + message: '璇疯緭鍏ql!', + duration: 5 + }) + return + } + values.uuid = this.state.editItem ? this.state.editItem.uuid : '' let _quot = values.sql.match(/'{1}/g) @@ -135,6 +143,13 @@ duration: 5 }) return + } else if (/,,/ig.test(values.sql)) { + notification.warning({ + top: 92, + message: '鑷畾涔塻ql璇彞涓紝涓嶅彲鍑虹幇杩炵画鐨勮嫳鏂囬�楀彿锛�,,锛�', + duration: 5 + }) + return } let error = Utils.verifySql(values.sql, 'customscript') @@ -154,6 +169,11 @@ editItem: null, loading: false }) + + if (values.uuid) { + MKEmitter.emit('editLineId', values.uuid) + } + this.props.form.setFieldsValue({ sql: ' ' }) @@ -169,7 +189,9 @@ selectScript = (value, option) => { let _sql = this.props.form.getFieldValue('sql') - if (_sql) { + if (_sql === ' ') { + _sql = '' + } else if (_sql) { _sql = _sql + ` ` @@ -190,47 +212,100 @@ }) } - render() { - const { systemScripts, setting } = this.props - const { getFieldDecorator } = this.props.form - const { usefulFields } = this.state - const formItemLayout = { - labelCol: { - xs: { span: 24 }, - sm: { span: 8 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 } + showError = (type) => { + let appType = sessionStorage.getItem('appType') + + if (type === 'S') { + if (appType === 'mob') { + Toast.show({ icon: 'success', content: '鎵ц鎴愬姛锛�', duration: 3000 }) + } else { + notification.success({ + top: 92, + message: '鎵ц鎴愬姛锛�', + duration: 2 + }) + } + + } else if (type === 'Y') { + if (appType === 'mob') { + Dialog.alert({content: '鎵ц鎴愬姛锛�', confirmText: '鐭ラ亾浜�'}) + } else { + Modal.success({ + title: '鎵ц鎴愬姛锛�' + }) + } + } else if (type === 'N') { + if (appType === 'mob') { + Dialog.alert({content: '鎵ц澶辫触锛�', confirmText: '鐭ラ亾浜�'}) + } else { + Modal.error({ + title: '鎵ц澶辫触锛�' + }) + } + } else { + if (appType === 'mob') { + Toast.show({ icon: 'fail', content: '鎵ц澶辫触锛�', duration: 3000 }) + } else { + notification.error({ + top: 92, + message: '鎵ц澶辫触锛�', + duration: 10 + }) } } + } + + render() { + const { systemScripts, setting, type } = this.props + const { getFieldDecorator } = this.props.form + const { usefulFields } = this.state + + let urlFields = window.GLOB.urlFields ? window.GLOB.urlFields.join(', ') : '' return ( - <Form {...formItemLayout} className="modal-menu-setting-script"> + <Form className="modal-source-setting-script"> <Row gutter={24}> - {setting.tableName ? <Col span={8}> - <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}> + {setting.tableName ? <Col span={5}> + <Form.Item label="琛ㄥ悕" style={{whiteSpace: 'nowrap', margin: 0}}> {setting.tableName} </Form.Item> </Col> : null} - <Col span={8}> - <Form.Item label={'鎶ラ敊瀛楁'} style={{margin: 0}}> + <Col span={19}> + <Form.Item label="鎶ラ敊瀛楁" style={{margin: 0}}> ErrorCode, retmsg + <span style={{marginLeft: 25}}> + 鎴愬姛锛� + <span className="error-val" onClick={() => {this.showError('S')}}> S </span>銆� + <span className="error-val" onClick={() => {this.showError('Y')}}> Y </span>銆� + -1锛堜笉鎻愮ず锛� + </span> + <span style={{marginLeft: 20}}> + 澶辫触锛� + <span className="error-val" onClick={() => {this.showError('N')}}> N </span>銆� + -2锛堜笉鎻愮ず锛夈�� + <span className="error-val" onClick={() => {this.showError('')}}> 鍏朵粬 </span> + </span> </Form.Item> </Col> - <Col span={24} className="sqlfield"> - <Form.Item label={'鍙敤瀛楁'}> - id, bid, loginuid, sessionuid, userid, username, fullname, login_city, appkey, time_id, orderBy, pageSize, pageIndex{usefulFields ? ', ' + usefulFields : ''}{window.GLOB.urlFields ? ', ' + window.GLOB.urlFields.join(', ') : ''} + <Col span={24}> + <Form.Item label="鍙敤瀛楁" className="field-able"> + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, LoginUID, SessionUid, UserID, Appkey, time_id, typename</span></Tooltip>, + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��'}><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address</span></Tooltip>, + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鎺掑簭銆佸垎椤典互鍙婃悳绱㈡潯浠跺彉閲忥紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}>orderBy, pageSize, pageIndex{usefulFields ? ', ' + usefulFields : ''}{type === 'calendar' ? ', mk_year' : ''}</Tooltip> + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'url鍙橀噺锛岃鎸夌収@xxx@鏍煎紡浣跨敤銆�'}>{urlFields ? ', ' : ''}<span style={{color: '#13c2c2'}}>{urlFields}</span></Tooltip> </Form.Item> </Col> <Col span={10} style={{width: '43%'}}> - <Form.Item label={'蹇嵎娣诲姞'} labelCol={{xs: { span: 24 }, sm: { span: 6 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 18 }} } style={{marginBottom: 0}}> + <Form.Item label="蹇嵎娣诲姞" labelCol={{xs: { span: 24 }, sm: { span: 6 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 18 }} } style={{marginBottom: 0}}> <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onSelect={this.selectScript} > <Select.Option style={{whiteSpace: 'normal'}} key="default" value="defaultsql">榛樿sql</Select.Option> + <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> + 娴嬭瘯鏂偣 + </Select.Option> {systemScripts.map((option, i) => <Select.Option style={{whiteSpace: 'normal'}} key={i} value={option.value}>{option.name}</Select.Option> )} @@ -246,16 +321,16 @@ </Button> </Col> <Col span={24} className="sql"> - <Form.Item label={'sql'}> + <Form.Item label="sql"> {getFieldDecorator('sql', { initialValue: '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + 'sql!' + message: '璇疯緭鍏ql!' } ] - })(<CodeMirror />)} + })(<CodeMirror/>)} </Form.Item> </Col> </Row> -- Gitblit v1.8.0