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