From 7b60f24e07f54634503e5b37e6ca5f85d4ad743f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 07 八月 2026 15:41:39 +0800
Subject: [PATCH] 天津_建诚恒商贸 1.备件管理-新增独立备件出库功能入口,支持直接完成备件领用出库操作。 2.设备保养-支持按日期分组折叠展示,分组条目可展开查看明细;单条明细行末尾增加【保养完成】操作按钮,可单独办结单条保养任务;折叠汇总状态下,新增【一键保养完成】批量操作按钮,快速办结当前分组全部保养项。 3.设备巡检-按日期分组折叠展示,分组支持展开查看明细;每条巡检明细后增设【巡检完成】按钮,支持单独办结单条巡检记录;分组折叠未展开状态下,提供【一键巡检完成】批量操作,统一办结该分组下所有巡检任务。 4.增值税对比-优化数据展示逻辑,列表展示各订单增值税明细;页面右侧新增柱状可视化图表,直观对比进销项增值税数据。 5.管理驾驶舱-指标修改:将顶部「销售产品数」调整为「销售订单数」;时间筛选:页面左上角新增日期范围下拉筛选控件,所有统计指标标注当前筛选时段;

---
 src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalTemplateBindDialog.vue |   40 +++++++++++++++++++++++++++++-----------
 1 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalTemplateBindDialog.vue b/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalTemplateBindDialog.vue
index c05374d..409dd41 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalTemplateBindDialog.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalTemplateBindDialog.vue
@@ -14,17 +14,18 @@
     :title="dialogTitle"
     :width="step === formStep ? 720 : 640"
     append-to-body
-    destroy-on-close
     class="approval-template-bind-dialog"
     @closed="onClosed"
   >
     <template v-if="step === 1">
-      <ApprovalTemplatePicker
-        :cards="templateCards"
-        :loading="templatesLoading"
-        :hint="pickerHint"
-        @pick="onPickTemplate"
-      />
+      <div v-loading="templatesLoading || confirming">
+        <ApprovalTemplatePicker
+          :cards="templateCards"
+          :loading="false"
+          :hint="pickerHint"
+          @pick="onPickTemplate"
+        />
+      </div>
     </template>
 
     <template v-else>
@@ -73,9 +74,11 @@
   visible: { type: Boolean, default: false },
   /** approvalModuleRegistry 涓殑 moduleKey */
   moduleKey: { type: String, required: true },
+  /** 涓� true 鏃堕�夋ā鏉垮悗鐩存帴纭锛岃烦杩囥�岀‘璁ゅ鎵逛俊鎭�嶅~鎶ユ楠� */
+  skipFormConfirm: { type: Boolean, default: false },
 });
 
-const emit = defineEmits(["update:visible", "confirm"]);
+const emit = defineEmits(["update:visible", "confirm", "closed"]);
 
 const dialogVisible = computed({
   get: () => props.visible,
@@ -122,19 +125,33 @@
     step.value = 1;
     await Promise.all([loadTemplates(), loadFlowUsers()]);
     const cfg = getApprovalModuleConfig(props.moduleKey);
-    if (!cfg) ElMessage.warning(`鏈厤缃ā鍧椼��${props.moduleKey}銆嶏紝璇锋鏌� approvalModuleRegistry`);
+    if (!cfg) {
+      ElMessage.warning(`鏈厤缃ā鍧椼��${props.moduleKey}銆嶏紝璇锋鏌� approvalModuleRegistry`);
+      return;
+    }
+    if (!templateCards.value.length) {
+      ElMessage.warning(
+        `銆�${cfg.label}銆嶄笅鏆傛棤宸插惎鐢ㄧ殑瀹℃壒妯℃澘锛岃鍏堝湪瀹℃壒妯℃澘绠$悊涓垱寤哄苟鍚敤瀵瑰簲绫诲瀷鐨勬ā鏉縛
+      );
+    }
   }
 );
 
 async function onPickTemplate(card) {
   const ok = await pickTemplate(card);
-  if (ok) step.value = formStep;
+  if (!ok) return;
+  if (props.skipFormConfirm) {
+    step.value = 1;
+    await onConfirm();
+    return;
+  }
+  step.value = formStep;
 }
 
 async function onConfirm() {
   confirming.value = true;
   try {
-    const check = await validateBinding(formRef.value);
+    const check = await validateBinding(props.skipFormConfirm ? null : formRef.value);
     if (!check.ok) {
       if (check.message) ElMessage.warning(check.message);
       return;
@@ -148,6 +165,7 @@
 
 function onClosed() {
   resetBinding();
+  emit("closed");
 }
 </script>
 

--
Gitblit v1.9.3