feat: 今日实时 0% 画等号+金额小号 ¥/万,数值与状态栏数字加粗
- 环比/同比增长率恰为 0 时方向记 flat,三角位画等号(与用量行 pace 持平一致) - 金额拆为「¥ / 主数字 / 万」三段,¥ 与 万 用 F12 小号伪粗体、与 F24 主数字基线对齐;单量列不变 - 环比/同比数值、BTC 涨跌幅、顶部电量/温度/湿度数字改 F12 伪粗体(字号不变),占位 -- 不加粗 - 等号绘制抽为基类 _eq 供 pace 与环比/同比共用;网页版 flat 同样输出等号 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
22
data.py
22
data.py
@@ -145,33 +145,37 @@ def weather_fetch():
|
||||
|
||||
|
||||
# ---------- 格式化 ----------
|
||||
# 数值统一拆成三段 (前缀, 主数字, 后缀):渲染器把主数字画大、前后缀画小(如「¥」「万」,2026-09-14 用户要求),
|
||||
# 拼接后的整串仍放在 col["v"],供网页版等只认字符串的消费方使用。
|
||||
def _fmt_count(n):
|
||||
return f"{int(n):,}" # 千分位,如 1,284
|
||||
return ("", f"{int(n):,}", "") # 千分位,如 1,284
|
||||
|
||||
|
||||
def _fmt_money(yuan):
|
||||
"""元金额 → 紧凑展示:≥1万显示「X.XX万」(两位小数),否则取整元。"""
|
||||
"""元金额 → 紧凑展示:≥1万显示「¥X.XX万」(两位小数),否则「¥整数元」;人民币符号作小号前缀、万作小号后缀。"""
|
||||
v = float(yuan)
|
||||
return f"{v / 10000:.2f}万" if abs(v) >= 10000 else f"{v:.0f}"
|
||||
return ("¥", f"{v / 10000:.2f}", "万") if abs(v) >= 10000 else ("¥", f"{v:.0f}", "")
|
||||
|
||||
|
||||
def _fmt_rate(rate):
|
||||
"""增长率字符串 → (方向, 文本)。null/空 → (None, '--'),方向 None 表示不画三角。
|
||||
"""增长率字符串 → (方向, 文本)。null/空 → (None, '--'),方向 None 表示不画三角;
|
||||
恰为 0 → 'flat',渲染器在三角位画等号「=」(与用量行 pace 持平一致,2026-09-14 用户要求,原来 0 也画上三角)。
|
||||
数值统一两位小数;整数部分不足两位用前导 0 补齐(6.5→06.50),便于环比/同比上下对齐;
|
||||
三/四位数(≥100%)原样完整输出不截断。"""
|
||||
if rate is None or rate == "":
|
||||
return (None, "--")
|
||||
v = float(rate)
|
||||
return ("down" if v < 0 else "up", f"{abs(v):05.2f}%")
|
||||
direction = "flat" if v == 0 else "down" if v < 0 else "up"
|
||||
return (direction, f"{abs(v):05.2f}%")
|
||||
|
||||
|
||||
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 _col(k, parts, wow, yoy, wide=False):
|
||||
"""一列指标。parts 为 (前缀, 主数字, 后缀);wide=True 表示仅宽版(800×480)展示,400×300 小屏三列放不下、渲染时跳过。"""
|
||||
return {"k": k, "v": "".join(parts), "vp": tuple(parts), "hb": _fmt_rate(wow), "tb": _fmt_rate(yoy), "wide": wide}
|
||||
|
||||
|
||||
def _placeholder_col(k, wide=False):
|
||||
return {"k": k, "v": "--", "hb": (None, "--"), "tb": (None, "--"), "wide": wide}
|
||||
return {"k": k, "v": "--", "vp": ("", "--", ""), "hb": (None, "--"), "tb": (None, "--"), "wide": wide}
|
||||
|
||||
|
||||
# 今日实时五列:(标签、接口字段前缀、格式化、是否仅宽版)。字段前缀 base 对应 today{Base} / {base}WowRate / {base}YoyRate,
|
||||
|
||||
Reference in New Issue
Block a user