57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
/** 将接口 msg / 异常对象转为可展示的字符串,避免 [object Object] */
|
||
export function formatUserMessage(msg, fallback = '') {
|
||
if (msg == null || msg === '') return fallback
|
||
if (typeof msg === 'string') return msg
|
||
if (typeof msg === 'number' || typeof msg === 'boolean') return String(msg)
|
||
if (Array.isArray(msg)) {
|
||
const parts = msg.map((item) => {
|
||
if (item == null) return ''
|
||
if (typeof item === 'string') return item
|
||
if (typeof item === 'number' || typeof item === 'boolean') return String(item)
|
||
if (typeof item === 'object') {
|
||
return item.msg || item.message || item.error || item.title || item.label || ''
|
||
}
|
||
return String(item)
|
||
}).filter(Boolean)
|
||
return parts.length ? parts.join(';') : fallback
|
||
}
|
||
if (typeof msg === 'object') {
|
||
return msg.msg || msg.message || msg.error || msg.title || msg.label || fallback
|
||
}
|
||
return String(msg)
|
||
}
|
||
|
||
export function showUserToast(title, options = {}) {
|
||
const text = formatUserMessage(title, '')
|
||
if (!text) return
|
||
uni.showToast({
|
||
title: text,
|
||
icon: options.icon || 'none',
|
||
duration: options.duration
|
||
})
|
||
}
|
||
|
||
export function formatDate(date) {
|
||
const y = date.getFullYear()
|
||
const m = String(date.getMonth() + 1).padStart(2, '0')
|
||
const d = String(date.getDate()).padStart(2, '0')
|
||
return `${y}-${m}-${d}`
|
||
}
|
||
|
||
export function parseDate(str) {
|
||
if (!str) return new Date()
|
||
const [y, m, d] = str.split('-').map(Number)
|
||
return new Date(y, (m || 1) - 1, d || 1)
|
||
}
|
||
|
||
export function toNumber(v) {
|
||
if (v === null || v === undefined || v === '') return null
|
||
const n = Number(v)
|
||
return Number.isFinite(n) && n !== 0 ? n : null
|
||
}
|
||
|
||
export function getWeekday(dateStr) {
|
||
const w = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
|
||
return w[parseDate(dateStr).getDay()]
|
||
}
|