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)
posted @ 2022-02-14 10:08  小蓉儿  阅读(196)  评论(0编辑  收藏  举报