Vue3实战小技巧(findIndex) 查找data数组做单一修改

近期做项目遇到确认框选择后无法刷新ui按钮问题,因为确认框不在for的item元素里面,无法重新赋值,所以自能通过使用findIndex遍历当前页面数据;也就是data.value使用id作为条件查找元素,重新赋值符合id的state元素从而达到state按钮刷新效果。这里仅作为知识点分享,代码如下:

<Button type="primary" @click="showConfirmModal(item)" class="ml-2" > {{ item.state }}
          <Modal v-model:open="confirmModalVisible" :mask="false" title="该片单审核是否通过?">
          <template #footer>
                  <Button @click="handleConfirmNo()">否</Button>
                   <Button type="primary" @click="handleConfirmYes()">是</Button>
           </template>
          </Modal>
</Button>



const confirmModalVisible = ref(false);

// 显示确认框
const showConfirmModal = async (item) => {
  if (item.state === "待审核") {
    id.value = item.id;
    confirmModalVisible.value = true;
  } else {
    message.warning("该条目已审核!")

  }

};

// 处理点击“是”的逻辑
const handleConfirmYes = async () =>  {

  confirmModalVisible.value = false;
   const { data: res } = await axios.post(`http://localhost:9002/user-slice/id?id=${id.value}&state=1`);

 item.state= "审核成功" //无法赋值
state.value="审核成功" //ui未使用


    // 更新 data 数组中对应项的状态,条件id===id
    const index = data.value.findIndex(item => item.id === id.value);
    if (index!== -1) {
      data.value[index].state = "审核成功";
    }
  

    if(res.data){
   return   message.success('审核通过');
    }
return message.error("操作失败")


};

// 处理点击“否”的逻辑
const handleConfirmNo = async () => {
  confirmModalVisible.value = false;
   const { data: res } = await axios.post(`http://localhost:9002/user-slice/id?id=${id.value}&state=2`);
 item.state= "审核失败" //无法赋值
state.value="审核失败" //ui未使用



   // 更新 data 数组中对应项的状态
   const index = data.value.findIndex(item => item.id === id.value);
    if (index!== -1) {
      data.value[index].state = "审核失败";
    }

if(res.data){
    return  message.success('审核不予通过');
    }
return message.error("操作失败")



};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值