From 49f09cc6f8ff8c30a75ed1a9d6f510b69b73962a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 12 十二月 2023 21:05:37 +0800 Subject: [PATCH] 2023-12-12 --- src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx | 144 ++++++++++++++++++++++++++++++----------------- 1 files changed, 92 insertions(+), 52 deletions(-) diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx index cd970a6..1bbd830 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx @@ -1,9 +1,9 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Radio, Tooltip, notification } from 'antd' +import { Form, Row, Col, Input, Radio, Tooltip, notification, InputNumber } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' -import Utils from '@/utils/utils.js' +import { checkSQL } from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' import './index.scss' @@ -11,6 +11,7 @@ class SettingForm extends Component { static propTpyes = { + btnType: PropTypes.any, setting: PropTypes.object, // 鏁版嵁婧愰厤缃� } @@ -20,10 +21,10 @@ } UNSAFE_componentWillMount () { - const { setting } = this.props + const { setting, btnType } = this.props this.setState({ - dataType: setting.dataType, + dataType: btnType === 'print' ? 'custom' : setting.dataType, defaultSql: setting.defaultSql || 'true' }) } @@ -43,48 +44,9 @@ reject() return } else if (values.defaultSql === 'true' && values.dataresource) { - let _quot = values.dataresource.match(/'{1}/g) - let _lparen = values.dataresource.match(/\({1}/g) - let _rparen = values.dataresource.match(/\){1}/g) + let pass = checkSQL(values.dataresource) - _quot = _quot ? _quot.length : 0 - _lparen = _lparen ? _lparen.length : 0 - _rparen = _rparen ? _rparen.length : 0 - - if (_quot % 2 !== 0) { - notification.warning({ - top: 92, - message: '鏁版嵁婧愪腑\'蹇呴』鎴愬鍑虹幇', - duration: 5 - }) - reject() - return - } else if (_lparen !== _rparen) { - notification.warning({ - top: 92, - message: '鏁版嵁婧愪腑()蹇呴』鎴愬鍑虹幇', - duration: 5 - }) - reject() - return - } else if (/--/ig.test(values.dataresource)) { - notification.warning({ - top: 92, - message: '鏁版嵁婧愪腑锛屼笉鍙嚭鐜板瓧绗� -- 锛屾敞閲婅鐢� /*鍐呭*/', - duration: 5 - }) - reject() - return - } - - let error = Utils.verifySql(values.dataresource) - - if (error) { - notification.warning({ - top: 92, - message: '鏁版嵁婧愪腑涓嶅彲浣跨敤' + error, - duration: 5 - }) + if (!pass) { reject() return } @@ -99,12 +61,22 @@ } updateDataType = (e) => { - this.setState({dataType: e.target.value}) this.props.updateDataType(e.target.value) + + if (e.target.value === 'custom') { + setTimeout(() => { + this.setState({ + dataType: e.target.value, + defaultSql: this.props.setting.defaultSql || 'true' + }) + }, 10) + } else { + this.setState({dataType: e.target.value}) + } } render() { - const { setting } = this.props + const { setting, btnType } = this.props const { getFieldDecorator } = this.props.form const { dataType, defaultSql } = this.state @@ -123,7 +95,7 @@ <div className="excelout-datasource-wrap"> <Form {...formItemLayout}> <Row gutter={24}> - <Col span={8}> + {btnType !== 'print' ? <Col span={8}> <Form.Item label="瀵煎嚭鏁版嵁"> {getFieldDecorator('dataType', { initialValue: setting.dataType @@ -134,7 +106,7 @@ </Radio.Group> )} </Form.Item> - </Col> + </Col> : null} {dataType === 'custom' ? <Col className="short-label" span={8}> <Form.Item label="琛ㄥ悕"> {getFieldDecorator('tableName', { @@ -197,9 +169,21 @@ </Radio.Group>)} </Form.Item> </Col> : null} + {btnType !== 'print' && dataType === 'custom' && defaultSql === 'true' ? <Col className="short-label" span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鍙嚜瀹氫箟涓婚敭锛岀┖鏃堕粯璁や负鏁版嵁婧愪富閿�傛敞锛氶�夎瀵煎嚭鏃朵娇鐢ㄣ��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 涓婚敭 + </Tooltip> + }> + {getFieldDecorator('primaryKey', { + initialValue: setting.primaryKey || '', + })(<Input placeholder={''} autoComplete="off" />)} + </Form.Item> + </Col> : null} {dataType === 'custom' && defaultSql === 'true' ? <Col className="short-label" span={8}> <Form.Item label={ - <Tooltip placement="topLeft" title="鎺掑簭鏂瑰紡涓虹┖鏃讹紝浣跨敤琛ㄦ牸鎴栫粍浠朵腑鐨勬帓搴忔柟寮忋��"> + <Tooltip placement="topLeft" title="濡傛灉鍦ㄨ嚜瀹氫箟鑴氭湰涓娇鐢ㄤ簡@pageSize@鎴朄orderBy@锛岃鍦ㄦ暟鎹簮涓崟鐙啓鎺掑簭璇彞銆�"> <QuestionCircleOutlined className="mk-form-tip" /> 鎺掑簭鏂瑰紡 </Tooltip> @@ -215,9 +199,9 @@ })(<Input placeholder={'ID asc, UID desc'} autoComplete="off" />)} </Form.Item> </Col> : null} - {dataType === 'custom' ? <Col span={8}> + {dataType === 'custom' && btnType !== 'print' ? <Col span={8}> <Form.Item label={ - <Tooltip placement="topLeft" title="涓嶄娇鐢ㄦ悳绱㈡潯浠舵椂锛屼笉浼氳繘琛屾悳绱㈡潯浠剁殑鎷兼帴涓庣浉鍏崇粺璁″瓧娈电殑鏇挎崲銆傛敞锛氳嚜瀹氫箟鏁版嵁鏉ユ簮鏃讹紝鍙娇鐢ㄥ唴閮ㄦ悳绱€��"> + <Tooltip placement="topLeft" title="涓嶄娇鐢ㄦ悳绱㈡潯浠舵椂锛屼笉浼氳繘琛屾悳绱㈡潯浠剁殑鎷兼帴涓庣浉鍏崇粺璁″瓧娈电殑鏇挎崲銆�"> <QuestionCircleOutlined className="mk-form-tip" /> 鎼滅储鏉′欢 </Tooltip> @@ -231,6 +215,62 @@ </Radio.Group>)} </Form.Item> </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="瀵煎嚭excel涓伐浣滆〃鍚嶇О锛岄粯璁や负Sheet1銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 宸ヤ綔琛� + </Tooltip> + }> + {getFieldDecorator('sheet', { + initialValue: setting.sheet || '' + })(<Input placeholder="" autoComplete="off" />)} + </Form.Item> + </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="瀵煎嚭excel涓殑琛岄珮銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 琛岄珮 + </Tooltip> + }> + {getFieldDecorator('rowHeight', { + initialValue: setting.rowHeight || '' + })(<InputNumber min={10} max={200} precision={0} />)} + </Form.Item> + </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="璇峰皢闇�瑕佸悎骞剁殑琛ㄥご浣跨敤涓í绾垮垎闅旓紙濡傦細鍟嗗搧-鏁伴噺銆佸晢鍝�-鍗曚环锛夛紝鍓嶉儴鍒嗗皢浣滀负涓昏〃澶达紝鍚庨儴鍒嗗皢浣滀负瀛愯〃澶淬��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 琛ㄥご鍚堝苟 + </Tooltip> + }> + {getFieldDecorator('merge', { + initialValue: setting.merge || 'false' + })( + <Radio.Group> + <Radio value="false">鍚�</Radio> + <Radio value="true">鏄�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="Excel鍐呭鍖烘槸鍚﹁嚜鍔ㄦ崲琛屻��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鑷姩鎹㈣ + </Tooltip> + }> + {getFieldDecorator('wrapText', { + initialValue: setting.wrapText || 'false' + })( + <Radio.Group> + <Radio value="false">鍚�</Radio> + <Radio value="true">鏄�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} </Row> </Form> </div> -- Gitblit v1.8.0