关于element组件的el-switch配合弹出框确认,点击按钮,还未确定就改变了状态

 <el-table-column align="center" label="上架状态">
        <template #default="{ row }">
          <el-switch
            @click="handlePublishStatus(row)"
            v-model="row.publishStatus"
            :active-value="1"
            :inactive-value="0"
          />
        </template>
      </el-table-column>
// 上架
const handlePublishStatus = async (row) => {
  // 保存点击前按钮状态
  let flag = row.publishStatus;
  row.publishStatus = flag == 0 ? 1 : 0;

  proxy.$modal
    .confirm(`是否确认${row.publishStatus == 0 ? "下架" : "上架"}?`)
    .then(async () => {
      await updateNoticeStatusAPI({
        id: row.id,
        publishStatus: flag,
      });
      proxy.$modal.msgSuccess("操作成功!");
      getList();
    })
    .catch(() => {
      // 用户取消操作时不做任何处理
    });
};

点击按钮后状态不应发生改变,应该由弹出来确认状态,因为v-model 双向绑定的缘由导致一点击按钮就已经发生了改变,在点击触发处理函数将v-model的值保存便于提交初始值,再取返让按钮不会发生变化

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容