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

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

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

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

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

const query_url = new Map([
    ['0_0_0', {type: '0', url: '', msg: '請選擇查詢項..'}],
    ['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: '身份證只能單獨查詢哦 ..'}],
    ['1_0_1', {type: '0', url: '', msg: '身份證只能單獨查詢哦 ..'}],
  ])


  /* 判斷 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')
          /* 暫時設置 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 {
            }
          })
        }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容