From f5dd10f53cccf9e020d447ed28f117039ea3d8cf Mon Sep 17 00:00:00 2001 From: zhaowenkang Date: Wed, 28 Jan 2026 14:03:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=85=B3=E7=8A=B6=E6=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=89=8D=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/EventManagement/ContentConfiguration.vue | 40 +++++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/views/EventManagement/ContentConfiguration.vue b/src/views/EventManagement/ContentConfiguration.vue index cbf06ab..fcd1f67 100644 --- a/src/views/EventManagement/ContentConfiguration.vue +++ b/src/views/EventManagement/ContentConfiguration.vue @@ -62,7 +62,7 @@ " active-text="ON" inactive-text="OFF" - @change="changeState(scope.row)" + :before-change="() => beforeChangeState(scope.row)" > @@ -112,6 +112,7 @@ { switch (form.type) { case 1: // Token - return { label: "数量", placeholder: "请输入Token数量", prop: "num" }; + return { label: "数量", placeholder: "请输入Token数量", prop: "num", type: "number" }; case 2: // 金币 - return { label: "数量", placeholder: "请输入金币数量", prop: "num" }; + return { label: "数量", placeholder: "请输入金币数量", prop: "num", type: "number" }; case 3: // 金豆 - return { label: "数量", placeholder: "请输入金豆数量", prop: "num" }; + return { label: "数量", placeholder: "请输入金豆数量", prop: "num", type: "number" }; default: // 默认情况(未选择或实物) - return { label: "名称", placeholder: "请输入物品名称", prop: "item_name" }; + return { label: "名称", placeholder: "请输入物品名称", prop: "item_name", type: "text" }; } }); const handleSuccess = (response, uploadFile) => { @@ -325,18 +326,23 @@ const datatotal = ref(0); const currentPage = ref(1); const pageSize = ref(15); -const changeState = async (row) => { - try { - const res = await changeStatusApi({ - token: token, - id: row.id, - status: row.status, - }); - ElMessage.success("状态更新成功"); - fetchTableData(); - } catch (error) { - // 由响应拦截器处理错误 - } +const beforeChangeState = (row) => { + return new Promise(async (resolve, reject) => { + try { + const targetStatus = row.status === 1 ? 0 : 1; + await changeStatusApi({ + token: token, + id: row.id, + status: targetStatus, + }); + ElMessage.success("状态更新成功"); + resolve(true); + // fetchTableData(); + } catch (error) { + // reject()拒绝操作,switch 组件会自动回滚状态 + reject(new Error("状态更新失败")); + } + }); }; // 重置表单数据