commit plugin to fix data format issue in inbox and send files

This commit is contained in:
ra939 2025-10-05 08:54:02 +00:00
parent f60449ed6a
commit 3a1482c721

View file

@ -0,0 +1,37 @@
// Wrap app.$formatDate to accept ISO strings / numbers safely
import Vue from 'vue'
import { parseISO, isValid } from 'date-fns'
import format from 'date-fns/format'
export default ({ app }) => {
const use = (impl) => (v, p) => {
let d = v instanceof Date ? v : null
if (!d && typeof v === 'string') {
const k = parseISO(v)
if (isValid(k)) d = k
}
if (!d && (typeof v === 'number' || typeof v === 'string')) {
const k = new Date(v)
if (isValid(k)) d = k
}
if (!d) return ''
try {
return impl(d, p)
} catch {
try {
return format(d, p || 'yyyy-MM-dd')
} catch {
return ''
}
}
}
if (typeof app.$formatDate === 'function') {
const safe = use((d, p) => app.$formatDate(d, p))
app.$formatDate = safe
Vue.prototype.$formatDate = safe
} else {
const safe = use((d, p) => format(d, p || 'yyyy-MM-dd'))
app.$formatDate = safe
Vue.prototype.$formatDate = safe
}
}