From aaa700a2efc44c2f633f2c83885bc67ddcbcd770 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期三, 23 九月 2026 09:10:36 +0800
Subject: [PATCH] feat: 台账品名/材质/规格手工录入与产品编号选填、审批模板启用锁定编辑

---
 src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
index 61aa6c0..4f223c5 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
@@ -56,13 +56,20 @@
   const page = reactive({ current: 1, size: 10, total: 0 });
   const tableData = ref([]);
 
-  const formDialog = reactive({ visible: false, title: "", mode: "add" });
+  const formDialog = reactive({ visible: false, title: "", mode: "add", originEnabled: false });
   const form = reactive(createEmptyTemplateForm());
   const formRef = ref();
 
   const isEditingBuiltin = computed(
     () => formDialog.mode === "edit" && Number(form.templateType) === TEMPLATE_TYPE_BUILTIN
   );
+
+  // 缂栬緫鍚敤涓殑妯℃澘鏃跺彧鑳芥敼鍚敤鐘舵�侊紝鍏朵粬椤瑰彧璇伙紙闇�鍏堝仠鐢ㄥ啀缂栬緫锛�
+  const isEditingEnabled = computed(
+    () => formDialog.mode === "edit" && formDialog.originEnabled === true
+  );
+
+  const isEditFormLocked = computed(() => isEditingBuiltin.value || isEditingEnabled.value);
 
   async function loadTemplateTypeOptions() {
     try {
@@ -214,10 +221,22 @@
     });
   }
 
-  function openFormDialog(mode, row) {
+  async function openFormDialog(mode, row) {
     formDialog.mode = mode;
     formDialog.title = mode === "add" ? "鏂板缓瀹℃壒妯℃澘" : "缂栬緫瀹℃壒妯℃澘";
-    resetForm(mode === "edit" ? row : null);
+    if (mode === "edit" && row?.id) {
+      // 缂栬緫鏃跺厛鏌ヨ璇︽儏鑾峰彇瀹屾暣鏁版嵁锛堝寘鍚檮浠讹級
+      try {
+        const res = await getApprovalTemplateDetail(row.id);
+        const detailData = mapTemplateFromApi(unwrapTemplateDetail(res));
+        resetForm(detailData);
+      } catch {
+        resetForm(row);
+      }
+    } else {
+      resetForm(mode === "edit" ? row : null);
+    }
+    formDialog.originEnabled = mode === "edit" && form.enabled !== false;
     formDialog.visible = true;
   }
 
@@ -321,6 +340,7 @@
     formRef,
     formRules,
     isEditingBuiltin,
+    isEditFormLocked,
     detailDialog,
     detailRow,
     detailLoading,

--
Gitblit v1.9.3