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