From 6689bfb1c2f0638e8493adfa058d57d86e473eac Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 19 五月 2026 17:21:10 +0800
Subject: [PATCH] 审批列表得提交审批根据模板类型区分

---
 src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js |   51 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
index 3325e55..517e01c 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -1,8 +1,6 @@
 import dayjs from "dayjs";
-import {
-  TEMPLATE_TYPE_CUSTOM,
-  TEMPLATE_TYPE_OPTIONS,
-} from "@/api/officeProcessAutomation/approvalTemplate.js";
+import { getTypeEnums } from "@/api/basicData/enum.js";
+import { TEMPLATE_TYPE_CUSTOM } from "@/api/officeProcessAutomation/approvalTemplate.js";
 import { APPROVAL_TYPE_OPTIONS } from "../approve-list/approveListConstants.js";
 import {
   buildFormConfigJson,
@@ -11,12 +9,39 @@
   validateFormConfigData,
 } from "./formConfigUtils.js";
 
-export { TEMPLATE_TYPE_OPTIONS };
+export function unwrapEnumList(data) {
+  if (Array.isArray(data)) return data;
+  if (!data || typeof data !== "object") return [];
+  if (Array.isArray(data.TypeEnums)) return data.TypeEnums;
+  if (Array.isArray(data.typeEnums)) return data.typeEnums;
+  const nested = Object.values(data).find((v) => Array.isArray(v));
+  return nested || [];
+}
 
-export function templateTypeLabel(type) {
-  if (type == null || type === "") return "鈥�";
-  const n = Number(type);
-  return TEMPLATE_TYPE_OPTIONS.find((x) => x.value === n)?.label || "鈥�";
+export function normalizeBusinessTypeOptions(data) {
+  return unwrapEnumList(data)
+    .map((item) => {
+      const rawValue = item?.value ?? item?.code ?? item?.businessType ?? item?.dictValue ?? item?.key;
+      if (rawValue == null || rawValue === "") return null;
+      const num = Number(rawValue);
+      const value =
+        typeof rawValue === "number" || (Number.isFinite(num) && String(rawValue).trim() !== "")
+          ? num
+          : rawValue;
+      const label =
+        item?.label ?? item?.name ?? item?.desc ?? item?.dictLabel ?? item?.text ?? String(value);
+      return { label, value };
+    })
+    .filter(Boolean);
+}
+
+export async function fetchBusinessTypeOptions() {
+  try {
+    const res = await getTypeEnums();
+    return normalizeBusinessTypeOptions(res?.data);
+  } catch {
+    return [];
+  }
 }
 
 /** 鑺傜偣鍐呭鎵规柟寮忥細浼氱 / 鎴栫 */
@@ -165,6 +190,7 @@
     enabled: mapEnabledFromApi(row.enabled),
     enabledRaw: row.enabled,
     templateType: row.templateType != null ? Number(row.templateType) : undefined,
+    businessType: row.businessType ?? "",
     formConfig: row.formConfig,
     formConfigData: parseFormConfigToData(row.formConfig),
     createdUser: row.createdUser,
@@ -183,7 +209,8 @@
     templateName: (form.templateName || "").trim(),
     description: (form.description || "").trim(),
     enabled: mapEnabledToApi(form.enabled),
-    templateType: form.templateType ?? TEMPLATE_TYPE_CUSTOM,
+    templateType: TEMPLATE_TYPE_CUSTOM,
+    businessType: form.businessType ?? "",
     formConfig: buildFormConfigJson(form.formConfigData),
     nodes: nodes.map((n, i) => {
       const node = {
@@ -248,6 +275,7 @@
     templateName: "",
     description: "",
     templateType: TEMPLATE_TYPE_CUSTOM,
+    businessType: "",
     formConfig: "",
     formConfigData: createEmptyFormConfigData(),
     enabled: true,
@@ -277,6 +305,9 @@
 export function validateTemplateForm(form) {
   const name = (form.templateName || "").trim();
   if (!name) return { ok: false, message: "璇峰~鍐欐ā鏉垮悕绉�" };
+  if (form.businessType == null || form.businessType === "") {
+    return { ok: false, message: "璇烽�夋嫨妯℃澘绫诲瀷" };
+  }
   const nodes = normalizeFlowNodes(form.flowNodes);
   if (!nodes.length) return { ok: false, message: "璇疯嚦灏戦厤缃竴涓鎵硅妭鐐�" };
   for (let i = 0; i < nodes.length; i++) {

--
Gitblit v1.9.3