From b186f5b20c4f83773f51786da0cd3e85130540c2 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 22 五月 2026 16:32:01 +0800
Subject: [PATCH] feat(审批模板): 增强审批流程编辑器功能,新增只读模式——为 TemplateFlowEditor 添加了只读属性,以在流程不可编辑时防止进行修改。——更新审批模板表单部分,使其能够根据 flowEditable 状态条件性地显示可编辑选项。——优化了用户反馈机制,通过动态消息显示审批流程是否可进行修改。
---
src/views/officeProcessAutomation/ApproveManage/approve-shared/useApprovalTemplateBinding.js | 38 ++++++++++++++++++++++++++++++++++----
1 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-shared/useApprovalTemplateBinding.js b/src/views/officeProcessAutomation/ApproveManage/approve-shared/useApprovalTemplateBinding.js
index de056d2..d49ec53 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-shared/useApprovalTemplateBinding.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-shared/useApprovalTemplateBinding.js
@@ -17,6 +17,7 @@
} from "../approve-list/approveListConstants.js";
import {
getApprovalModuleConfig,
+ getModuleMatchingBusinessTypes,
resolveModuleBusinessType,
} from "./approvalModuleRegistry.js";
import {
@@ -60,10 +61,29 @@
return "";
});
+ const matchingBusinessTypes = computed(() => {
+ if (fixedBusinessType != null && fixedBusinessType !== "") return [fixedBusinessType];
+ if (isUniversal) {
+ const t = selectedBusinessType.value;
+ return t != null && t !== "" ? [t] : [];
+ }
+ if (moduleKey) {
+ return getModuleMatchingBusinessTypes(moduleKey, businessTypeOptions.value);
+ }
+ const t = resolvedBusinessType.value;
+ return t != null && t !== "" ? [t] : [];
+ });
+
const templateCards = computed(() => {
- const type = resolvedBusinessType.value;
- if (type == null || type === "") return [];
- return allTemplates.value.filter((card) => matchBusinessTypeValue(card.businessType, type));
+ const types = matchingBusinessTypes.value;
+ if (!types.length) return [];
+ return allTemplates.value.filter((card) =>
+ types.some(
+ (t) =>
+ matchBusinessTypeValue(card.businessType, t) ||
+ matchBusinessTypeValue(card.approvalType, t)
+ )
+ );
});
const activeTemplate = computed(() => bindingForm.templateSnapshot || null);
@@ -87,7 +107,17 @@
const selectedBusinessTypeLabel = computed(() => businessTypeLabel(resolvedBusinessType.value));
function countTemplatesByBusinessType(type) {
- return allTemplates.value.filter((card) => matchBusinessTypeValue(card.businessType, type)).length;
+ const types =
+ moduleKey && !fixedBusinessType
+ ? getModuleMatchingBusinessTypes(moduleKey, businessTypeOptions.value)
+ : [type];
+ return allTemplates.value.filter((card) =>
+ types.some(
+ (t) =>
+ matchBusinessTypeValue(card.businessType, t) ||
+ matchBusinessTypeValue(card.approvalType, t)
+ )
+ ).length;
}
async function loadTemplates() {
--
Gitblit v1.9.3