Quellcode durchsuchen

[Bugfix 0000]修复NormalTable在批量删除取消时表格为加载状态不能操作的bug

wangkeyi vor 3 Tagen
Ursprung
Commit
23776f3b05

+ 22 - 2
src/views/vent/deviceManager/comment/NormalTable.vue

@@ -239,8 +239,28 @@
     if (!props.batchDelete) return;
     doRequest(
       () =>
-        new Promise((resolve, _reject) => {
-          props.batchDelete!({ ids: selectedRowKeys.value }, (res: any) => resolve(res));
+        new Promise((resolve, reject) => {
+          let done = false;
+          props.batchDelete!(
+            { ids: selectedRowKeys.value },
+            (res: any) => {
+              if (done) return;
+              done = true;
+              resolve(res);
+            },
+            (err: any) => {
+              if (done) return;
+              done = true;
+              reject(err);
+            }
+          );
+          // 兜底:API 未触发任何回调时(如取消弹窗),自动结束 pending 状态
+          setTimeout(() => {
+            if (!done) {
+              done = true;
+              resolve(undefined);
+            }
+          }, 3000);
         }),
       { confirm: false }
     );

+ 4 - 1
src/views/vent/deviceManager/deviceTable/device.api.ts

@@ -64,7 +64,7 @@ export const deleteByIdF = (params, handleSuccess) => {
  * 批量删除用户
  * @param params
  */
-export const batchDeleteById = (params, handleSuccess) => {
+export const batchDeleteById = (params, handleSuccess, handleCancel) => {
   Modal.confirm({
     title: '确认删除',
     content: '是否删除选中数据',
@@ -75,6 +75,9 @@ export const batchDeleteById = (params, handleSuccess) => {
         handleSuccess();
       });
     },
+    onCancel: () => {
+      handleCancel?.();
+    },
   });
 };
 /**