重构: 前端DRY(style全局沉淀 + ts/js公共沉淀)
style-dry: - 新增 src/styles/components.css: .info-item*/.panel/.panel-header/.tech-tag/.card-tags 全局 - main.ts 注册 import - 删重复: ProjectDetail/TaskDetail/TaskOutputCard/ProjectCard/Projects(scoped删重复, 全局对子组件生效) - 未使用清理: Projects .card-progress dead(1处保守核对) tsjs-dry: - aiShared.ts: resolveAiLang(合并useAiSend.resolveLang + useAiContext.resolveLanguage) - stores/knowledge.ts: kindText/kindLabel/kindIcon/knowledgeStatusLabel/knowledgeConfidenceLabel(5公共) - 删重复: useAiSend/useAiContext(resolveLang) + Knowledge/KnowledgeDetail(4+5 helper) + ActiveProjectsPanel(formatLastActivity→formatRelativeZh复用) strategy: DRY收口, 公共沉淀(utils/store/shared); relativeTime非纯重复保留; .btn/.empty-hint局部override WATCH未动
This commit is contained in:
@@ -58,6 +58,40 @@ export function parseTags(tags: string | null): string[] {
|
||||
}
|
||||
}
|
||||
|
||||
// ── 知识 label 文案辅助(列表 Knowledge.vue 与详情 KnowledgeDetail.vue 共用) ──
|
||||
// 原两文件各内联一份重复实现(SW-260618-20 详情迁移时复制),提取至此单一来源。
|
||||
// 全部依赖 i18n,故用模块级 t(同文件 parseTags 之上的全局 t)。
|
||||
|
||||
/** 知识类型文案(无 icon):${icon} ${text} 组合的文本部分,亦供下拉选项 */
|
||||
export function kindText(key: string): string {
|
||||
return t(`knowledge.kind.${key}`)
|
||||
}
|
||||
|
||||
/** 知识类型带 icon 文案(列表/详情卡片);未知 key 回退原值 */
|
||||
export function kindLabel(key: string): string {
|
||||
const k = KNOWLEDGE_KINDS.find(c => c.key === key)
|
||||
return k ? `${k.icon} ${kindText(key)}` : key
|
||||
}
|
||||
|
||||
/** 知识类型 icon;未知回退通用图标 */
|
||||
export function kindIcon(key: string): string {
|
||||
return KNOWLEDGE_KINDS.find(c => c.key === key)?.icon ?? '📄'
|
||||
}
|
||||
|
||||
/** 知识状态文案;$t(key) 命中失败(无该 status key)回退原值,避免裸露 key */
|
||||
export function knowledgeStatusLabel(status: string): string {
|
||||
const key = `knowledge.status.${status}`
|
||||
const msg = t(key)
|
||||
return msg === key ? status : msg
|
||||
}
|
||||
|
||||
/** 知识置信度文案;$t(key) 命中失败回退原值 */
|
||||
export function knowledgeConfidenceLabel(c: string): string {
|
||||
const key = `knowledge.confidence.${c}`
|
||||
const msg = t(key)
|
||||
return msg === key ? c : msg
|
||||
}
|
||||
|
||||
export function useKnowledgeStore() {
|
||||
// ── 加载列表(library:默认仅 published,F-260616-02 决策 a) ──
|
||||
// 后端 knowledge_list 默认收窄为 published,无需前端传 status。
|
||||
|
||||
Reference in New Issue
Block a user