瀏覽代碼

fix(photography): 防止重复请求和加载状态冲突

- 在生成操作前检查请求状态,避免重复调用
- 开启进度弹窗时正确设置请求状态为true
-生成结束或失败后重置请求状态为false
- 拍照测试和保存配置时增加加载状态判断
- 保存配置时设置和重置captureLoading状态
panqiuyao 2 月之前
父節點
當前提交
04cf340598
共有 2 個文件被更改,包括 14 次插入1 次删除
  1. 8 0
      frontend/src/views/Photography/components/editRow.vue
  2. 6 1
      frontend/src/views/Photography/detail.vue

+ 8 - 0
frontend/src/views/Photography/components/editRow.vue

@@ -178,6 +178,9 @@ async function changeNum(type, min, max) {
 /*测试拍照*/
 const captureLoading = ref(false)
 function testShoesFlip(){
+  if (captureLoading.value) {
+    return
+  }
   if (clientStore.isClient) {
 
     socketStore.sendMessage({
@@ -222,15 +225,20 @@ const close = ()=>{
  * 保存当前编辑的配置。
  */
 const saveRow = async () => {
+  if (captureLoading.value) {
+    return
+  }
 
   if(!editRowData.value.action_name){
     ElMessage.error('请输入动作名称')
     return;
   }
 
+  captureLoading.value = true
   const result = await  saveDeviceConfig({
     ...editRowData.value
   })
+  captureLoading.value = false
   if (result.code == 0) {
     emit('confirm')
     ElMessage.success('保存成功');

+ 6 - 1
frontend/src/views/Photography/detail.vue

@@ -914,6 +914,9 @@ const checkParams = async function () {
 
 // 开始生成操作
 const generate = async function () {
+  if (requesting.value) {
+    return
+  }
 
   if(form.services.length == 0){
     ElMessage.error('请选择服务内容')
@@ -1006,7 +1009,7 @@ const generate = async function () {
 
   console.log(params)
   // 开启进度弹窗
-  requesting.value =  false
+  requesting.value =  true
   partErrList.value = []
   message.value = '正在为您处理,请稍后'
   progress.value = 0
@@ -1063,6 +1066,7 @@ const generate = async function () {
      }
       progress.value = 0
       loadingDialogVisible.value = false
+      requesting.value = false
       return;
     }
 
@@ -1151,6 +1155,7 @@ const generate = async function () {
       message.value = '全部货号生成失败'
 
     }
+    requesting.value = false
   });
 }
 const openLoadingDialog = (timer: number) => {