diff --git a/apps/admin/src/views/Contents.vue b/apps/admin/src/views/Contents.vue index 4d1f979..2b8d266 100644 --- a/apps/admin/src/views/Contents.vue +++ b/apps/admin/src/views/Contents.vue @@ -5,6 +5,10 @@ import type { TableInstance } from 'element-plus'; import { useAdminLocale } from '../composables/useAdminLocale'; import api from '../api'; import AdminTableEmpty from '../components/AdminTableEmpty.vue'; +import { + normalizeStartTimeForApi, + normalizeStartTimeForPicker, +} from './match-form'; const { t, localeTag } = useAdminLocale(); @@ -311,8 +315,8 @@ function openEdit(row: ContentItem) { status: row.status, linkType: (row.linkType as '' | 'ROUTE' | 'URL') || '', linkTarget: row.linkTarget ?? '', - startTime: row.startTime ? row.startTime.slice(0, 19) : '', - endTime: row.endTime ? row.endTime.slice(0, 19) : '', + startTime: normalizeStartTimeForPicker(row.startTime ?? undefined), + endTime: normalizeStartTimeForPicker(row.endTime ?? undefined), translations: LOCALES.map((locale) => { const tr = byLocale.get(locale); return { @@ -340,8 +344,8 @@ function buildPayload() { linkType: isBanner.value && form.value.linkType ? form.value.linkType : null, linkTarget: isBanner.value && form.value.linkType ? form.value.linkTarget.trim() : null, - startTime: form.value.startTime || null, - endTime: form.value.endTime || null, + startTime: form.value.startTime ? normalizeStartTimeForApi(form.value.startTime) : null, + endTime: form.value.endTime ? normalizeStartTimeForApi(form.value.endTime) : null, translations: form.value.translations.map((tr) => ({ locale: tr.locale, title: tr.title.trim() || undefined,