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 |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
index 3b5fb21..517e01c 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -1,4 +1,5 @@
 import dayjs from "dayjs";
+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 {
@@ -8,6 +9,41 @@
   validateFormConfigData,
 } from "./formConfigUtils.js";
 
+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 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 [];
+  }
+}
+
 /** 鑺傜偣鍐呭鎵规柟寮忥細浼氱 / 鎴栫 */
 export const NODE_SIGN_MODE_OPTIONS = [
   { value: "countersign", label: "浼氱", desc: "鏈妭鐐规墍鏈夊鎵逛汉鍧囬渶閫氳繃" },

--
Gitblit v1.9.3