From 0e8a32f5ba5b00e357c8b2c37311177813c0b9fa Mon Sep 17 00:00:00 2001
From: zhang_nuo <zhang_12370@163.com>
Date: 星期日, 13 九月 2026 11:38:46 +0800
Subject: [PATCH] feat[date]: 新增 parseDate 工具函数并统一日期展示格式
---
src/views/equipmentManagement/upkeep/index.vue | 2
src/views/equipmentManagement/spareParts/index.vue | 2
src/utils/ruoyi.js | 41 ++++++++++++++++++++
src/views/productionManagement/productionTraceability/index.vue | 14 +++---
src/views/inventoryManagement/stockReport/index.vue | 15 +++++++
5 files changed, 64 insertions(+), 10 deletions(-)
diff --git a/src/utils/ruoyi.js b/src/utils/ruoyi.js
index 0d72c1a..21d3e65 100644
--- a/src/utils/ruoyi.js
+++ b/src/utils/ruoyi.js
@@ -4,6 +4,47 @@
*/
// 鏃ユ湡鏍煎紡鍖�
+export function parseDate(time, pattern) {
+ if (arguments.length === 0 || !time) {
+ return null
+ }
+ const format = pattern || '{y}-{m}-{d}'
+ let date
+ if (typeof time === 'object') {
+ date = time
+ } else {
+ if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
+ time = parseInt(time)
+ } else if (typeof time === 'string') {
+ time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '')
+ }
+ if ((typeof time === 'number') && (time.toString().length === 10)) {
+ time = time * 1000
+ }
+ date = new Date(time)
+ }
+ const formatObj = {
+ y: date.getFullYear(),
+ m: date.getMonth() + 1,
+ d: date.getDate(),
+ h: date.getHours(),
+ i: date.getMinutes(),
+ s: date.getSeconds(),
+ a: date.getDay()
+ }
+ const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
+ let value = formatObj[key]
+ // Note: getDay() returns 0 on Sunday
+ if (key === 'a') { return ['鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�'][value] }
+ if (result.length > 0 && value < 10) {
+ value = '0' + value
+ }
+ return value || 0
+ })
+ return time_str
+}
+
+// 鏃ユ湡鏍煎紡鍖�
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
diff --git a/src/views/equipmentManagement/spareParts/index.vue b/src/views/equipmentManagement/spareParts/index.vue
index 8abe35d..8c22697 100644
--- a/src/views/equipmentManagement/spareParts/index.vue
+++ b/src/views/equipmentManagement/spareParts/index.vue
@@ -185,7 +185,7 @@
{ label: "澶囦欢鍚嶇О", prop: "sparePartsName" },
{ label: "棰嗙敤鏁伴噺", prop: "quantity" },
{ label: "鎿嶄綔浜�", prop: "operator" },
- { label: "鏃堕棿", prop: "createTime" },
+ { label: "鏃堕棿", prop: "createTime",dataType:"date" },
]);
const handleTabChange = async (name) => {
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 245a162..74de7be 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -349,7 +349,7 @@
label: "鐧昏鏃ユ湡",
minWidth: 100,
formatData: cell =>
- cell ? dayjs(cell).format("YYYY-MM-DD HH:mm:ss") : "-",
+ cell ? dayjs(cell).format("YYYY-MM-DD") : "-",
},
{
fixed: "right",
diff --git a/src/views/inventoryManagement/stockReport/index.vue b/src/views/inventoryManagement/stockReport/index.vue
index 26bc8a0..615e943 100644
--- a/src/views/inventoryManagement/stockReport/index.vue
+++ b/src/views/inventoryManagement/stockReport/index.vue
@@ -152,7 +152,11 @@
prop="createTime"
width="200"
show-overflow-tooltip
- v-if="searchForm.reportType !== 'inout'" />
+ v-if="searchForm.reportType !== 'inout'" >
+ <template #default="scope">
+ {{ getDate(scope.row.createTime) }}
+ </template>
+ </el-table-column>
<el-table-column label="鍏ュ簱鎵规"
prop="inboundBatches"
width="180"
@@ -216,6 +220,7 @@
import { ref, reactive, onMounted, nextTick, getCurrentInstance } from "vue";
import { ElMessage } from "element-plus";
import * as echarts from "echarts";
+ import dayjs from "dayjs";
import pagination from "@/components/PIMTable/Pagination.vue";
import {
getStockInventoryInAndOutReportList,
@@ -261,6 +266,14 @@
);
};
+ const getDate = val =>{
+ console.log(val)
+ if(!val){
+ return "--"
+ }
+ return dayjs(val).isValid() ? dayjs(val).format('YYYY鈥慚M鈥慏D') : '--'
+ }
+
// 鑾峰彇鏉ユ簮绫诲瀷閫夐」
const fetchStockRecordTypeOptions = () => {
findAllQualifiedStockInRecordTypeOptions().then(res => {
diff --git a/src/views/productionManagement/productionTraceability/index.vue b/src/views/productionManagement/productionTraceability/index.vue
index a726ad0..ad51f99 100644
--- a/src/views/productionManagement/productionTraceability/index.vue
+++ b/src/views/productionManagement/productionTraceability/index.vue
@@ -44,7 +44,7 @@
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="瀹㈡埛鍚嶇О">{{ rowData.productionOrderDto?.customerName || '-' }}</el-descriptions-item>
- <el-descriptions-item label="寮�濮嬫棩鏈�">{{ parseTime(rowData.productionOrderDto?.startTime) || '-' }}</el-descriptions-item>
+ <el-descriptions-item label="寮�濮嬫棩鏈�">{{ parseDate(rowData.productionOrderDto?.startTime) || '-' }}</el-descriptions-item>
<el-descriptions-item label="瀹屾垚杩涘害">
<el-progress :percentage="rowData.productionOrderDto?.completionStatus>=100?100:rowData.productionOrderDto?.completionStatus"
:color="customColors(rowData.productionOrderDto?.completionStatus)"
@@ -132,8 +132,8 @@
<el-descriptions-item label="鐢熶骇宸ュ崟鍙�">{{ detailData.workOrder.workOrderNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="璁″垝鏁伴噺">{{ detailData.workOrder.planQuantity || 0 }}</el-descriptions-item>
<el-descriptions-item label="瀹屾垚鏁伴噺">{{ detailData.workOrder.completeQuantity || 0 }}</el-descriptions-item>
- <el-descriptions-item label="瀹為檯寮�濮嬫椂闂�">{{ parseTime(detailData.workOrder.actualStartTime) || '-' }}</el-descriptions-item>
- <el-descriptions-item label="瀹為檯缁撴潫鏃堕棿">{{ parseTime(detailData.workOrder.actualEndTime) || '-' }}</el-descriptions-item>
+ <el-descriptions-item label="瀹為檯寮�濮嬫椂闂�">{{ parseDate(detailData.workOrder.actualStartTime) || '-' }}</el-descriptions-item>
+ <el-descriptions-item label="瀹為檯缁撴潫鏃堕棿">{{ parseDate(detailData.workOrder.actualEndTime) || '-' }}</el-descriptions-item>
<!-- <el-descriptions-item label="瀹屾垚杩涘害">
<el-progress :percentage="detailData.workOrder.completionStatus >= 100 ? 100 : (detailData.workOrder.completionStatus || 0)"
:color="customColors(detailData.workOrder.completionStatus)"
@@ -157,7 +157,7 @@
<el-table-column label="鍒涘缓鏃堕棿"
align="center">
<template #default="{ row }">
- {{ parseTime(row.createTime) }}
+ {{ parseDate(row.createTime) }}
</template>
</el-table-column>
<el-table-column label="宸ユ椂锛坔锛�"
@@ -230,10 +230,10 @@
:key="record.id"
class="quality-record-block">
<div class="detail-section">
- <h3 class="section-title">妫�娴嬭褰� {{ index + 1 }} - {{ parseTime(record.createTime) }}</h3>
+ <h3 class="section-title">妫�娴嬭褰� {{ index + 1 }} - {{ parseDate(record.createTime) }}</h3>
<el-descriptions :column="3"
border>
- <el-descriptions-item label="妫�娴嬫棩鏈�">{{ parseTime(record.createTime) || '-' }}</el-descriptions-item>
+ <el-descriptions-item label="妫�娴嬫棩鏈�">{{ parseDate(record.createTime) || '-' }}</el-descriptions-item>
<el-descriptions-item label="鎶ュ伐鍗曞彿">{{ record.reportNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="妫�楠屽憳">{{ record.userName || '-' }}</el-descriptions-item>
<el-descriptions-item label="浜у搧鍚嶇О">{{ record.productName || '-' }}</el-descriptions-item>
@@ -287,7 +287,7 @@
import { ref, reactive, onMounted, computed } from "vue";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
- import { parseTime } from "@/utils/ruoyi";
+ import { parseDate } from "@/utils/ruoyi";
import InputModal from "@/views/productionManagement/productionReporting/Input.vue";
import {
getOrderDetail,
--
Gitblit v1.9.3