From b78ac1c7dd71fba48e413220e22927fdc32d5d41 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 02 一月 2025 10:36:20 +0800 Subject: [PATCH] 2025-01-02 --- src/templates/zshare/verifycard/billcodeform/index.jsx | 180 ++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 108 insertions(+), 72 deletions(-) diff --git a/src/templates/zshare/verifycard/billcodeform/index.jsx b/src/templates/zshare/verifycard/billcodeform/index.jsx index ee1770f..bf5c929 100644 --- a/src/templates/zshare/verifycard/billcodeform/index.jsx +++ b/src/templates/zshare/verifycard/billcodeform/index.jsx @@ -1,20 +1,20 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Form, Row, Col, Select, Button, InputNumber } from 'antd' -import './index.scss' +import { Form, Row, Col, Select, Button, InputNumber, Input, Tooltip } from 'antd' +import { QuestionCircleOutlined } from '@ant-design/icons' +// import './index.scss' -class UniqueForm extends Component { +class BillCodeForm extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - btn: PropTypes.object, // 鎸夐挳淇℃伅 - fields: PropTypes.array, // 琛ㄥ崟 - billcodes: PropTypes.array, // 琛ㄥ崟 - columns: PropTypes.array, // 琛ㄥ崟 - modular: PropTypes.array, // 琛ㄥ崟 - modularDetail: PropTypes.array, // 琛ㄥ崟 - orderChange: PropTypes.func // 琛ㄥ崟 + btn: PropTypes.object, + fields: PropTypes.array, + billcodes: PropTypes.array, + columns: PropTypes.array, + modular: PropTypes.array, + modularDetail: PropTypes.array, + orderChange: PropTypes.func } state = { @@ -22,29 +22,31 @@ modularDetail: [], funFields: [], billFields: [], - type: '1' + type: '1', + TypeCharOne: 'Lp' } UNSAFE_componentWillMount() { let _modularDetail = [] let _billFields = [] + if (this.props.modular.length > 0) { _modularDetail = this.props.modularDetail.filter(item => item.BID === this.props.modular[0].ID) } let fieldMap = new Map() this.props.fields.forEach(_field => { - if (_field.type === 'text' && !fieldMap.has(_field.field)) { + if (_field.type === 'text' && !fieldMap.has(_field.field.toLowerCase())) { _billFields.push(_field) - fieldMap.set(_field.field, true) + fieldMap.set(_field.field.toLowerCase(), true) } }) if (this.props.btn.Ot !== 'notRequired') { this.props.columns.forEach(_field => { - if (_field.type === 'text' && !fieldMap.has(_field.field)) { + if (_field.type === 'text' && !fieldMap.has(_field.field.toLowerCase())) { _billFields.push(_field) - fieldMap.set(_field.field, true) + fieldMap.set(_field.field.toLowerCase(), true) } }) } @@ -84,10 +86,12 @@ type: '2', funFields: _funFields, editItem: record, - modularDetail: _detail + modularDetail: _detail, + TypeCharOne: record.TypeCharOne }, () => { this.props.form.setFieldsValue({ field: record.field, + Type: record.Type || 4, TypeCharOne: record.TypeCharOne, ModularCode: record.ModularCode, ModularDetailCode: _modularDetailCode, @@ -98,13 +102,18 @@ type: '1', funFields: _funFields, editItem: record, + TypeCharOne: record.TypeCharOne }, () => { - this.props.form.setFieldsValue({ + let _form = { field: record.field, TypeCharOne: record.TypeCharOne, Type: record.Type, - linkField: record.linkField, - }) + linkField: record.linkField + } + if (record.TypeCharOne === 'Lp') { + _form.mark = record.mark || '' + } + this.props.form.setFieldsValue(_form) }) } } @@ -123,11 +132,13 @@ TypeCharOneChange = (value) => { if (value === 'Y' || value === 'n') { this.setState({ - type: '2' + type: '2', + TypeCharOne: value }) } else { this.setState({ - type: '1' + type: '1', + TypeCharOne: value }) } } @@ -143,7 +154,7 @@ values.fieldName = _funField ? _funField.label : '' // 涓�绾ц彍鍗曞�间负20190203125926873D6029A9C511041719420鏃禩ypeCharTwo=TableCode锛屽叾浠栫敤BillCode - if (values.ModularCode === '20190203125926873D6029A9C511041719420') { + if (values.ModularCode === '20190203125926873D6029A9C511041719420' || values.ModularCode === '01') { values.TypeCharTwo = 'TableCode' } else { values.TypeCharTwo = 'BillCode' @@ -164,33 +175,36 @@ // 璁剧疆娴佹按鍙蜂綅鏁� let _detail = this.state.modularDetail.filter(item => item.ModularDetailCode === values.ModularDetailCode)[0] - values.Type = _detail.Type + values.Type = values.Type || _detail.Type } else { let _billField = billFields.filter(item => item.field === values.linkField)[0] values.linkFieldName = _billField ? _billField.label : '' } - this.props.orderChange(values) this.setState({ editItem: null }, () => { - + this.props.orderChange(values) let _usedfields = this.props.billcodes.map(item => item.field) this.setState({ funFields: this.props.fields.filter(field => field.type === 'funcvar' && !_usedfields.includes(field.field)), }) }) - this.props.form.setFieldsValue({ - field: '', - }) + let _form = { + field: '' + } + if (this.state.TypeCharOne === 'Lp') { + _form.mark = '' + } + this.props.form.setFieldsValue(_form) } }) } render() { const { getFieldDecorator } = this.props.form - const { type } = this.state + const { type, TypeCharOne } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -203,37 +217,37 @@ } return ( - <Form {...formItemLayout} className="verify-form"> + <Form {...formItemLayout} className="verify-form mk-fix-form-height"> <Row gutter={24}> - <Col span={10}> - <Form.Item label={this.props.dict['header.form.funcvar']}> + <Col span={7}> + <Form.Item label="鍑芥暟鍙橀噺"> {getFieldDecorator('field', { initialValue: '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + this.props.dict['header.form.funcvar'] + '!' + message: '璇烽�夋嫨鍑芥暟鍙橀噺!' } ] })( <Select> {this.state.funFields.map(option => - <Select.Option title={option.label} id={option.uuid} key={option.uuid} value={option.field}> - {option.label} + <Select.Option key={option.uuid} value={option.field}> + {`${option.label}锛�${option.field}锛塦} </Select.Option> )} </Select> )} </Form.Item> </Col> - <Col span={10}> - <Form.Item label={'绫诲瀷'}> + <Col span={7}> + <Form.Item label="绫诲瀷"> {getFieldDecorator('TypeCharOne', { initialValue: 'Lp', rules: [ { required: true, - message: this.props.dict['form.required.select'] + '绫诲瀷!' + message: '璇烽�夋嫨绫诲瀷!' } ] })( @@ -246,53 +260,35 @@ )} </Form.Item> </Col> - <Col span={4} className="add"> - <Button onClick={this.handleConfirm} type="primary"> - 纭畾 - </Button> - </Col> - {type === '1' ? <Col span={10}> - <Form.Item label={'鍏宠仈瀛楁'}> + {type === '1' ? <Col span={7}> + <Form.Item label="鍏宠仈瀛楁"> {getFieldDecorator('linkField', { initialValue: '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + '鍏宠仈瀛楁!' + message: '璇烽�夋嫨鍏宠仈瀛楁!' } ] })( - <Select> + <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}> {this.state.billFields.map(option => - <Select.Option title={option.label} id={option.uuid} key={option.uuid} value={option.field}> - {option.label} + <Select.Option key={option.uuid} value={option.field}> + {`${option.label}锛�${option.field}锛塦} </Select.Option> )} </Select> )} </Form.Item> </Col> : null} - {type === '1' ? <Col span={10}> - <Form.Item label={'浣嶆暟'}> - {getFieldDecorator('Type', { - initialValue: 4, - rules: [ - { - required: true, - message: this.props.dict['form.required.input'] + '浣嶆暟!' - } - ] - })(<InputNumber min={1} max={10} precision={0} />)} - </Form.Item> - </Col> : null} - {type === '2' ? <Col span={10}> - <Form.Item label={'鍑瘉绫诲瀷'}> + {type === '2' ? <Col span={7}> + <Form.Item label="鍑瘉绫诲瀷"> {getFieldDecorator('ModularCode', { initialValue: this.props.modular[0] ? this.props.modular[0].ID : '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + '鍑瘉绫诲瀷!' + message: '璇烽�夋嫨鍑瘉绫诲瀷!' } ] })( @@ -302,7 +298,7 @@ onChange={(value) => {this.voucherChange(value)}} > {this.props.modular.map(option => - <Select.Option title={option.NameNO} id={option.ID} key={option.ID} value={option.ID}> + <Select.Option key={option.ID} value={option.ID}> {option.NameNO} </Select.Option> )} @@ -310,14 +306,32 @@ )} </Form.Item> </Col> : null} - {type === '2' ? <Col span={10}> - <Form.Item label={'鍑瘉鏍囪瘑'}> + <Col span={3} className="add"> + <Button onClick={this.handleConfirm} className="mk-green"> + 淇濆瓨 + </Button> + </Col> + <Col span={7}> + <Form.Item label="浣嶆暟"> + {getFieldDecorator('Type', { + initialValue: 4, + rules: [ + { + required: true, + message: '璇疯緭鍏ヤ綅鏁�!' + } + ] + })(<InputNumber min={1} max={10} precision={0} onPressEnter={this.handleConfirm}/>)} + </Form.Item> + </Col> + {type === '2' ? <Col span={7}> + <Form.Item label="鍑瘉鏍囪瘑"> {getFieldDecorator('ModularDetailCode', { initialValue: this.state.modularDetail[0] ? this.state.modularDetail[0].ModularDetailCode : '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + '鍑瘉鏍囪瘑!' + message: '璇烽�夋嫨鍑瘉鏍囪瘑!' } ] })( @@ -326,12 +340,34 @@ filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} > {this.state.modularDetail.map(option => - <Select.Option title={option.CodeName} id={option.ModularDetailCode} key={option.ModularDetailCode} value={option.ModularDetailCode}> + <Select.Option style={{whiteSpace: 'unset'}} key={option.ModularDetailCode} value={option.ModularDetailCode}> {option.CodeName} </Select.Option> )} </Select> )} + </Form.Item> + </Col> : null} + {TypeCharOne === 'Lp' ? <Col span={7}> + <Form.Item label={ + <Tooltip placement="topLeft" title="璇ユ爣璇嗙敤浜庣敓鎴愯鍙疯鍒�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鏍囪瘑 + </Tooltip> + }> + {getFieldDecorator('mark', { + initialValue: '', + rules: [ + { + required: true, + message: '璇疯緭鍏ユ爣璇�!' + }, + { + pattern: /^[a-zA-Z0-9]*$/ig, + message: '璇疯緭鍏ユ暟瀛椼�佸瓧姣嶄互鍙奯' + } + ] + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleConfirm}/>)} </Form.Item> </Col> : null} </Row> @@ -340,4 +376,4 @@ } } -export default Form.create()(UniqueForm) \ No newline at end of file +export default Form.create()(BillCodeForm) \ No newline at end of file -- Gitblit v1.8.0