iT邦幫忙

0

checkbox if 判斷卡關

各位大大好
小弟目前用vue在寫一個判斷時卡關了
狀況如圖
https://ithelp.ithome.com.tw/upload/images/20210316/201348764eM498tBYw.png
我寫的判斷是

  let orderStatusID = '' //勾選取得的數值

  orderStatusID = 
  this.selecteds.map((x) => {
      return x.orderStatusID;
    })
    
  orderStatusID.forEach(function(item){
    if (item == 100){
      return this.GreenWordCheck() //100時用另一個function跑API做判斷
    }  else {
      return this.$emit("confirmFn"); //非100時直接轉單
    }
  }, this)

勾選取得的數值為100時會跑一打API到後端做另一個判斷再決定是否轉單
勾選取得的數值為300時不用打API直接轉單
單選的話都沒有問題
但若複選的話如果狀態為100打到API後決定不轉單,但狀態300的一樣要直接轉單

理想的情況是100留在原位,300轉過去,但實際上卻是100那筆跑API雖然失敗了有停住,但卻因為300那筆接著跑this.$emit("confirmFn")直接把兩筆都轉過去了

想了很久還是想不到要怎麼寫比較好,求大大們指點指點

隔空抓藥: 100 判斷失敗時把 orderStatusID 中 100 移除
high679 iT邦新手 5 級 ‧ 2021-03-16 15:30:36 檢舉
let orderStatusID =
this.selecteds.map(s => { return { id: s.orderId, status: s.orderStatusID} })
設兩個陣列
轉單 = orderStatusID.filter(o => o.status === 300)
100 = orderStatusID.filter(o => o.status === 100) 迴圈拋API
true 的話 push 進轉單
this.$emit("confirmFn", 轉單)

尚未有邦友回答

立即登入回答