feat: 今日实时新增团购单量/流水字段,E1002 改五列竖排版式
今日实时由三列(单量/流水/毛利)扩展为五列,新增团购单量与团购流水;小屏 仍只显三列(跳过 wide 列),宽版 E1002 从「值 F36+右侧叠放环比同比」改为 四行竖排(名/值/环比/同比),避免五列每列 157px 放不下的问题。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,8 +9,9 @@ reTerminal E1002 渲染层 —— 复用 renderer.DashboardRenderer 的组件(
|
||||
A 顶部(0~90) :大时钟+日期(左)|天气(右,贴 790)——与三色版同一套组件与尺寸。
|
||||
B 用量(96~206) :左半 **Claude Usage**(all 5h / all 7d / fable 7d)|竖规 x=400|右半 **ChatGPT Usage**(mock:all 5h / all 7d / codex 7d)。
|
||||
行组件沿用三色版的紧凑单行 `_usage_row`(行距 31),标签用 bar["label"](statusline 同款写法),列宽按最长标签自适应。
|
||||
C 今日(218~304):**橘喵·今日实时** 三列全宽:指标名 F12 列顶居中;「值 F36 粗 + 右侧叠放的环比/同比」整组居中。
|
||||
D 行情(~322~470):**BTC/USDT 时K(近 72 小时)** 蜡烛图(`_btc_chart`,数据来自 btc_api:OKX 主源、Coinbase/Huobi 备源,5 分钟缓存;
|
||||
C 今日(218~318):**橘喵·今日实时** 五列全宽(探店单量/探店流水/团购单量/团购流水/毛利):列内四行逐行居中——
|
||||
名 F12 / 值 F24 粗 / 环比 / 同比(五列每列 ~157px,原「值 F36 + 右侧叠放环比/同比」并排组放不下)。
|
||||
D 行情(~336~470):**BTC/USDT 时K(近 72 小时)** 蜡烛图(`_btc_chart`,数据来自 btc_api:OKX 主源、Coinbase/Huobi 备源,5 分钟缓存;
|
||||
周期/根数由 BTC_BAR/BTC_LIMIT 配置)——标题右侧最新价 + 24h 涨跌幅;**涨(收≥开)绿、跌红**,实心蜡烛 + 1px 影线;
|
||||
右侧最高/最低/最新价标签,最新价一道点规;底部首/中/末时间。
|
||||
可选(470~479):六色测试色条(config.E1002_COLOR_STRIP,默认关;真机校准色彩量化时打开)。
|
||||
@@ -100,28 +101,25 @@ class E1002Renderer(DashboardRenderer):
|
||||
return y - 31 + 18 # 末行进度条底部(cy=y+10,条高 15 → 底 y+17)
|
||||
|
||||
def _realtime(self, y0, mao, x0=8, x1=None):
|
||||
"""橘喵·今日实时三列(宽版):指标名 F12 在每列顶部、列内水平居中作小标题;
|
||||
「值 F36 粗 + 右侧上下叠放的 环比/同比(F12)」整组在列内水平居中、竖直略偏下(给小标题让位)。
|
||||
(曾试过名与值同行——名参与居中会把整组推偏;也试过名贴左上角——用户要求改回居中。)返回区块底部 y。"""
|
||||
"""橘喵·今日实时五列(宽版):探店单量 / 探店流水 / 团购单量 / 团购流水 / 毛利,列内四行逐行水平居中:
|
||||
指标名 F12(y0+17)→ 值 F24 粗(y0+34)→ 环比(y0+68)→ 同比(y0+84,行距 16);按墨迹框算,名↔值 ~9px、值↔环比 ~6px、环比↔同比 5px。
|
||||
为什么不再是「值 F36 + 右侧叠放环比/同比」的并排组:五列每列仅 ~157px,F36 并排组(如「2.12万」102+间隙+环比 77)
|
||||
近 194px 放不下;降到 F24 后并排组仍有 156px,贴着两侧分隔线太挤。竖排最宽元素(「1234.56%」一行 89px)余量充足,
|
||||
与 400×300 小屏同构。(更早曾试过名与值同行、名贴左上角角标,均已否。)返回区块底部 y。"""
|
||||
x1 = self.W - 8 if x1 is None else x1
|
||||
self._label(y0, "橘喵·今日实时", right=f'上次更新 {mao["upd"]}', x0=x0 + 2, x1=x1 - 2)
|
||||
cols = mao["cols"]; n = len(cols)
|
||||
cw = (x1 - x0) / n
|
||||
TAG_Y, CY, GAP = y0 + 22, y0 + 56, 14 # 角标顶部;组竖直中心;值↔环比块 间隙
|
||||
TAG_Y, VAL_Y, HB_Y, TB_Y = y0 + 17, y0 + 34, y0 + 68, y0 + 84
|
||||
for i in range(1, n):
|
||||
self.vdash(x0 + cw * i, y0 + 22, y0 + 84)
|
||||
self.vdash(x0 + cw * i, y0 + 22, y0 + 98)
|
||||
for i, c in enumerate(cols):
|
||||
cx0 = x0 + cw * i
|
||||
cx = cx0 + cw / 2
|
||||
self.ctext(cx, TAG_Y, c["k"], self.F12) # 列顶小标题,水平居中
|
||||
vw = self._tw(c["v"], self.F36) + 1
|
||||
cmpw = max(self._cmp_w("环比", c["hb"]), self._cmp_w("同比", c["tb"]))
|
||||
gx = cx - (vw + GAP + cmpw) / 2 # 整组左端(不含角标)
|
||||
self._mid(gx, CY, c["v"], self.F36, bold=1)
|
||||
_, t, _, b = self.F12.getbbox("环比")
|
||||
self._cmp_at(gx + vw + GAP, CY - 9 - (t + b) / 2, "环比", c["hb"]) # 两行 F12 叠放(行距 18),中心对齐 CY
|
||||
self._cmp_at(gx + vw + GAP, CY + 9 - (t + b) / 2, "同比", c["tb"])
|
||||
return y0 + 86
|
||||
cx = x0 + cw * (i + 0.5)
|
||||
self.ctext(cx, TAG_Y, c["k"], self.F12)
|
||||
self.ctext(cx, VAL_Y, c["v"], self.F24, bold=1)
|
||||
self._cmp_line(cx, HB_Y, "环比", c["hb"])
|
||||
self._cmp_line(cx, TB_Y, "同比", c["tb"])
|
||||
return y0 + 100
|
||||
|
||||
@staticmethod
|
||||
def _fmt_price(v):
|
||||
@@ -223,7 +221,7 @@ class E1002Renderer(DashboardRenderer):
|
||||
DIV2_Y = max(y_l, y_r) + 16 # 分割线离末条进度条 16px,避免拥挤
|
||||
self.hdash(8, self.W - 8, DIV2_Y)
|
||||
|
||||
# ---- C. 橘喵·今日实时(全宽三列)----
|
||||
# ---- C. 橘喵·今日实时(全宽五列)----
|
||||
end_c = self._realtime(DIV2_Y + 6, mao)
|
||||
DIV3_Y = end_c + 8
|
||||
self.hdash(8, self.W - 8, DIV3_Y)
|
||||
|
||||
Reference in New Issue
Block a user