From ca030ea1f083821afada9c6badf472897c52815e Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期日, 09 八月 2026 23:46:46 +0800
Subject: [PATCH] fix: 优化页面显示

---
 src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js                    |    4 +-
 src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js      |    8 ++++
 src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js          |    7 ++-
 src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js              |    5 +-
 src/views/officeProcessAutomation/ApproveManage/approve-shared/approvalInstanceFormConfigTable.js |    3 +
 src/views/officeProcessAutomation/ReimburseManage/shared/finReimbursementMappers.js               |    7 +++
 src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue       |    9 +++-
 src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue    |    4 +-
 src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue     |   11 ++++-
 src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js            |    7 ---
 src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue                        |    2 -
 11 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue b/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue
index 721a5c2..395b94d 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue
@@ -29,7 +29,7 @@
         </el-descriptions-item>
         <el-descriptions-item label="鍒涘缓鏃堕棿"
                               :span="2">
-          {{ formatDisplayTime(row.createTime) }}
+          {{ formatDisplayDate(row.createTime) }}
         </el-descriptions-item>
       </el-descriptions>
     </div>
@@ -74,7 +74,7 @@
 <script setup>
   import { computed } from "vue";
   import { Paperclip } from "@element-plus/icons-vue";
-  import { formatDisplayTime } from "../../approve-template/approveTemplateConstants.js";
+  import { formatDisplayDate } from "../../approve-template/approveTemplateConstants.js";
   import {
     approvalTypeLabel,
     approvalTypeStyle,
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js b/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
index 30df120..9264253 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
@@ -22,7 +22,7 @@
 } from "../../ReimburseManage/shared/reimburseApproveBridge.js";
 import {
   fetchBusinessTypeOptions,
-  formatDisplayTime,
+  formatDisplayDate,
   mapEnabledFromApi,
   unwrapTemplateList,
 } from "../approve-template/approveTemplateConstants.js";
@@ -180,7 +180,7 @@
       label: "鍒涘缓鏃堕棿",
       prop: "createTime",
       width: 170,
-      formatData: (v) => formatDisplayTime(v),
+      formatData: (v) => formatDisplayDate(v),
     },
     {
       dataType: "action",
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-shared/approvalInstanceFormConfigTable.js b/src/views/officeProcessAutomation/ApproveManage/approve-shared/approvalInstanceFormConfigTable.js
index d6bec18..0418258 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-shared/approvalInstanceFormConfigTable.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-shared/approvalInstanceFormConfigTable.js
@@ -1,5 +1,6 @@
 import { computed } from "vue";
 import { businessApprovalStatusLabel, businessApprovalStatusTagType, formatFieldDisplayValue, resolveInstanceFormFields } from "../approve-list/approveListConstants.js";
+import { formatDisplayDate } from "../approve-template/approveTemplateConstants.js";
 import { INSTANCE_NO_SEARCH_MODULE_KEYS, INSTANCE_NO_TABLE_COLUMN } from "./approvalInstanceListSearch.js";
 
 /** 鍒楄〃/璇︽儏涓嶅洖鏄句负鐙珛鍒楃殑濉姤椤� key锛堥伩鍏嶈鐩栧疄渚嬬郴缁熷瓧娈碉級 */
@@ -94,7 +95,7 @@
       ...formCols,
       ...extraColumns,
       ...afterFormColumns,
-      { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 170 },
+      { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 120, formatData: v => formatDisplayDate(v) },
       {
         label: "瀹℃壒鐘舵��",
         prop: "approvalStatus",
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
index 727f896..a79b502 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -176,6 +176,14 @@
   return t || "鈥�";
 }
 
+/** 浠呭睍绀烘棩鏈燂紙鎶规帀鏃跺垎绉掞級 */
+export function formatDisplayDate(val) {
+  const t = normalizeTimeValue(val);
+  if (!t) return "鈥�";
+  const parsed = dayjs(t.replace(/-/g, "/"));
+  return parsed.isValid() ? parsed.format("YYYY-MM-DD") : t;
+}
+
 /** 璇︽儏鎺ュ彛 data 瑙e寘 */
 export function unwrapTemplateDetail(res) {
   const data = res?.data ?? res;
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue b/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue
index d094c13..69116d0 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/index.vue
@@ -272,8 +272,6 @@
 
         <el-descriptions-item label="鍒涘缓鏃堕棿">{{ formatDisplayTime(detailRow.createdTime) }}</el-descriptions-item>
 
-        <el-descriptions-item label="鏇存柊鏃堕棿">{{ formatDisplayTime(detailRow.updatedTime) }}</el-descriptions-item>
-
       </el-descriptions>
 
       <el-divider content-position="left">濉姤椤癸紙{{ detailFormConfig.fields?.length || 0 }} 椤癸級</el-divider>
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
index 61aa6c0..a961845 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/useApproveTemplate.js
@@ -126,13 +126,6 @@
       formatData: (v) => formatDisplayTime(v),
     },
     {
-      label: "鏇存柊鏃堕棿",
-      prop: "updatedTime",
-      width: 170,
-      showOverflowTooltip: true,
-      formatData: (v) => formatDisplayTime(v),
-    },
-    {
       dataType: "action",
       label: "鎿嶄綔",
       align: "center",
diff --git a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue
index 4db16a7..c971a1a 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue
+++ b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue
@@ -6,7 +6,7 @@
       <el-tag :type="statusTagType(row.approvalResult)" size="small">{{ statusLabel(row.approvalResult) }}</el-tag>
     </el-descriptions-item>
     <el-descriptions-item label="璐圭敤绫诲瀷">{{ expenseCategoryLabel(row.expenseCategory) }}</el-descriptions-item>
-    <el-descriptions-item label="鐢宠鏃堕棿">{{ row.applyTime || row.createTime || "鈥�" }}</el-descriptions-item>
+    <el-descriptions-item label="鐢宠鏃堕棿">{{ dateOnly(row.applyTime || row.createTime) }}</el-descriptions-item>
     <el-descriptions-item label="鍛樺伐缂栧彿">{{ row.employeeNo || row.applicantNo || "鈥�" }}</el-descriptions-item>
     <el-descriptions-item label="鍛樺伐濮撳悕">{{ row.employeeName || row.applicantName || "鈥�" }}</el-descriptions-item>
     <el-descriptions-item label="鎶ラ攢鍘熷洜" :span="2">{{ row.reimburseReason || "鈥�" }}</el-descriptions-item>
@@ -17,7 +17,7 @@
     <el-descriptions-item v-if="row.rejectReason" label="椹冲洖鍘熷洜" :span="2">
       <span class="reject-text">{{ row.rejectReason }}</span>
     </el-descriptions-item>
-    <el-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{ row.createTime || "鈥�" }}</el-descriptions-item>
+    <el-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{ dateOnly(row.createTime) }}</el-descriptions-item>
   </el-descriptions>
 
   <el-divider content-position="left">鎶ラ攢鏄庣粏</el-divider>
@@ -43,12 +43,17 @@
 
 <script setup>
 import { computed } from "vue";
+import { formatReimbursementDate } from "../../shared/finReimbursementMappers.js";
 import { expenseCategoryLabel, expenseSubjectLabel, statusLabel, statusTagType } from "../costReimburseUtils.js";
 
 const props = defineProps({
   row: { type: Object, default: () => ({}) },
 });
 
+function dateOnly(val) {
+  return formatReimbursementDate(val) || "鈥�";
+}
+
 const attachmentFiles = computed(() => {
   const list =
     props.row?.attachmentList ||
diff --git a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js
index 3b90a3b..4aee781 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js
+++ b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/useCostReimburse.js
@@ -19,6 +19,7 @@
   enrichReimbursementListRowsWithApprovalFlow,
   filterRowsByReimbursementType,
   FIN_REIMBURSEMENT_TYPE,
+  formatReimbursementDate,
   mapCostReimbursementRow,
   mapFinReimbursementDetailRow,
   resolveReimbursementDeleteId,
@@ -153,8 +154,8 @@
     { label: "鐢宠浜�", prop: "applicantName", minWidth: 90 },
     { label: "鎶ラ攢閲戦(鍏�)", prop: "applyAmount", width: 110 },
     { label: "鎶ラ攢鍘熷洜", prop: "reimburseReason", minWidth: 160, showOverflowTooltip: true },
-    { label: "鐢宠鏃堕棿", prop: "applyTime", width: 165 },
-    { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 165 },
+    { label: "鐢宠鏃堕棿", prop: "applyTime", width: 120, formatData: (v) => formatReimbursementDate(v) },
+    { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 120, formatData: (v) => formatReimbursementDate(v) },
     {
       label: "鎶ラ攢鐘舵��",
       prop: "approvalResult",
diff --git a/src/views/officeProcessAutomation/ReimburseManage/shared/finReimbursementMappers.js b/src/views/officeProcessAutomation/ReimburseManage/shared/finReimbursementMappers.js
index 2525f70..97801f2 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/shared/finReimbursementMappers.js
+++ b/src/views/officeProcessAutomation/ReimburseManage/shared/finReimbursementMappers.js
@@ -302,6 +302,13 @@
   return hasTime ? d.format("YYYY-MM-DD HH:mm:ss") : d.format("YYYY-MM-DD");
 }
 
+/** 鍒楄〃/璇︽儏浠呭睍绀烘棩鏈燂紙鎶规帀鏃跺垎绉掞級 */
+export function formatReimbursementDate(val) {
+  if (val == null || val === "") return "";
+  const d = dayjs(val);
+  return d.isValid() ? d.format("YYYY-MM-DD") : String(val);
+}
+
 /** 鎺ュ彛琛� 鈫� 宸梾鎶ラ攢鍒楄〃琛岋紙鍏煎 useTravelReimburse 瀛楁锛� */
 export function mapTravelReimbursementRow(row) {
   if (!row) return {};
diff --git a/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue b/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue
index 2c1d8a4..cf3ea55 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue
+++ b/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue
@@ -8,8 +8,8 @@
     <el-descriptions-item label="鍛樺伐缂栧彿">{{ row.employeeNo || row.applicantNo || "鈥�" }}</el-descriptions-item>
     <el-descriptions-item label="鍛樺伐濮撳悕">{{ row.employeeName || row.applicantName || "鈥�" }}</el-descriptions-item>
     <el-descriptions-item label="鎶ラ攢鍘熷洜" :span="2">{{ row.reimburseReason || "鈥�" }}</el-descriptions-item>
-    <el-descriptions-item label="鍑哄樊寮�濮�">{{ row.travelStartTime || "鈥�" }}</el-descriptions-item>
-    <el-descriptions-item label="鍑哄樊缁撴潫">{{ row.travelEndTime || "鈥�" }}</el-descriptions-item>
+    <el-descriptions-item label="鍑哄樊寮�濮�">{{ dateOnly(row.travelStartTime) }}</el-descriptions-item>
+    <el-descriptions-item label="鍑哄樊缁撴潫">{{ dateOnly(row.travelEndTime) }}</el-descriptions-item>
     <el-descriptions-item label="鍑哄樊鍦�">{{ row.departurePlace || "鈥�" }}</el-descriptions-item>
     <el-descriptions-item label="鐩殑鍦�">{{ row.destination || "鈥�" }}</el-descriptions-item>
     <el-descriptions-item label="閰掑簵鏍囧噯">{{ row.hotelStandard != null ? `${row.hotelStandard} 鍏�/鏅歚 : "鈥�" }}</el-descriptions-item>
@@ -25,7 +25,7 @@
     <el-descriptions-item v-if="row.rejectReason" label="椹冲洖鍘熷洜" :span="2">
       <span class="reject-text">{{ row.rejectReason }}</span>
     </el-descriptions-item>
-    <el-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{ row.createTime || "鈥�" }}</el-descriptions-item>
+    <el-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{ dateOnly(row.createTime) }}</el-descriptions-item>
   </el-descriptions>
 
   <el-divider content-position="left">鎶ラ攢鏄庣粏</el-divider>
@@ -51,12 +51,17 @@
 
 <script setup>
 import { computed } from "vue";
+import { formatReimbursementDate } from "../../shared/finReimbursementMappers.js";
 import { expenseSubjectLabel, statusLabel, statusTagType } from "../travelReimburseUtils.js";
 
 const props = defineProps({
   row: { type: Object, default: () => ({}) },
 });
 
+function dateOnly(val) {
+  return formatReimbursementDate(val) || "鈥�";
+}
+
 const attachmentFiles = computed(() => {
   const list =
     props.row?.attachmentList ||
diff --git a/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js b/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js
index c92d88c..3667840 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js
+++ b/src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/useTravelReimburse.js
@@ -19,6 +19,7 @@
   enrichReimbursementListRowsWithApprovalFlow,
   filterRowsByReimbursementType,
   FIN_REIMBURSEMENT_TYPE,
+  formatReimbursementDate,
   mapFinReimbursementDetailRow,
   mapTravelReimbursementRow,
   resolveReimbursementDeleteId,
@@ -176,9 +177,9 @@
     { label: "鎶ラ攢鍗曞彿", prop: "reimburseNo", width: 150 },
     { label: "鐢宠浜虹紪鍙�", prop: "applicantNo", width: 110 },
     { label: "鐢宠浜�", prop: "applicantName", minWidth: 90 },
-    { label: "鍑哄樊寮�濮�", prop: "travelStartTime", width: 165 },
-    { label: "鍑哄樊缁撴潫", prop: "travelEndTime", width: 165 },
-    { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 165 },
+    { label: "鍑哄樊寮�濮�", prop: "travelStartTime", width: 120, formatData: (v) => formatReimbursementDate(v) },
+    { label: "鍑哄樊缁撴潫", prop: "travelEndTime", width: 120, formatData: (v) => formatReimbursementDate(v) },
+    { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 120, formatData: (v) => formatReimbursementDate(v) },
     {
       label: "鐘舵��",
       prop: "approvalResult",

--
Gitblit v1.9.3