feat(report): distinguish release evidence tiers
This commit is contained in:
@@ -1482,13 +1482,14 @@ func headlineItemFromModelEvent(event ModelEvent) HeadlineItem {
|
||||
|
||||
switch event.EventType {
|
||||
case "official_release":
|
||||
item.Label = "官方发布"
|
||||
item.Label = "一级官方发布"
|
||||
item.Title = fmt.Sprintf("%s 官方发布", event.ModelName)
|
||||
if event.SourceKindLabel == "权威佐证发布" {
|
||||
item.Label = "权威佐证"
|
||||
item.Tone = "official-primary"
|
||||
if event.SourceKindLabel == "二级权威佐证发布" {
|
||||
item.Label = "二级权威佐证"
|
||||
item.Title = fmt.Sprintf("%s 进入权威佐证发布时间线", event.ModelName)
|
||||
item.Tone = "secondary-evidence"
|
||||
}
|
||||
item.Tone = "info"
|
||||
case "new_model":
|
||||
item.Label = "新模型"
|
||||
item.Title = fmt.Sprintf("%s 进入今日情报池", event.ModelName)
|
||||
@@ -1547,15 +1548,15 @@ func buildPriceEvidenceDetail(changePct, oldPrice, newPrice float64, currency st
|
||||
func buildReleaseSourceKindLabel(dateSourceKind, dateConfidence string) string {
|
||||
switch {
|
||||
case dateSourceKind == "secondary_authoritative_report" || dateConfidence == "secondary_authoritative":
|
||||
return "权威佐证发布"
|
||||
return "二级权威佐证发布"
|
||||
case dateSourceKind == "official_announcement" && dateConfidence == "official_primary":
|
||||
return "官方发布"
|
||||
return "一级官方发布"
|
||||
case dateSourceKind == "official_product_page":
|
||||
return "官方产品页"
|
||||
case dateSourceKind == "catalog_backfill":
|
||||
return "目录回填"
|
||||
default:
|
||||
return "官方发布"
|
||||
return "一级官方发布"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2241,6 +2242,42 @@ body {
|
||||
color: var(--ink-soft);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.headline-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 6px 10px;
|
||||
border-radius: 999px;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
.badge-official-primary {
|
||||
background: rgba(18,60,99,0.12);
|
||||
color: var(--blue);
|
||||
}
|
||||
.badge-secondary-evidence {
|
||||
background: rgba(173,107,17,0.14);
|
||||
color: var(--amber);
|
||||
}
|
||||
.badge-info {
|
||||
background: rgba(18,60,99,0.10);
|
||||
color: var(--blue);
|
||||
}
|
||||
.badge-success {
|
||||
background: rgba(31,122,76,0.12);
|
||||
color: var(--green);
|
||||
}
|
||||
.badge-warning {
|
||||
background: rgba(173,107,17,0.12);
|
||||
color: var(--amber);
|
||||
}
|
||||
.badge-caution {
|
||||
background: rgba(165,59,42,0.12);
|
||||
color: var(--red);
|
||||
}
|
||||
.badge-neutral {
|
||||
background: rgba(81,101,121,0.12);
|
||||
color: var(--ink-soft);
|
||||
}
|
||||
.card-title {
|
||||
font-size: 1.18rem;
|
||||
font-weight: 800;
|
||||
@@ -2388,6 +2425,14 @@ th {
|
||||
.tone-info { border-color: rgba(18,60,99,0.18); }
|
||||
.tone-caution { border-color: rgba(165,59,42,0.18); }
|
||||
.tone-neutral { border-color: rgba(81,101,121,0.16); }
|
||||
.tone-official-primary {
|
||||
border-color: rgba(18,60,99,0.26);
|
||||
background: linear-gradient(180deg, rgba(18,60,99,0.05), rgba(255,255,255,0.94));
|
||||
}
|
||||
.tone-secondary-evidence {
|
||||
border-color: rgba(173,107,17,0.24);
|
||||
background: linear-gradient(180deg, rgba(173,107,17,0.06), rgba(255,255,255,0.94));
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -2455,7 +2500,7 @@ th {
|
||||
<div class="headline-grid">
|
||||
{{range .HeadlineItems}}
|
||||
<article class="headline-card tone-{{.Tone}}">
|
||||
<div class="card-kicker">{{.Label}}</div>
|
||||
<div class="card-kicker headline-badge badge-{{.Tone}}">{{.Label}}</div>
|
||||
<div class="card-title">{{.Title}}</div>
|
||||
<div class="card-summary">{{.Summary}}</div>
|
||||
{{if .SourceKindLabel}}<div class="source-line">事件来源:{{.SourceKindLabel}}</div>{{end}}
|
||||
|
||||
Reference in New Issue
Block a user