From 9f3bc47b98cbc51df7cfcea94d4aa0c35f40cbc5 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 13 十月 2026 14:09:06 +0800
Subject: [PATCH] feat: 添加数字格式化工具,支持去掉小数末尾多余的 0 和四舍五入功能
---
src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js | 49 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 38 insertions(+), 11 deletions(-)
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
index 4d7d7a6..f41127f 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -1,6 +1,9 @@
import dayjs from "dayjs";
import { getTypeEnums } from "@/api/basicData/enum.js";
-import { TEMPLATE_TYPE_CUSTOM } from "@/api/officeProcessAutomation/approvalTemplate.js";
+import {
+ TEMPLATE_TYPE_BUILTIN,
+ TEMPLATE_TYPE_CUSTOM,
+} from "@/api/officeProcessAutomation/approvalTemplate.js";
import { APPROVAL_TYPE_OPTIONS } from "../approve-list/approveListConstants.js";
import {
buildFormConfigJson,
@@ -42,6 +45,11 @@
} catch {
return [];
}
+}
+
+/** 鏄惁涓虹郴缁熷唴缃ā鏉匡紙templateType === 0锛� */
+export function isBuiltinTemplate(row) {
+ return Number(row?.templateType) === TEMPLATE_TYPE_BUILTIN;
}
/** 鑺傜偣鍐呭鎵规柟寮忥細浼氱 / 鎴栫 */
@@ -151,16 +159,18 @@
if (val == null || val === "") return "";
if (Array.isArray(val) && val.length >= 3) {
const [y, m, d, h = 0, min = 0, s = 0] = val;
- return dayjs(new Date(y, m - 1, d, h, min, s)).format("YYYY-MM-DD HH:mm:ss");
+ // return dayjs(new Date(y, m - 1, d, h, min, s)).format("YYYY-MM-DD HH:mm:ss");
+ return dayjs(new Date(y, m - 1, d, h, min, s)).format("YYYY-MM-DD");
+
}
if (typeof val === "number") {
const d = val > 1e12 ? dayjs(val) : dayjs.unix(val);
- return d.isValid() ? d.format("YYYY-MM-DD HH:mm:ss") : "";
+ return d.isValid() ? d.format("YYYY-MM-DD") : "";
}
const s = String(val).trim();
if (!s) return "";
const parsed = dayjs(s.includes("T") ? s : s.replace(/-/g, "/"));
- return parsed.isValid() ? parsed.format("YYYY-MM-DD HH:mm:ss") : s;
+ return parsed.isValid() ? parsed.format("YYYY-MM-DD") : s;
}
export function formatDisplayTime(val) {
@@ -222,7 +232,8 @@
templateName: (form.templateName || "").trim(),
description: (form.description || "").trim(),
enabled: mapEnabledToApi(form.enabled),
- templateType: TEMPLATE_TYPE_CUSTOM,
+ templateType:
+ form.templateType != null ? Number(form.templateType) : TEMPLATE_TYPE_CUSTOM,
businessType: form.businessType ?? "",
formConfig: buildFormConfigJson(form.formConfigData),
nodes: nodes.map((n, i) => {
@@ -254,13 +265,10 @@
return dto;
}
-export function buildApprovalTemplateListParams({ page, searchForm, templateType = TEMPLATE_TYPE_CUSTOM }) {
+export function buildApprovalTemplateListParams({ page, searchForm }) {
const params = {
current: page.current,
size: page.size,
- templateType: searchForm?.templateType != null && searchForm.templateType !== ""
- ? searchForm.templateType
- : templateType,
};
const kw = (searchForm?.keyword || "").trim();
if (kw) params.templateName = kw;
@@ -290,6 +298,7 @@
templateName: "",
description: "",
templateType: TEMPLATE_TYPE_CUSTOM,
+ lockedFormFieldUids: [],
businessType: "",
formConfig: "",
formConfigData: createEmptyFormConfigData(),
@@ -336,13 +345,31 @@
return { ok: true, nodes, name };
}
-export function flowNodesSummary(nodes) {
+/** 鑺傜偣灞傜骇涓枃搴忓彿锛氫竴绾� / 浜岀骇 / 鈥� */
+const LEVEL_TEXT = ["涓�绾�", "浜岀骇", "涓夌骇", "鍥涚骇", "浜旂骇", "鍏骇", "涓冪骇", "鍏骇", "涔濈骇", "鍗佺骇"];
+
+export function nodeLevelText(index) {
+ return LEVEL_TEXT[index] || `绗�${index + 1}绾;
+}
+
+/**
+ * 瀹℃壒鑺傜偣鍚嶇О锛氭寜銆屽鎵圭被鍨� + 灞傜骇銆嶅懡鍚嶏紝渚嬪銆屽彂璐у鎵孤蜂竴绾с�嶃��
+ * @param {string} typeName 瀹℃壒绫诲瀷/妯℃澘鍚嶇О锛屽銆屽彂璐у鎵广��
+ * @param {number} index 0 鍩鸿妭鐐瑰簭鍙�
+ */
+export function nodeDisplayName(typeName, index) {
+ const level = nodeLevelText(index);
+ const type = (typeName || "").trim();
+ return type ? `${type}路${level}` : level;
+}
+
+export function flowNodesSummary(nodes, typeName = "") {
const list = normalizeFlowNodes(nodes);
if (!list.length) return "鈥�";
return list
.map((n, i) => {
const names = n.approvers.map((a) => a.approverName || "鏈懡鍚�").join("銆�") || "鏈厤缃�";
- return `鑺傜偣${i + 1}(${nodeSignModeLabel(n.signMode)}:${names})`;
+ return `${nodeDisplayName(typeName, i)}(${nodeSignModeLabel(n.signMode)}:${names})`;
})
.join(" 鈫� ");
}
--
Gitblit v1.9.3