文档
测试

支出记录规则校验

POST

接口描述

💚 测试通过

说明 / 示例

# 1.功能点 ![image.png](https://cos.easydoc.net/24916735/files/k4o0dozb.png) # 2.解决方案(失败)--定义字段规则。这里规则是业务规则不适用 ## 2.1 寻找字段 ![image.png](https://cos.easydoc.net/24916735/files/k4o09yfz.png) ## 2.2 定义规则 ![image.png](https://cos.easydoc.net/24916735/files/k4o06ajz.png) ## 2.3 底层: ```javaScript </FormItem> : <FormItem labelCol={{span: 6}} wrapperCol={{ span: 18 }} label={IDENTITY_CARD_LABEL}> {getFieldDecorator('identityCard', { rules: [WHITE_SPACE, TYPE_IDENTITY_CARD], initialValue: userInfo.identityCard })( <Input onChange={this.onChangeHandler} /> )} </FormItem> ``` # 3.自定义解决方案 ## 自定义传值类型(未采用) ![image.png](https://cos.easydoc.net/24916735/files/k4o4px0g.png) ## 最终数据渲染:(采用动态字段特殊处理) ### 场景一:只修改单字段校验 renderFields.js ```javaScript // 2019-12-28 增加 前端 多规则字段。 let { WHITE_SPACE, TYPE_IDENTITY_CARD } = VALIDATE_RULE_SET || {}; let rules = [{required: required, message: message}]; // 默认规则处理 // 证件号特殊处理 if(columnCode === 'DEF_ZJH_001') { rules= [{required: required, message: message},TYPE_IDENTITY_CARD]; } // rules 已通过 message和readOnly做改造实现 多规则配置。 let fieldProps = { name: columnCode, fieldId, label, value, placeholder: tips, type: dataType, layout, onFieldChange, currencies, required, message, readOnly, dataSourceScope, accountCurrencyId, // 2019-12-28 hej rules, bizDate }; ``` ![image.png](https://cos.easydoc.net/24916735/files/k4r4al08.png) ### 场景2:字段关联校验 依据选择实现不同的数据校验逻辑。 由于每次改变数据都会重新调用renderField.Js.所以有新的方案处理 关注 async onFieldChange (fieldId, name, value) { 证件类型为空 ![image.png](https://cos.easydoc.net/24916735/files/k4w4qt27.png) 证件 value ![image.png](https://cos.easydoc.net/24916735/files/k4w524tf.png) ```javaScript let {hidden, required, readOnly, style, dataSourceScope: recordDataSourceScope, value} = (record && record[columnCode]) || {}; let isMtext = dataType === 'MTEXT'; let layout = isMtext ? FORMLAYOUT_100 : FORMLAYOUT_50; // 2020-1-2 先定义证件类型 if(columnCode === 'DEF_BXZJLX_001'){ if (value&&value.title) { cardType=value.title.zh_CN; } } ... // 由支出记录的报销状态决定是否可编辑了 readOnly = isDisabledStatus || readOnly; // 2019-12-28 增加 前端 多规则字段。 let { WHITE_SPACE, TYPE_IDENTITY_CARD } = VALIDATE_RULE_SET || {}; let rules = [{required: required, message: message}]; // 默认规则处理 // 证件号特殊处理 if(columnCode === 'DEF_ZJH_001'&&cardType==='身份证号') { rules= [{required: required, message: message},TYPE_IDENTITY_CARD]; } // 由 ```