根据您提供的代码,我进行了一些修正并补充了缺失的部分。以下是修改后的代码:
const trimLeft = function trimLeft(s) {
return s.replace(/(^\s*)/g, '');
};
const isEmpty = function isEmpty(value) {
return value === undefined || value === null || trimLeft(value) === '';
};
const checkRequired = (fields) => {
if (isEmpty(fields['extension']) || isEmpty(fields['maxExtenPeriods']) || isEmpty(fields['repayChannel'])) {
return '都要填写';
}
};
const checkoutLegalPerson = (field, value) => {
if (!value) {
return `${field}不能为空`;
}
};
const validator = createValidator({
extension: [(value, fields) => {
if (fields.extension === true && isEmpty(value)) {
return '最长展期期数';
}
if (fields.extension !== true) {
return;
}
}],
maxExtenPeriods: [(value, fields) => checkoutLegalPerson('maxExtenPeriods', value)],
repayChannel: [(value, fields) => checkoutLegalPerson('还款渠道', value)],
});
// 根据选中状态设置相应的值
const handleRepayChannelChange = (channelType, setValue) => {
let newValue = {};
switch(channelType){
case 'A':
newValue = { offline: true };
break;
case 'B':
newValue = { active: true };
break;
case 'C':
newValue = { withhold: true };
break;
default:
break;
}
setValue(newValue);
};
// 在组件中使用
<InputGroup field={repayChannel} label="还款渠道" sm={3} lsm={3} size="sm">
<div className="col-sm-9">
<div className="col-sm-4">
<div className="checkbox">
<label>
<input
type="checkbox"
name="channelType"
checked={repayChannel.value === 'A'}
onChange={() => handleRepayChannelChange('A', repayChannel.onChange)}
/> 线下
</label>
</div>
</div>
<div className="col-sm-4">
<div className="checkbox">
<label>
<input
type="checkbox"
name="channelType"
checked={repayChannel.value === 'B'}
onChange={() => handleRepayChannelChange('B', repayChannel.onChange)}
/>主动
</label>
</div>
</div>
<div className="col-sm-4">
<div className="checkbox">
<label>
<input
type="checkbox"
name="channelType"
checked={repayChannel.value === 'C'}
onChange={() => handleRepayChannelChange('C', repayChannel.onChange)}
/>代扣
</label>
</div>
</div>
</div>
</InputGroup>
// 进行验证
const fields = {
extension: '', // 填入相应的值
maxExtenPeriods: '', // 填入相应的值
repayChannel: '', // 根据选中状态填入对应的值:'offline'、'active'或'withhold'
};
checkRequired(fields);
const errors = validator(fields);
if (errors) {
console.log(errors);
}
请根据您的具体需求和代码逻辑进行相应的修改。希望能对您有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问




