优化: 前端DRY收敛与命名对齐
审批等待格式化与阈值沉 utils/time 正典 相对时间阶梯三套收敛 formatRelative 参数化 灵感状态表沉 constants,透传通道退役 aggText/clearOwn 等命名对齐,IPC 参数名统一 conversation_id
This commit is contained in:
@@ -165,6 +165,7 @@
|
||||
*/
|
||||
import { ref, computed, watch } from 'vue'
|
||||
import { moduleApi, type GitStatusResult } from '@/api/module'
|
||||
import { formatRelative } from '@/utils/time'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
const { t } = useI18n()
|
||||
@@ -274,19 +275,10 @@ function statusLabel(s: string): string {
|
||||
return x.charAt(0) || '?'
|
||||
}
|
||||
|
||||
/** 格式化 Unix 时间戳为相对时间或具体时间 */
|
||||
/** 格式化 Unix 时间戳为相对时间或具体时间(阶梯走 @/utils/time formatRelative:昨天档 + 30 天截断 ISO 日期) */
|
||||
function formatTime(ts: number): string {
|
||||
if (!ts) return ''
|
||||
const now = Math.floor(Date.now() / 1000)
|
||||
const diffSec = now - ts
|
||||
if (diffSec < 60) return t('common.justNow')
|
||||
if (diffSec < 3600) return t('common.minutesAgo', { n: Math.floor(diffSec / 60) })
|
||||
if (diffSec < 86400) return t('common.hoursAgo', { n: Math.floor(diffSec / 3600) })
|
||||
if (diffSec < 172800) return t('common.yesterday')
|
||||
if (diffSec < 2592000) return t('common.dayAgo', { n: Math.floor(diffSec / 86400) })
|
||||
// 超过 30 天显示具体日期
|
||||
const d = new Date(ts * 1000)
|
||||
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`
|
||||
return formatRelative(ts, { yesterday: true, absAfterDays: 30, absStyle: 'iso' })
|
||||
}
|
||||
|
||||
/** 计算文件路径的目录深度(用于缩进)。root 级文件返回 0。 */
|
||||
|
||||
Reference in New Issue
Block a user