ソースを参照

bug fix: 未考虑用户快速选中工具栏里多个工具的情况

任一存 1 年間 前
コミット
62d9c590d6
3 ファイル変更29 行追加0 行削除
  1. 2 0
      src/App.vue
  2. 22 0
      src/components/ToolList.vue
  3. 5 0
      src/config.js

+ 2 - 0
src/App.vue

@@ -79,9 +79,11 @@ input, textarea {
 
 .tool-fade-in-out-enter-active {
   transition: opacity 0.5s;
+  pointer-events: none;
 }
 .tool-fade-in-out-leave-active {
   transition: opacity 0.5s;
+  pointer-events: none;
 }
 .tool-fade-in-out-enter-from {
   opacity: 0 !important;

+ 22 - 0
src/components/ToolList.vue

@@ -81,7 +81,11 @@ const requiredToolList = computed(() => {
 /**
  * 选中工具逻辑
  */
+const isDisabled = ref(false)
 function onClickToolItem(idx) {
+  if (isDisabled.value === true) {
+    return
+  }
   if (requiredToolList.value.includes(idx)) {
     if (toolList.value[idx].selected === false) {
       if (requiredToolList.value.length === 1) {
@@ -90,11 +94,23 @@ function onClickToolItem(idx) {
       } else if (!props.currentStepInfo.hasToolOrder) {
         toolList.value[idx].selected = true
         showToast('选择正确')
+        if (props.currentStepInfo.needWait) {
+          isDisabled.value = true
+          setTimeout(() => {
+            isDisabled.value = false
+          }, 1000)
+        }
       } else {
         const toolIdxInRequiredToolList = requiredToolList.value.indexOf(idx)
         if (toolIdxInRequiredToolList === 0) {
           toolList.value[idx].selected = true
           showToast('选择正确')
+          if (props.currentStepInfo.needWait) {
+            isDisabled.value = true
+            setTimeout(() => {
+              isDisabled.value = false
+            }, 1000)
+          }
         } else {
           for (let i = 0; i < toolIdxInRequiredToolList; i++) {
             const preToolIdxInToolList = requiredToolList.value[i]
@@ -104,6 +120,12 @@ function onClickToolItem(idx) {
             }
             toolList.value[idx].selected = true
             showToast('选择正确')
+            if (props.currentStepInfo.needWait) {
+              isDisabled.value = true
+              setTimeout(() => {
+                isDisabled.value = false
+              }, 1000)
+            }
           }
         }
       }

+ 5 - 0
src/config.js

@@ -1,3 +1,5 @@
+// hasToolOrder: 一个步骤中,使用多个工具时,是否有顺序限制
+// needWait:一个步骤中,使用多个工具时,选中了一个工具后,是否要等一下(比如,等待这个工具使用完毕)才允许选择下一个工具
 export default {
   stepList: [
     {
@@ -8,6 +10,7 @@ export default {
       name: '将线稿复写至胶板上',
       toolIdxList: [5, 6],
       hasToolOrder: false,
+      needWait: false,
     },
     {
       name: '雕刻胶版',
@@ -17,11 +20,13 @@ export default {
       name: '用滚筒将颜料铺平',
       toolIdxList: [2, 3],
       hasToolOrder: true,
+      needWait: true,
     },
     {
       name: '蒙上版画纸,用木蘑菇压实',
       toolIdxList: [7, 4],
       hasToolOrder: true,
+      needWait: false,
     },
     {
       name: '完成转印',