1. 多个判断条件无法进行switch case 传参的判断
// 第一种处理方式
function confirm1(arg) {
const { controlTypeText, executeRiskText, executeCrmcRiskText } = arg
// TODO: 以下需改
// this.$confirm({
// title: '提交',
// content: `系统控制方式为${controlTypeText},名单/集中度校验结果:${executeRiskText},风险试算结果:${executeCrmcRiskText}`,
// onOk: () => {
// this.submitBondInfo()
// }
// })
console.log(arg)
console.log('confirm 1', `系统控制方式为${controlTypeText},名单/集中度校验结果:${executeRiskText},风险试算结果:${executeCrmcRiskText},是否继续提交?`)
}
// 第二种处理方式
function confirm2(arg) {
const { controlTypeText, executeRiskText, executeCrmcRiskText } = arg
// TODO: 以下需改
// this.$confirm({
// title: '提交',
// content: `系统控制方式为${controlTypeText},名单/集中度校验结果:${executeRiskText},风险试算结果:${executeCrmcRiskText}`,
// onOk: () => {
// this.submitBondInfo()
// }
// })
console.log(arg)
console.log('confirm 2', `系统控制方式为${controlTypeText},名单/集中度校验结果:${executeRiskText},风险试算结果:${executeCrmcRiskText}`)
}
// TODO: 以下注释需改,枚举需要检查对应
const func_solve = {
// confirm1
case_RK_0_0: confirm1, //软控/通过/通过
case_RK_0_1: confirm1, //软控/通过/预警
case_RK_0_2: confirm1,
case_RK_1_0: confirm1,
case_RK_1_1: confirm1,
case_RK_1_2: confirm1,
case_YK_0_0: confirm1,
case_YK_0_1: confirm1,
case_YK_0_2: confirm1,
case_N_0_0: confirm1,
case_N_0_1: confirm1,
case_N_0_2: confirm1,
case_N_1_0: confirm1,
case_N_1_1: confirm1,
case_N_1_2: confirm1,
// confirm2
case_RK_0_3: confirm2,
case_RK_1_3: confirm2,
case_YK_0_3: confirm2,
case_YK_1_0: confirm2,
case_YK_1_1: confirm2,
case_YK_1_2: confirm2,
case_YK_1_3: confirm2,
case_N_0_3: confirm2,
case_N_1_3: confirm2,
}
/**********处理函数 */
function test(executeRiskText, controlTypeText, executeCrmcRiskText, func_solve, submitform) {
/****************************************这是对 controlType executeRiskStatus executeCrmcRiskStatus 进行编码*/
const caseKey = `case_${submitform.controlType}_${submitform.executeRiskStatus}_${submitform.executeCrmcRiskStatus}`
// 判断k-v, v是否存在(函数),存在则执行函数,否则,不执行
if (func_solve[caseKey]) {
func_solve[caseKey]({ controlTypeText, executeRiskText, executeCrmcRiskText })
} else {
// 不匹配的处理类型
}
}
/********************************** 测试数据 */
const submitform = {}
submitform.controlType = "RK"
submitform.executeRiskStatus = 0
submitform.executeCrmcRiskStatus = 0
/******************************** 这是计算出来的结果 */
// 名单/集中度试算结果
let executeRiskText = '通过'
// 控制方式
let controlTypeText = '软控'
// 指标试算结果
let executeCrmcRiskText = '通过'
// TODO: 入参须改
test(executeRiskText, controlTypeText, executeCrmcRiskText, func_solve, submitform)
分类:
项目中遇到的问题进行js方法封装
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~