这段代码实现根据 `booking.bizTypeCde` 的值来控制两个输入框(或元素)的状态,并设置一些验证规则。具体逻辑如下: 1. 当 `booking.bizTypeCde` 为 `'CAR'`(汽车箱)时: -...
January 11, 2025 at 09:14 AM
这段代码实现根据 booking.bizTypeCde
的值来控制两个输入框(或元素)的状态,并设置一些验证规则。具体逻辑如下:
-
当
booking.bizTypeCde
为'CAR'
(汽车箱)时:- 使
csoNumInput
元素启用,并添加required
验证规则; - 使
agmtNumInput
元素禁用,并移除验证规则。
- 使
-
当
booking.bizTypeCde
为'MARKET'
(市场货)时:- 使
csoNumInput
元素禁用,并移除验证规则; - 使
agmtNumInput
元素启用,并添加required
验证规则。
- 使
-
其他情况下保持默认状态,不做任何操作。
优化后代码:
const config = {
CAR: [
{ input: csoNumInput, selector: "#isCsoNum", enabled: true, rule: 'required' },
{ input: agmtNumInput, selector: "#isAgmtNum", enabled: false, rule: '' },
],
MARKET: [
{ input: csoNumInput, selector: "#isCsoNum", enabled: false, rule: '' },
{ input: agmtNumInput, selector: "#isAgmtNum", enabled: true, rule: 'required' },
],
};
(config[booking.bizTypeCde] || []).forEach(({ input, selector, enabled, rule }) => {
toggleInput(input, selector, enabled, rule);
});
优化说明:
- 使用配置化方式:将条件逻辑抽取成配置对象
config
,提高代码可维护性。如果后续扩展更多业务类型,只需要添加新的配置即可。 - 减少重复逻辑:通过遍历配置批量调用
toggleInput
,避免重复写toggleInput
参数,简化代码结构。 - 逻辑更清晰:每种业务类型对应一组配置,每次只更新需要的字段,其他情况直接忽略处理。
这样代码逻辑更简洁、扩展性更强,同时提高可读性。
Generate your own explanations
Download our vscode extension
Read other generated explanations
Built by @thebuilderjr
Sponsored by beam analytics
Read our terms and privacy policy
Forked from openai-quickstart-node