Javascript 更優(yōu)雅的處理復(fù)雜判斷

業(yè)務(wù)場(chǎng)景:點(diǎn)擊 查詢按鈕 不同的查詢條件有不同查詢接口。當(dāng)然每個(gè)接口都有自己固定的參數(shù)形式。

用if 判斷確實(shí)會(huì)讓代碼的核心邏輯體現(xiàn)的不是很突出。個(gè)人認(rèn)為在處理邏輯 只需要把核心邏輯拉出來(lái)即可。然后需要過(guò)濾的數(shù)據(jù)或者判斷均可用方法來(lái)進(jìn)行替代,這樣后面比較容易維護(hù)。

*** 核心 Map (map 鍵值對(duì) 值value可以是任意模式的,這樣可以任意拼接成想要的)***

方式 :通過(guò)get 方法得出可能性情況
 let request_param = new URLSearchParams()

const query_url = new Map([
    ['0_0_0', {type: '0', url: '', msg: '請(qǐng)選擇查詢項(xiàng)..'}],
    ['0_0_1', {
      type: '1', url: '/record/search/amount', msg: '...', params_get: (value) => {
        request_param.append('start', value.startAmount)
        request_param.append('end', value.endAmount)
      }
    }],
    ['0_1_0', {
      type: '1', url: '/record/search/date', msg: '', params_get: (value) => {
        request_param.append('start', value.startDate)
        request_param.append('end', value.endDate)
      }
    }],
    ['0_1_1', {
      type: '1', url: '/record/search/date-amount', params_get: ({startDate, endDate, startAmount, endAmount}) => {
        request_param.append('startDate', startDate)
        request_param.append('endDate', endDate)
        request_param.append('startAmount', startAmount)
        request_param.append('endAmount', endAmount)
      }
    }],
    ['1_0_0', {
      type: '1', url: '/record/search/uid', params_get: ({uid}) => {
        request_param.append('uid', uid)
      }
    }],
    ['1_1_0', {type: '0', url: '', msg: '身份證只能單獨(dú)查詢哦 ..'}],
    ['1_0_1', {type: '0', url: '', msg: '身份證只能單獨(dú)查詢哦 ..'}],
  ])


  /* 判斷 type 類型 */
      judge_Null () {
        let index, index1, index2, url, params = {}
        if (this.sfz_Query === '') {
          index = 0
        } else {
          index = 1
          params.uid = this.sfz_Query
        }
        if (this.time_sot.length === 0) {
          index1 = 0
        } else {
          index1 = 1
          params.startDate = this.axios_packaged.formatDate(this.time_sot[0], 'yyyy-MM-dd')
          params.endDate = this.axios_packaged.formatDate(this.time_sot[1], 'yyyy-MM-dd')
        }
        if (this.money_Query === '') {
          index2 = 0
        } else {
          index2 = 1
          params.startAmount = 0
          params.endAmount = +this.money_Query
        }
        url = `${index}_${index1}_${index2}`
        return {url: query_url.get(url), value: params}
      }
 let {url, value} = this.judge_Null()
        if (url.type === '0') {
          this.$message({
            type: 'warning',
            message: `${url.msg}`
          })
        } else {
          /* 參數(shù) 覆蓋 */
          request_param = new URLSearchParams()
          let request_url = url.url
          url.params_get(value)
          request_param.append('page', '1')
          /* 暫時(shí)設(shè)置 5條 */
          request_param.append('size', '5')
          this.$axios.post(`/api${request_url}`, request_param).then((result) => {
            let {code, data} = result.data
            if (code === 200) {
              this.process_table_data(data)
            } else {
            }
          })
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容