feat: 今日实时新增团购单量/流水字段,E1002 改五列竖排版式
今日实时由三列(单量/流水/毛利)扩展为五列,新增团购单量与团购流水;小屏 仍只显三列(跳过 wide 列),宽版 E1002 从「值 F36+右侧叠放环比同比」改为 四行竖排(名/值/环比/同比),避免五列每列 157px 放不下的问题。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
36
data.py
36
data.py
@@ -163,12 +163,32 @@ def _fmt_rate(rate):
|
||||
return ("down" if v < 0 else "up", f"{abs(v):05.2f}%")
|
||||
|
||||
|
||||
def _col(k, v, wow, yoy):
|
||||
return {"k": k, "v": v, "hb": _fmt_rate(wow), "tb": _fmt_rate(yoy)}
|
||||
def _col(k, v, wow, yoy, wide=False):
|
||||
"""一列指标。wide=True 表示仅宽版(800×480)展示,400×300 小屏三列放不下、渲染时跳过。"""
|
||||
return {"k": k, "v": v, "hb": _fmt_rate(wow), "tb": _fmt_rate(yoy), "wide": wide}
|
||||
|
||||
|
||||
def _placeholder_col(k):
|
||||
return {"k": k, "v": "--", "hb": (None, "--"), "tb": (None, "--")}
|
||||
def _placeholder_col(k, wide=False):
|
||||
return {"k": k, "v": "--", "hb": (None, "--"), "tb": (None, "--"), "wide": wide}
|
||||
|
||||
|
||||
# 今日实时五列:(标签、接口字段前缀、格式化、是否仅宽版)。字段前缀 base 对应 today{Base} / {base}WowRate / {base}YoyRate,
|
||||
# 见 docs/首页看板接口文档-20260911.md。团购两列为新增字段,旧后端无此键 → 占位 "--"(不报错、不影响其余列)。
|
||||
REALTIME_COLS = (
|
||||
("探店单量", "orderCount", _fmt_count, False),
|
||||
("探店流水", "payAmount", _fmt_money, False),
|
||||
("团购单量", "groupbuyOrderCount", _fmt_count, True),
|
||||
("团购流水", "groupbuyPayAmount", _fmt_money, True),
|
||||
("毛利", "grossProfit", _fmt_money, False), # 口径已含团购毛利(接口合计,未拆分)
|
||||
)
|
||||
|
||||
|
||||
def _col_from(rt, k, base, fmt, wide):
|
||||
cap = base[0].upper() + base[1:]
|
||||
v = rt.get(f"today{cap}")
|
||||
if v is None or v == "":
|
||||
return _placeholder_col(k, wide)
|
||||
return _col(k, fmt(v), rt.get(f"{base}WowRate"), rt.get(f"{base}YoyRate"), wide)
|
||||
|
||||
|
||||
# ---------- 橘喵业务数据 ----------
|
||||
@@ -181,14 +201,10 @@ def mao_fetch(now, with_trend=True):
|
||||
try:
|
||||
rt = jm_api.get_realtime()
|
||||
upd = (rt.get("dataTime") or "")[11:16] or upd
|
||||
cols = [
|
||||
_col("单量", _fmt_count(rt["todayOrderCount"]), rt["orderCountWowRate"], rt["orderCountYoyRate"]),
|
||||
_col("流水", _fmt_money(rt["todayPayAmount"]), rt["payAmountWowRate"], rt["payAmountYoyRate"]),
|
||||
_col("毛利", _fmt_money(rt["todayGrossProfit"]), rt["grossProfitWowRate"], rt["grossProfitYoyRate"]),
|
||||
]
|
||||
cols = [_col_from(rt, k, base, fmt, wide) for k, base, fmt, wide in REALTIME_COLS]
|
||||
except Exception as e:
|
||||
print(f"[警告] 今日经营拉取失败:{e}")
|
||||
cols = [_placeholder_col(k) for k in ("单量", "流水", "毛利")]
|
||||
cols = [_placeholder_col(k, wide) for k, _, _, wide in REALTIME_COLS]
|
||||
ok = False
|
||||
# 近30天趋势(按日期缓存,每天只拉一次)
|
||||
trend = _trend(now) if with_trend else {"dates": [], "series": []}
|
||||
|
||||
Reference in New Issue
Block a user