Просмотр исходного кода

feat: 更新作业票详情页面,默认选中「作业票信息」tab,移除自动切换逻辑

xieyong 3 дней назад
Родитель
Сommit
c922d35582

+ 3 - 7
scripts/check-blind-plate-work-flow-nodes.js

@@ -212,13 +212,9 @@ check(
   ) && /BlindPlateFlow/.test(detailSrc())
 );
 check(
-  'detail.vue 的自动切 tab 在当前环节识别完成之后执行(未被破坏)',
-  /loadCurrentNode\(\)\.then\(\(\) => \{[\s\S]{0,120}switchToFlowTab\(\)/.test(
-    detailSrc()
-  ) &&
-    /await this\.loadCurrentNode\(\);[\s\S]{0,120}switchToFlowTab\(\)/.test(
-      detailSrc()
-    )
+  'detail.vue 的默认 tab 是「作业票信息」(不再自动切到「后续环节」)',
+  /activeTab:\s*'info'/.test(detailSrc()) &&
+    !/switchToFlowTab/.test(detailSrc())
 );
 
 console.log(

+ 3 - 7
scripts/check-break-ground-work-flow-nodes.js

@@ -194,13 +194,9 @@ check(
     /validateBreakGroundNodeForm\(\)/.test(detailDiff)
 );
 check(
-  'detail.vue 的自动切 tab 在当前环节识别完成之后执行(未被破坏)',
-  /loadCurrentNode\(\)\.then\(\(\) => \{[\s\S]{0,120}switchToFlowTab\(\)/.test(
-    detailSrc()
-  ) &&
-    /await this\.loadCurrentNode\(\);[\s\S]{0,120}switchToFlowTab\(\)/.test(
-      detailSrc()
-    )
+  'detail.vue 的默认 tab 是「作业票信息」(不再自动切到「后续环节」)',
+  /activeTab:\s*'info'/.test(detailSrc()) &&
+    !/switchToFlowTab/.test(detailSrc())
 );
 
 /**

+ 3 - 7
scripts/check-break-road-work-flow-nodes.js

@@ -209,13 +209,9 @@ check(
   ) && /BreakRoadFlow/.test(detailSrc())
 );
 check(
-  'detail.vue 的自动切 tab 在当前环节识别完成之后执行(未被破坏)',
-  /loadCurrentNode\(\)\.then\(\(\) => \{[\s\S]{0,120}switchToFlowTab\(\)/.test(
-    detailSrc()
-  ) &&
-    /await this\.loadCurrentNode\(\);[\s\S]{0,120}switchToFlowTab\(\)/.test(
-      detailSrc()
-    )
+  'detail.vue 的默认 tab 是「作业票信息」(不再自动切到「后续环节」)',
+  /activeTab:\s*'info'/.test(detailSrc()) &&
+    !/switchToFlowTab/.test(detailSrc())
 );
 
 console.log(

+ 3 - 7
scripts/check-electricity-work-flow-nodes.js

@@ -563,13 +563,9 @@ check(
   )
 );
 check(
-  'detail.vue:自动切 tab 在当前环节识别完成之后执行',
-  /loadCurrentNode\(\)\.then\(\(\) => \{[\s\S]{0,120}switchToFlowTab\(\)/.test(
-    detailSrc
-  ) &&
-    /await this\.loadCurrentNode\(\);[\s\S]{0,120}switchToFlowTab\(\)/.test(
-      detailSrc
-    )
+  'detail.vue:默认 tab 是「作业票信息」(不再自动切到「后续环节」)',
+  /activeTab:\s*'info'/.test(detailSrc) &&
+    !/switchToFlowTab/.test(detailSrc)
 );
 
 console.log('\n' + (failed ? 'FAILED: ' + failed + ' 项' : 'ALL PASSED'));

+ 3 - 7
scripts/check-height-work-flow-nodes.js

@@ -472,13 +472,9 @@ check(
     /isHeightWork[\s\S]{0,200}saveHeight/.test(detailSrc)
 );
 check(
-  'detail.vue:自动切 tab 在当前环节识别完成之后执行',
-  /loadCurrentNode\(\)\.then\(\(\) => \{[\s\S]{0,120}switchToFlowTab\(\)/.test(
-    detailSrc
-  ) &&
-    /await this\.loadCurrentNode\(\);[\s\S]{0,120}switchToFlowTab\(\)/.test(
-      detailSrc
-    )
+  'detail.vue:默认 tab 是「作业票信息」(不再自动切到「后续环节」)',
+  /activeTab:\s*'info'/.test(detailSrc) &&
+    !/switchToFlowTab/.test(detailSrc)
 );
 // 受限空间组件只做只读体检,不参与断言(既有实现不做任何改动)
 const confinedSfc = compiler.parseComponent(

+ 3 - 7
scripts/check-hoisting-work-flow-nodes.js

@@ -526,13 +526,9 @@ check(
   )
 );
 check(
-  'detail.vue:自动切 tab 在当前环节识别完成之后执行',
-  /loadCurrentNode\(\)\.then\(\(\) => \{[\s\S]{0,120}switchToFlowTab\(\)/.test(
-    detailSrc
-  ) &&
-    /await this\.loadCurrentNode\(\);[\s\S]{0,120}switchToFlowTab\(\)/.test(
-      detailSrc
-    )
+  'detail.vue:默认 tab 是「作业票信息」(不再自动切到「后续环节」)',
+  /activeTab:\s*'info'/.test(detailSrc) &&
+    !/switchToFlowTab/.test(detailSrc)
 );
 // 受限空间、高处作业组件只做只读体检,不参与断言(既有实现不做任何改动)
 ['components/confinedSpaceFlow.vue', 'components/heightFlow.vue'].forEach(

+ 6 - 51
src/views/bpm/handleTask/components/dangerousWorkTicket/detail.vue

@@ -5,7 +5,7 @@
     所属危险作业 / 作业类型 / 申请单位 / 申请人 / 作业地点
     / 作业开始时间 / 作业结束时间 / 作业票模板 / 作业票内容 / 备注
   作业票内容按 EHS 内置作业票模板渲染(不同作业类型套用不同模板);
-  页面用 tab 区分「作业票信息」与「后续环节」(tab 栏在上方);
+  页面用 tab 区分「作业票信息」与「后续环节」(tab 栏在上方),默认选中「作业票信息」;
   动火、受限空间、高处作业、吊装作业、临时用电作业、动土作业、断路作业、盲板抽堵作业八类作业共用本页面与 submit.vue,按作业类型分发到各自的组件:
     动火作业   fireFlowNodes.js + components/fireTicketDetail.vue + components/flowNodeForm.vue
     受限空间   confinedSpaceFlowNodes.js + components/confinedSpaceFlow.vue
@@ -426,7 +426,7 @@
     data() {
       return {
         loading: false,
-        // 当前 tab:info-作业票信息、flow-后续环节
+        // 当前 tab:info-作业票信息(默认)、flow-后续环节
         activeTab: 'info',
         // 作业票
         ticket: {},
@@ -707,14 +707,10 @@
           }
         }
       },
-      // 处理节点落在后续环节时,默认切到「后续环节」tab
-      // 必须在当前环节识别完成之后再切:
-      // 任务名称要等流程待办接口返回后才知道,
-      // 提前判断拿到的是空任务名称,按名称匹配的流程就切不过去
+      // 任务定义 key 变化时重新识别当前处理环节并回显其内容
+      // 只回显,不切换 tab:页面默认停在「作业票信息」
       taskDefinitionKey() {
-        this.loadCurrentNode().then(() => {
-          this.switchToFlowTab();
-        });
+        this.loadCurrentNode();
       }
     },
     methods: {
@@ -744,10 +740,8 @@
           }
           // 后续环节(风险辨识、安全措施落实、各环节意见等)取流程变量
           await this.loadVariables();
-          // 识别当前处理环节并回显
+          // 识别当前处理环节并回显(只回显内容,不切换 tab)
           await this.loadCurrentNode();
-          // 当前处理环节落在后续环节时,自动切到「后续环节」tab
-          this.switchToFlowTab();
         } catch (e) {
           this.$message.error(e?.message || '查询作业票详情失败');
         } finally {
@@ -806,45 +800,6 @@
         // 环节数据统一存放在作业票内容(extensionJson)里,流程变量仅作兼容兜底
         this.nodeForm = loadNodeValues(node, [this.extension, this.variables]);
       },
-      /**
-       * 切到当前处理环节对应的「后续环节」tab
-       *
-       * 必须在当前环节识别完成之后调用:任务名称要等流程待办接口返回后才知道,
-       * 提前判断拿到的是空任务名称,按任务名称匹配的流程就切不过去。
-       */
-      switchToFlowTab() {
-        if (this.currentFireNode) {
-          this.activeTab = 'flow';
-          return;
-        }
-        if (this.currentConfinedNode) {
-          this.activeTab = 'flowConfined';
-          return;
-        }
-        if (this.currentHeightNode) {
-          this.activeTab = 'flowHeight';
-          return;
-        }
-        if (this.currentHoistingNode) {
-          this.activeTab = 'flowHoisting';
-          return;
-        }
-        if (this.currentElectricityNode) {
-          this.activeTab = 'flowElectricity';
-          return;
-        }
-        if (this.currentBreakGroundNode) {
-          this.activeTab = 'flowBreakGround';
-          return;
-        }
-        if (this.currentBreakRoadNode) {
-          this.activeTab = 'flowBreakRoad';
-          return;
-        }
-        if (this.currentBlindPlateNode) {
-          this.activeTab = 'flowBlindPlate';
-        }
-      },
       // 环节填写值变化
       handleNodeInput(val) {
         this.nodeForm = val;