From c4373c8cc19b185520717c11ca5efcd7d4dc1654 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 21 May 2026 16:09:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=A8=E5=B9=B3=E5=8F=B0=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=98=BE=E7=A4=BA=E7=BB=9F=E4=B8=80=E4=B8=BA=E5=8C=97?= =?UTF-8?q?=E4=BA=AC=E6=97=B6=E9=97=B4=20(Asia/Shanghai)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 formatTime 工具函数,强制使用 Asia/Shanghai 时区, 替换两个平台所有视图中裸 toLocaleString('zh-CN') 调用。 Co-Authored-By: Claude Sonnet 4.6 --- ops-platform/src/utils/date.ts | 7 +++++++ ops-platform/src/views/apps/AppDetailView.vue | 5 ++--- ops-platform/src/views/apps/AppListView.vue | 3 ++- ops-platform/src/views/logs/OperationLogView.vue | 3 ++- ops-platform/src/views/push/PushDiagnosticsView.vue | 8 +++----- ops-platform/src/views/risk/RiskControlView.vue | 5 ++--- .../src/views/services/ServiceRequestsView.vue | 5 ++--- ops-platform/src/views/tenants/TenantDetailView.vue | 5 ++--- ops-platform/src/views/tenants/TenantListView.vue | 3 ++- tenant-platform/src/utils/date.ts | 7 +++++++ tenant-platform/src/views/apps/AppListView.vue | 5 ++--- tenant-platform/src/views/im/ImManagementView.vue | 6 +----- tenant-platform/src/views/im/ImWebhookView.vue | 4 +--- tenant-platform/src/views/im/WebhookAlertView.vue | 4 +--- .../src/views/im/WebhookDeliveryLogView.vue | 4 +--- .../src/views/license/LicenseManagementView.vue | 6 ++---- tenant-platform/src/views/logs/OperationLogView.vue | 7 +------ tenant-platform/src/views/push/PushManagementView.vue | 11 ++--------- .../src/views/security/SecurityCenterView.vue | 5 ++--- .../src/views/update/VersionManagementView.vue | 4 +--- 20 files changed, 45 insertions(+), 62 deletions(-) create mode 100644 ops-platform/src/utils/date.ts create mode 100644 tenant-platform/src/utils/date.ts diff --git a/ops-platform/src/utils/date.ts b/ops-platform/src/utils/date.ts new file mode 100644 index 0000000..f0f02ed --- /dev/null +++ b/ops-platform/src/utils/date.ts @@ -0,0 +1,7 @@ +const TZ = 'Asia/Shanghai' + +export function formatTime(value: string | number | null | undefined): string { + if (value === null || value === undefined || value === '') return '-' + const date = new Date(value as string | number) + return Number.isNaN(date.getTime()) ? '-' : date.toLocaleString('zh-CN', { timeZone: TZ }) +} diff --git a/ops-platform/src/views/apps/AppDetailView.vue b/ops-platform/src/views/apps/AppDetailView.vue index 23786a7..49eaab1 100644 --- a/ops-platform/src/views/apps/AppDetailView.vue +++ b/ops-platform/src/views/apps/AppDetailView.vue @@ -55,6 +55,7 @@ import { onMounted, ref } from 'vue' import { useRoute } from 'vue-router' import { opsApi, type AppDetail } from '@/api/ops' +import { formatTime } from '@/utils/date' const route = useRoute() const detail = ref(null) @@ -65,9 +66,7 @@ async function loadDetail() { detail.value = res.data.data } -function fmt(value: string) { - return value ? new Date(value).toLocaleString('zh-CN') : '-' -} +const fmt = formatTime function mask(value: string) { if (!value) return '-' diff --git a/ops-platform/src/views/apps/AppListView.vue b/ops-platform/src/views/apps/AppListView.vue index 55bb907..58981f8 100644 --- a/ops-platform/src/views/apps/AppListView.vue +++ b/ops-platform/src/views/apps/AppListView.vue @@ -35,7 +35,7 @@ - +