From ceafabaff25616eb6837f02c5edc2cc868616339 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期一, 12 十月 2026 16:56:30 +0800
Subject: [PATCH] fix: 更新分页参数名称以保持组件间的一致性
---
src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue | 4
src/views/financialManagement/receivable/receipt.vue | 6 +-
src/views/financialManagement/receivable/invoiceApply.vue | 6 +-
src/views/financialManagement/assets/fixedAssets.vue | 6 +-
src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js | 11 ++-
src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js | 5 -
src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js | 22 ++++++
src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js | 2
src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js | 2
src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js | 10 +++
src/views/officeProcessAutomation/ApproveManage/approve-list/components/InstanceFlowDisplay.vue | 6 +
src/views/financialManagement/assets/intangibleAssets.vue | 6 +-
src/views/financialManagement/receivable/reconciliation.vue | 6 +-
src/views/financialManagement/receivable/outputInvoice.vue | 6 +-
src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalInstanceDetailDialog.vue | 8 +-
src/views/officeProcessAutomation/ApproveManage/approve-template/components/TemplateFlowEditor.vue | 11 ++-
src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue | 6 +
17 files changed, 81 insertions(+), 42 deletions(-)
diff --git a/src/views/financialManagement/assets/fixedAssets.vue b/src/views/financialManagement/assets/fixedAssets.vue
index 95eb017..dbe4f05 100644
--- a/src/views/financialManagement/assets/fixedAssets.vue
+++ b/src/views/financialManagement/assets/fixedAssets.vue
@@ -365,9 +365,9 @@
getTableData();
};
-const changePage = ({ current, size }) => {
- pagination.currentPage = current;
- pagination.pageSize = size;
+const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
getTableData();
};
diff --git a/src/views/financialManagement/assets/intangibleAssets.vue b/src/views/financialManagement/assets/intangibleAssets.vue
index b2c13b1..d551094 100644
--- a/src/views/financialManagement/assets/intangibleAssets.vue
+++ b/src/views/financialManagement/assets/intangibleAssets.vue
@@ -364,9 +364,9 @@
getTableData();
};
-const changePage = ({ current, size }) => {
- pagination.currentPage = current;
- pagination.pageSize = size;
+const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
getTableData();
};
diff --git a/src/views/financialManagement/receivable/invoiceApply.vue b/src/views/financialManagement/receivable/invoiceApply.vue
index 21b5f0e..287d770 100644
--- a/src/views/financialManagement/receivable/invoiceApply.vue
+++ b/src/views/financialManagement/receivable/invoiceApply.vue
@@ -729,9 +729,9 @@
getTableData();
};
-const changePage = ({ current, size }) => {
- pagination.currentPage = current;
- pagination.pageSize = size;
+const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
getTableData();
};
diff --git a/src/views/financialManagement/receivable/outputInvoice.vue b/src/views/financialManagement/receivable/outputInvoice.vue
index 22cc202..97621aa 100644
--- a/src/views/financialManagement/receivable/outputInvoice.vue
+++ b/src/views/financialManagement/receivable/outputInvoice.vue
@@ -498,9 +498,9 @@
getTableData();
};
-const changePage = ({ current, size }) => {
- pagination.currentPage = current;
- pagination.pageSize = size;
+const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
getTableData();
};
diff --git a/src/views/financialManagement/receivable/receipt.vue b/src/views/financialManagement/receivable/receipt.vue
index ae7a763..cb0e8a2 100644
--- a/src/views/financialManagement/receivable/receipt.vue
+++ b/src/views/financialManagement/receivable/receipt.vue
@@ -756,9 +756,9 @@
getTableData();
};
- const changePage = ({ current, size }) => {
- pagination.currentPage = current;
- pagination.pageSize = size;
+ const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
getTableData();
};
diff --git a/src/views/financialManagement/receivable/reconciliation.vue b/src/views/financialManagement/receivable/reconciliation.vue
index 03400ef..4a9b6e1 100644
--- a/src/views/financialManagement/receivable/reconciliation.vue
+++ b/src/views/financialManagement/receivable/reconciliation.vue
@@ -450,9 +450,9 @@
getTableData();
};
-const changePage = ({ current, size }) => {
- pagination.currentPage = current;
- pagination.pageSize = size;
+const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
getTableData();
};
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
index 6d6aecf..5edaec8 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
@@ -136,11 +136,21 @@
/** 瀹℃壒璁板綍 approveAction 鈫� 椤甸潰 result */
export function mapRecordResultFromApi(action) {
const s = String(action || "").toUpperCase();
+ // 鍙戣捣鐢宠锛氱敵璇蜂汉鏄湰浜猴紝涓嶆槸瀹℃壒鍔ㄤ綔锛屽崟鐙爣璇嗭紝閬垮厤鏄剧ず鎴愩�屽緟澶勭悊銆�
+ if (s === "SUBMIT" || s === "SUBMITTED" || s === "CREATE") return "submitted";
if (s === "APPROVED" || s === "APPROVE" || s === "PASS") return "approved";
if (s === "REJECTED" || s === "REJECT" || s === "REFUSE") return "rejected";
return "pending";
}
+/** 瀹℃壒璁板綍 result 鈫� 鏂囨 */
+export function approvalRecordResultLabel(result) {
+ if (result === "submitted") return "鐢宠";
+ if (result === "approved") return "閫氳繃";
+ if (result === "rejected") return "椹冲洖";
+ return "寰呭鐞�";
+}
+
/** 鍚庣 records 鈫� 鏃堕棿绾垮睍绀虹粨鏋� */
export function mapRecordsFromApi(records) {
const list = Array.isArray(records) ? records : [];
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/components/InstanceFlowDisplay.vue b/src/views/officeProcessAutomation/ApproveManage/approve-list/components/InstanceFlowDisplay.vue
index e5f2eef..d8e83e7 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/components/InstanceFlowDisplay.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/components/InstanceFlowDisplay.vue
@@ -11,7 +11,7 @@
<div class="flow-step-badge">{{ index + 1 }}</div>
<div class="flow-step-main">
<div class="flow-step-head">
- <span class="flow-step-name">鑺傜偣 {{ index + 1 }}</span>
+ <span class="flow-step-name">{{ nodeDisplayName(props.typeName, index) }}</span>
<el-tag size="small" :type="node.signMode === 'or_sign' ? 'warning' : 'primary'" effect="plain">
{{ nodeSignModeLabel(node.signMode) }}
</el-tag>
@@ -47,7 +47,7 @@
<script setup>
import { computed } from "vue";
import { ArrowRight } from "@element-plus/icons-vue";
-import { nodeSignModeLabel } from "../../approve-template/approveTemplateConstants.js";
+import { nodeDisplayName, nodeSignModeLabel } from "../../approve-template/approveTemplateConstants.js";
import {
mapTaskStatusLabel,
mapTaskStatusTagType,
@@ -57,6 +57,8 @@
const props = defineProps({
tasks: { type: Array, default: () => [] },
nodes: { type: Array, default: () => [] },
+ /** 瀹℃壒绫诲瀷/妯℃澘鍚嶇О锛岀敤浜庢嫾鑺傜偣鍚嶏紙濡傘�屽彂璐у鎵孤蜂竴绾с�嶏級 */
+ typeName: { type: String, default: "" },
});
const displayNodes = computed(() => {
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue b/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
index 1ecf8ac..b945419 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
@@ -177,7 +177,7 @@
<div class="detail-block-title">
瀹℃壒娴佺▼锛坽{ detailRow.tasks?.length || detailRow.flowNodes?.length || 0 }} 椤癸級
</div>
- <InstanceFlowDisplay :tasks="detailRow.tasks" :nodes="detailRow.flowNodes" />
+ <InstanceFlowDisplay :tasks="detailRow.tasks" :nodes="detailRow.flowNodes" :type-name="detailRow.templateName" />
</div>
<div class="detail-block">
<div class="detail-block-title">瀹℃壒璁板綍</div>
@@ -295,7 +295,7 @@
<div class="detail-block-title">
瀹℃壒娴佺▼锛坽{ approveDialog.row?.tasks?.length || approveDialog.row?.flowNodes?.length || 0 }} 椤癸級
</div>
- <InstanceFlowDisplay :tasks="approveDialog.row?.tasks" :nodes="approveDialog.row?.flowNodes" />
+ <InstanceFlowDisplay :tasks="approveDialog.row?.tasks" :nodes="approveDialog.row?.flowNodes" :type-name="approveDialog.row?.templateName" />
</div>
<el-form label-width="100px" class="mt16">
<el-form-item label="瀹℃壒鎰忚" required>
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js b/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
index 982a19b..02215c9 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
@@ -37,6 +37,7 @@
import {
APPROVAL_STATUS_SEARCH_OPTIONS,
APPROVAL_TYPE_OPTIONS,
+ approvalRecordResultLabel,
approvalStatusLabel,
approvalStatusTagType,
approvalTypeLabel,
@@ -648,9 +649,7 @@
}
function approvalActionLabel(result) {
- if (result === "approved") return "閫氳繃";
- if (result === "rejected") return "椹冲洖";
- return "寰呭鐞�";
+ return approvalRecordResultLabel(result);
}
return {
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalInstanceDetailDialog.vue b/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalInstanceDetailDialog.vue
index 2488216..f2d062b 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalInstanceDetailDialog.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-shared/components/ApprovalInstanceDetailDialog.vue
@@ -15,7 +15,7 @@
<div class="detail-block-title">
瀹℃壒娴佺▼锛坽{ row?.tasks?.length || row?.flowNodes?.length || 0 }} 椤癸級
</div>
- <InstanceFlowDisplay :tasks="row?.tasks" :nodes="row?.flowNodes" />
+ <InstanceFlowDisplay :tasks="row?.tasks" :nodes="row?.flowNodes" :type-name="row?.templateName" />
</div>
<div class="detail-block">
<div class="detail-block-title">瀹℃壒璁板綍</div>
@@ -52,7 +52,7 @@
<script setup>
import { computed } from "vue";
-import { canEditBusinessInstanceRow } from "../../approve-list/approveListConstants.js";
+import { canEditBusinessInstanceRow, approvalRecordResultLabel } from "../../approve-list/approveListConstants.js";
import { formatDisplayTime } from "../../approve-template/approveTemplateConstants.js";
import ApproveDetailPanel from "../../approve-list/components/ApproveDetailPanel.vue";
import InstanceFlowDisplay from "../../approve-list/components/InstanceFlowDisplay.vue";
@@ -75,9 +75,7 @@
});
function approvalActionLabel(result) {
- if (result === "approved") return "閫氳繃";
- if (result === "rejected") return "椹冲洖";
- return "寰呭鐞�";
+ return approvalRecordResultLabel(result);
}
function formatRecordTime(time) {
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
index 285309f..f41127f 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -345,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(" 鈫� ");
}
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/components/TemplateFlowEditor.vue b/src/views/officeProcessAutomation/ApproveManage/approve-template/components/TemplateFlowEditor.vue
index 78304ea..d82448b 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/components/TemplateFlowEditor.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/components/TemplateFlowEditor.vue
@@ -6,8 +6,7 @@
<div class="tfe-card" :class="{ 'tfe-card--empty': !item.approvers?.length }">
<div class="tfe-badge">{{ index + 1 }}</div>
<div class="tfe-head">
- <span class="tfe-level">{{ levelText(index) }}</span>
- <el-radio-group
+ <span class="tfe-level">{{ levelText(index) }}</span> <el-radio-group
v-if="!readonly"
v-model="item.signMode"
size="small"
@@ -101,11 +100,13 @@
<script setup>
import { ArrowLeft, ArrowRight, Delete, Plus, User } from "@element-plus/icons-vue";
import { ref, watch } from "vue";
-import { NODE_SIGN_MODE_OPTIONS, normalizeFlowNodes } from "../approveTemplateConstants.js";
+import { NODE_SIGN_MODE_OPTIONS, normalizeFlowNodes, nodeDisplayName } from "../approveTemplateConstants.js";
const props = defineProps({
modelValue: { type: Array, default: () => [] },
userOptions: { type: Array, default: () => [] },
+ /** 瀹℃壒绫诲瀷/妯℃澘鍚嶇О锛岀敤浜庢嫾鑺傜偣鍚嶏紙濡傘�屽彂璐у鎵孤蜂竴绾с�嶏級 */
+ typeName: { type: String, default: "" },
/** 閫夋嫨妯℃澘鍚庣敵璇峰満鏅細浠呭睍绀猴紝涓嶅彲鏀瑰鎵逛汉/鑺傜偣 */
readonly: { type: Boolean, default: false },
});
@@ -126,8 +127,8 @@
}
function levelText(i) {
- const t = ["绗竴绾�", "绗簩绾�", "绗笁绾�", "绗洓绾�", "绗簲绾�", "绗叚绾�", "绗竷绾�", "绗叓绾�"];
- return t[i] || `绗�${i + 1}绾;
+ // 鑺傜偣鍚嶆寜瀹℃壒绫诲瀷 + 灞傜骇鏄剧ず锛屽銆屽彂璐у鎵孤蜂竴绾с��
+ return nodeDisplayName(props.typeName, i);
}
function optionLabel(u) {
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue b/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue
index 0a495c6..fb38a8f 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue
@@ -202,7 +202,7 @@
<el-form-item label="瀹℃壒娴佺▼" required>
- <TemplateFlowEditor v-model="form.flowNodes" :user-options="flowUserOptions" />
+ <TemplateFlowEditor v-model="form.flowNodes" :user-options="flowUserOptions" :type-name="form.templateName" />
<p class="flow-tip">
@@ -336,7 +336,7 @@
<div class="detail-node-head">
- <span class="detail-node-order">鑺傜偣 {{ index + 1 }}</span>
+ <span class="detail-node-order">{{ nodeDisplayName(detailRow.templateName, index) }}</span>
<el-tag size="small" :type="node.signMode === 'or_sign' ? 'warning' : 'primary'">
@@ -452,6 +452,8 @@
nodeSignModeLabel,
+ nodeDisplayName,
+
searchForm,
tableLoading,
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
index bf35c0a..df25e2e 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
@@ -17,6 +17,7 @@
isBuiltinTemplate,
mapTemplateFromApi,
mapTemplateToApi,
+ nodeDisplayName,
nodeSignModeLabel,
formatDisplayTime,
unwrapTemplateDetail,
@@ -104,10 +105,9 @@
},
{
label: "娴佺▼姒傝",
- prop: "flowNodes",
+ prop: "flowSummary",
minWidth: 220,
showOverflowTooltip: true,
- formatData: (v) => flowNodesSummary(v),
},
{
label: "鐘舵��",
@@ -159,7 +159,11 @@
buildApprovalTemplateListParams({ page, searchForm })
);
const data = res?.data || {};
- tableData.value = (data.records || []).map(mapTemplateFromApi);
+ // 娴佺▼姒傝鎸夈�屽鎵圭被鍨嬄峰眰绾с�嶅睍绀猴紝闇�瑕佹妸妯℃澘鍚嶅甫杩涙枃妗堥噷
+ tableData.value = (data.records || []).map(mapTemplateFromApi).map((row) => ({
+ ...row,
+ flowSummary: flowNodesSummary(row.flowNodes, row.templateName),
+ }));
page.total = Number(data.total || 0);
} catch {
tableData.value = [];
@@ -321,6 +325,7 @@
templateTypeLabel,
fetchTemplateList,
nodeSignModeLabel,
+ nodeDisplayName,
flowNodesSummary,
searchForm,
tableLoading,
diff --git a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js
index 3b90a3b..0a8cf5f 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js
+++ b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js
@@ -412,6 +412,8 @@
}
function approvalActionLabel(v) {
+ // 涓庡鎵瑰彴璐︿繚鎸佷竴鑷达細鐢宠璁板綍鏄剧ず銆岀敵璇枫�嶏紝瀹℃壒鍔ㄤ綔鏄剧ず銆岄�氳繃/椹冲洖銆�
+ if (v === "submitted" || v === "pending") return "鐢宠";
if (v === "approved") return "閫氳繃";
if (v === "rejected") return "椹冲洖";
return "鎻愪氦";
diff --git a/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js b/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js
index c92d88c..1397ae0 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js
+++ b/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js
@@ -463,6 +463,8 @@
}
function approvalActionLabel(v) {
+ // 涓庡鎵瑰彴璐︿繚鎸佷竴鑷达細鐢宠璁板綍鏄剧ず銆岀敵璇枫�嶏紝瀹℃壒鍔ㄤ綔鏄剧ず銆岄�氳繃/椹冲洖銆�
+ if (v === "submitted" || v === "pending") return "鐢宠";
if (v === "approved") return "閫氳繃";
if (v === "rejected") return "椹冲洖";
return "鎻愪氦";
--
Gitblit v1.9.3