Publish King campaign report (manual update)

This commit is contained in:
SHAREit
2026-08-27 15:51:22 +08:00
parent 51603ba251
commit 89ca7531f0
3 changed files with 14 additions and 6 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
{ {
"title": "King · 当月 Campaign 表现", "title": "King · 当月 Campaign 表现",
"generated_at": "2026-08-27T15:26:33+08:00", "generated_at": "2026-08-27T15:50:27+08:00",
"timezone": "Asia/Shanghai", "timezone": "Asia/Shanghai",
"period": { "period": {
"start": "2026-08-01", "start": "2026-08-01",
@@ -29,7 +29,7 @@
"completion": { "completion": {
"revenue": 27.47, "revenue": 27.47,
"gp": 19.52, "gp": 19.52,
"gp_rate": 71.05 "gp_rate": null
}, },
"time_progress_percent": 83.87, "time_progress_percent": 83.87,
"month_days": 31, "month_days": 31,
@@ -1196,6 +1196,6 @@
"performance_cost": "Cost 取 Sands Report 2.0 的 Cost 合计,需本地抓取", "performance_cost": "Cost 取 Sands Report 2.0 的 Cost 合计,需本地抓取",
"performance_gp": "GP = Revenue − Cost;GP rate = GP ÷ Revenue × 100", "performance_gp": "GP = Revenue − Cost;GP rate = GP ÷ Revenue × 100",
"performance_target": "Target 来自 Oversea FY2627 Monthly FFR 表 King 行", "performance_target": "Target 来自 Oversea FY2627 Monthly FFR 表 King 行",
"performance_completion": "完成率 = 实际 ÷ Target × 100;Target 为整月目标" "performance_completion": "完成率 = 实际 ÷ Target × 100,仅用于 Revenue 与 GP;GP rate 为比率,只看与目标的百分点差距"
} }
} }
+8 -1
View File
@@ -232,10 +232,17 @@ function renderPerformance(){
const color=diff>=0?'#23a673':'#e4568b'; const color=diff>=0?'#23a673':'#e4568b';
return `<span style="color:${color}">${diff>=0?'+':''}${num(diff,2)} pt</span>`; return `<span style="color:${color}">${diff>=0?'+':''}${num(diff,2)} pt</span>`;
}; };
/* 比率不做完成率,只看与目标的百分点差距 */
const ratePoints=(actualRate,targetRate)=>{
if(!ok(actualRate)||!ok(targetRate))return '—';
const diff=Number(actualRate)-Number(targetRate);
const color=diff>=0?'#23a673':'#e4568b';
return `<span style="color:${color}" title="实际 GP rate 与目标的差距">${diff>=0?'+':''}${num(diff,2)} pt</span>`;
};
const rows=[ const rows=[
['Revenue',usd(target.revenue),usd(actual.revenue),pct(done.revenue),gap(done.revenue)], ['Revenue',usd(target.revenue),usd(actual.revenue),pct(done.revenue),gap(done.revenue)],
['GP',usd(target.gp),usd(actual.gp),pct(done.gp),gap(done.gp)], ['GP',usd(target.gp),usd(actual.gp),pct(done.gp),gap(done.gp)],
['GP rate',pct(target.gp_rate),pct(actual.gp_rate),pct(done.gp_rate),'—'] ['GP rate',pct(target.gp_rate),pct(actual.gp_rate),'—',ratePoints(actual.gp_rate,target.gp_rate)]
]; ];
$('perfRows').innerHTML=rows.map(row=>`<tr><td>${row[0]}</td><td>${row[1]}</td><td>${row[2]}</td><td>${row[3]}</td><td>${row[4]}</td></tr>`).join('') $('perfRows').innerHTML=rows.map(row=>`<tr><td>${row[0]}</td><td>${row[1]}</td><td>${row[2]}</td><td>${row[3]}</td><td>${row[4]}</td></tr>`).join('')
+`<tr class="total-row"><td>Cost(Sands)</td><td>—</td><td>${usd(actual.cost)}</td><td>—</td><td>—</td></tr>`; +`<tr class="total-row"><td>Cost(Sands)</td><td>—</td><td>${usd(actual.cost)}</td><td>—</td><td>—</td></tr>`;
+3 -2
View File
@@ -425,7 +425,8 @@ def build_performance(revenue, sands, targets, period_days, month_days):
"completion": { "completion": {
"revenue": ratio(revenue, targets.get("revenue") if targets else None), "revenue": ratio(revenue, targets.get("revenue") if targets else None),
"gp": ratio(gp, targets.get("gp") if targets else None), "gp": ratio(gp, targets.get("gp") if targets else None),
"gp_rate": ratio(gp_rate, target_gp_rate), # GP rate 是比率,不计算完成率;页面显示与目标的百分点差距
"gp_rate": None,
}, },
"time_progress_percent": round(period_days / month_days * 100, 2) if month_days else None, "time_progress_percent": round(period_days / month_days * 100, 2) if month_days else None,
"month_days": month_days, "month_days": month_days,
@@ -558,7 +559,7 @@ def build_payload(now):
"performance_cost": "Cost 取 Sands Report 2.0 的 Cost 合计,需本地抓取", "performance_cost": "Cost 取 Sands Report 2.0 的 Cost 合计,需本地抓取",
"performance_gp": "GP = Revenue − Cost;GP rate = GP ÷ Revenue × 100", "performance_gp": "GP = Revenue − Cost;GP rate = GP ÷ Revenue × 100",
"performance_target": "Target 来自 Oversea FY2627 Monthly FFR 表 King 行", "performance_target": "Target 来自 Oversea FY2627 Monthly FFR 表 King 行",
"performance_completion": "完成率 = 实际 ÷ Target × 100;Target 为整月目标", "performance_completion": "完成率 = 实际 ÷ Target × 100,仅用于 Revenue 与 GP;GP rate 为比率,只看与目标的百分点差距",
}, },
} }