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