if (variable.prescLocalForm.length <= 1) { variable.prescLocalSelected.Type = variable.baseCategoryCode == 'C01' ? '3' : variable.baseCategoryCode == 'B' ? '2' : '1' proxy.$toolEntry.common.clearPrescInfo(variable) return } await proxy.$messageBox.confirm('更改处方类型将清空当前处方,是否确定更换?', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(async () => { variable.prescLocalSelected.Store = [] proxy.$toolEntry.common.clearPrescInfo(variable) variable.prescLocalSelected.Type = variable.baseCategoryCode == 'C01' ? '3' : variable.baseCategoryCode == 'B' ? '2' : '1' }).catch(() => { proxy.$toolEntry.common.clearPrescInfo(variable) variable.baseCategoryCode = variable.prescLocalSelected.Type == '3' ? 'C01' : variable.prescLocalSelected.Type == '2' ? 'B' : 'A' });优化这段代码 提高它的逻辑性 减少不必要的重复逻辑
时间: 2024-01-07 20:05:52 浏览: 68
mate40pro NOH-AN00 11.0.0.155(SP2C01E155R7P1)_EMUI11.0.0
5星 · 资源好评率100%
为了提高代码的逻辑性和减少不必要的重复逻辑,你可以对代码进行以下优化:
```javascript
if (variable.prescLocalForm.length <= 1) {
const typeMap = {
'C01': '3',
'B': '2',
};
variable.prescLocalSelected.Type = typeMap[variable.baseCategoryCode] || '1';
} else {
const confirmationResult = await proxy.$messageBox.confirm('更改处方类型将清空当前处方,是否确定更换?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
});
if (confirmationResult) {
variable.prescLocalSelected.Store = [];
variable.prescLocalSelected.Type = typeMap[variable.baseCategoryCode] || '1';
} else {
variable.baseCategoryCode = variable.prescLocalSelected.Type === '3' ? 'C01' : variable.prescLocalSelected.Type === '2' ? 'B' : 'A';
}
}
proxy.$toolEntry.common.clearPrescInfo(variable);
```
优化的改动包括:
- 创建一个类型映射对象 `typeMap`,用于将 `variable.baseCategoryCode` 映射到对应的 `variable.prescLocalSelected.Type` 值。
- 将 `proxy.$toolEntry.common.clearPrescInfo(variable)` 提取到条件判断的外部,以避免重复调用。
- 使用条件判断的结果来决定是否执行清空处方和更新类型的逻辑,避免了重复的代码。
- 将确认框的结果存储在变量 `confirmationResult` 中,以提高代码的可读性。
这样做可以提高代码的逻辑性,并减少重复逻辑的出现。请注意,根据具体的需求和上下文,你可能需要对代码进行进一步的优化。
阅读全文