From 9617d4a95093be4d25572d398c434a7746716f3f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 09 七月 2022 22:45:34 +0800 Subject: [PATCH] 2022-07-09 --- src/templates/zshare/verifycard/baseform/index.jsx | 151 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 136 insertions(+), 15 deletions(-) diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx index 0ef512f..5159200 100644 --- a/src/templates/zshare/verifycard/baseform/index.jsx +++ b/src/templates/zshare/verifycard/baseform/index.jsx @@ -1,10 +1,13 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -// import { is, fromJS } from 'immutable' -import { Form, Row, Col, Select, Radio, Tooltip } from 'antd' +import { fromJS } from 'immutable' +import { Form, Row, Col, Select, Radio, Tooltip, Input } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' -// import './index.scss' +import asyncComponent from '@/utils/asyncComponent' +import './index.scss' + +const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) class BillCodeForm extends Component { static propTpyes = { @@ -18,10 +21,6 @@ state = { wxTemps: [], miniTemps: [], - } - - UNSAFE_componentWillMount() { - } componentDidMount() { @@ -45,7 +44,10 @@ } else if (verify.wxNote === 'true') { if (!verify.wxTemplateId) { error = '寮�鍚叕浼楀彿娑堟伅鎺ㄩ�佹椂锛岄渶瑕侀�夋嫨娑堟伅妯℃澘锛�' + } else if (verify.wxNoteLink === 'url' && !verify.wxNoteLinkUrl) { + error = '璇峰~鍐欑綉鍧�锛�' } + } return error @@ -65,6 +67,11 @@ } if (_verify.wxNote !== 'true') { _verify.wxTemplateId = '' + _verify.wxNoteLink = '' + _verify.wxNoteLinkUrl = '' + _verify.wxNoteLinkMenuId = '' + _verify.wxNoteCallback = 'false' + _verify.wxNoteKeys = null } this.props.onChange(_verify) @@ -78,17 +85,71 @@ this.props.onChange(_verify) } - onWxTemplateChange = (val) => { + onWxTemplateChange = (val, option) => { const { verify } = this.props let _verify = {...verify, wxTemplateId: val} + + let keys = [] + if (option.props.content) { + keys = option.props.content.match(/{{[a-zA-Z0-9]+\.DATA}}/g) + keys = keys.map(key => key.replace(/{{|\.DATA}}/g, '')) + } + + let index = 1 + _verify.wxNoteKeys = keys.map(key => { + let item = { + key: key, + color: '#000000', + readonly: false + } + if (key === 'first') { + item.value = 'first' + item.readonly = true + } else if (key === 'remark') { + item.value = 'remark' + item.readonly = true + } else { + item.value = 'p' + index + index++ + } + + return item + }) + + this.props.onChange(_verify) + } + + onWxNoteKeyChange = (key, val) => { + let _verify = fromJS(this.props.verify).toJS() + + _verify.wxNoteKeys = _verify.wxNoteKeys.map(m => { + if (m.key === key) { + m.value = val + } + + return m + }) + + this.props.onChange(_verify) + } + + onWxNoteColorChange = (key, val) => { + let _verify = fromJS(this.props.verify).toJS() + + _verify.wxNoteKeys = _verify.wxNoteKeys.map(m => { + if (m.key === key) { + m.color = val + } + + return m + }) this.props.onChange(_verify) } render() { const { unionFields, verify, notes, card } = this.props - // const { getFieldDecorator } = this.props.form const { wxTemps } = this.state const formItemLayout = { labelCol: { @@ -104,7 +165,7 @@ return ( <Form {...formItemLayout}> <Row gutter={24}> - {card.sqlType !== 'custom' ? <Col span={8}> + {card.sqlType !== 'custom' && card.intertype !== 'inner' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'榛樿sql鎵ц椤哄簭涓鸿嚜瀹氫箟鑴氭湰涔嬪墠'}> <QuestionCircleOutlined className="mk-form-tip" /> @@ -117,22 +178,22 @@ </Radio.Group> </Form.Item> </Col> : null} - <Col span={8}> + {card.intertype !== 'inner' ? <Col span={8}> <Form.Item label={'澶辨晥楠岃瘉'}> <Radio.Group value={verify.invalid} onChange={(e) => {this.onOptionChange(e.target.value, 'invalid')}}> <Radio value="true">寮�鍚�</Radio> <Radio value="false">涓嶅紑鍚�</Radio> </Radio.Group> </Form.Item> - </Col> - <Col span={8}> + </Col> : null} + {card.intertype !== 'inner' ? <Col span={8}> <Form.Item label={'璐︽湡楠岃瘉'}> <Radio.Group value={verify.accountdate} onChange={(e) => {this.onOptionChange(e.target.value, 'accountdate')}}> <Radio value="true">寮�鍚�</Radio> <Radio value="false">涓嶅紑鍚�</Radio> </Radio.Group> </Form.Item> - </Col> + </Col> : null} {verify.accountdate === 'true' ? <Col span={8}> <Form.Item label={'楠岃瘉鍏徃'} required> <Select defaultValue={verify.accountfield || ''} onChange={(val) => {this.onOptionChange(val, 'accountfield')}}> @@ -234,13 +295,73 @@ <Form.Item label="娑堟伅妯℃澘" required> <Select value={verify.wxTemplateId} onSelect={this.onWxTemplateChange}> {wxTemps.map(option => - <Select.Option key={option.template_id} value={option.template_id}> + <Select.Option key={option.template_id} content={option.content} value={option.template_id}> {option.title} </Select.Option> )} </Select> </Form.Item> </Col> : null} + {verify.wxNote === 'true' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={'鏄惁灏嗘秷鎭墽琛岀粨鏋滃洖浼犵郴缁熴��'}> + <QuestionCircleOutlined className="mk-form-tip" /> + 娑堟伅鍥炶皟 + </Tooltip> + }> + <Radio.Group value={verify.wxNoteCallback || 'false'} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteCallback')}}> + <Radio value="true">寮�鍚�</Radio> + <Radio value="false">涓嶅紑鍚�</Radio> + </Radio.Group> + </Form.Item> + </Col> : null} + {verify.wxNote === 'true' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={'鐐瑰嚮娑堟伅鏃剁殑璺宠浆鍦板潃銆�'}> + <QuestionCircleOutlined className="mk-form-tip" /> + 璺宠浆閾炬帴 + </Tooltip> + }> + <Radio.Group value={verify.wxNoteLink || ''} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteLink')}}> + <Radio value="">鏃�</Radio> + <Radio value="url">缃戝潃</Radio> + <Radio value="miniProgram">灏忕▼搴�</Radio> + </Radio.Group> + </Form.Item> + </Col> : null} + {verify.wxNoteLink === 'url' ? <Col span={8}> + <Form.Item label="缃戝潃" required> + <Input placeholder="" autoComplete="off" value={verify.wxNoteLinkUrl || ''} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteLinkUrl')}}/> + </Form.Item> + </Col> : null} + {verify.wxNoteLink === 'miniProgram' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={`璺宠浆鑷冲皬绋嬪簭鎸囧畾鑿滃崟锛岀┖鍊奸粯璁よ烦杞嚦灏忕▼搴忛椤点�俙}> + <QuestionCircleOutlined className="mk-form-tip" /> + 鑿滃崟ID + </Tooltip> + }> + <Input placeholder="" autoComplete="off" value={verify.wxNoteLinkMenuId || ''} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteLinkMenuId')}}/> + </Form.Item> + </Col> : null} + {verify.wxNote === 'true' && verify.wxNoteKeys ? verify.wxNoteKeys.map(item => <Col span={8} key={item.key}> + <Form.Item className="mk-note-keyword" label={item.key} required> + <Select value={item.value} disabled={item.readonly} onSelect={(val) => this.onWxNoteKeyChange(item.key, val)}> + <Select.Option value="p1">p1</Select.Option> + <Select.Option value="p2">p2</Select.Option> + <Select.Option value="p3">p3</Select.Option> + <Select.Option value="p4">p4</Select.Option> + <Select.Option value="p5">p5</Select.Option> + <Select.Option value="p6">p6</Select.Option> + <Select.Option value="p7">p7</Select.Option> + <Select.Option value="p8">p8</Select.Option> + <Select.Option value="p9">p9</Select.Option> + <Select.Option value="p10">p10</Select.Option> + </Select> + <ColorSketch value={item.color || '#ffffff'} onChange={(val, hex) => {this.onWxNoteColorChange(item.key, hex)}} /> + </Form.Item> + </Col>) : null} + </Row> </Form> ) -- Gitblit v1.8.0