重构: 跨模块样式DRY收口+审批列表增强+灵感模块优化

- 全局样式收口: page-header/btn/modal/filter-bar/back-link/empty-state
  等通用类从12个视图的scoped重复定义提取到global.css/components.css
- 审批列表增强: 筛选栏(状态/风险/工具搜索)+行展开查看完整参数结果
  +审批耗时显示+刷新spinner+硬编码颜色全部改用CSS变量
- 灵感模块: scoreTier统一评分阈值+score-bar/assessment-badge提取全局
  +statusLabelKey消除重复+i18n状态文案对齐+eval-report--muted统一空态
- Dashboard: df-panel/df-link提取全局(修scoped不渗透)+统计卡可点击跳转
  +活跃项目面板只显示active状态+灵感列表按分数排序+刷新spinner
- 修复: intent.rs tool_type类型对齐(newtype)+ToolCardList补ai-btn定义
  +SkillMention/ImageInput样式不渗透修复(提取全局)
This commit is contained in:
lxy
2026-07-02 23:24:11 +08:00
parent eee0f06e1a
commit 249b3b9ea8
29 changed files with 691 additions and 925 deletions
+16
View File
@@ -13,6 +13,22 @@ export interface ScoreDimension {
score: number
}
/** 评分三分档类型 */
export type ScoreTier = 'high' | 'mid' | 'low'
/**
* 评分三分档阈值统一(>=80 high / >=60 mid / else low)。
* 原 Ideas.vue scoreClass / IdeasPanel.vue tier / IdeaDetail.vue 模板内联 /
* ProjectDetail.vue 模板内联 4 处重复同一阈值逻辑,提取单一来源。
* 阈值调整只需改这一处。
*/
export function scoreTier(score: number | null | undefined): ScoreTier {
const s = score ?? 0
if (s >= 80) return 'high'
if (s >= 60) return 'mid'
return 'low'
}
/**
* 解析 idea.scores(JSON 对象 {dim: score})为维度数组。
* null / 空 / 非法 / 非对象 → []。非数值分维度记 0。