fix(v1.11.5): 深渊日历按单周期显示 1/1 或 0/1,工作台与大屏同步
build / build-and-test (push) Successful in 3m26s

- 整段色块计数改为按当前格所在周期:cycleDone → 1/1,否则 0/1;
  不再把全局 used/total 重复到每一格。
- 抽出 blockCellText / blockCellPercent,工作台、大屏、客户自助页共用同一口径;
  通行证保持 0/1 / 1/1,深渊按所在周期 1/1 / 0/1。
- 大屏恢复通行证 / 深渊页签;screenCalSubs 补上缺失的 start(之前为零值,
  导致大屏周期判定和色阶都算错),大屏格子现在显示与工作台一致的 1/1、0/1
  以及 34%→4% 的周期色阶。
- 大屏色块样式:has-block / scr-block,亮暗两套都可读。
- 版本 1.11.5;README 的深渊说明同步,「工作台、大屏、客户自助页同一口径」。

验证:测试数据第一周期完成、第二周期未完成,工作台、 大屏、客户自助页均显示
20–26 为 1/1、27–31 为 0/1;周期浓度 34%/24%/14%/4%;gofmt / go vet /
go test 全绿。
This commit is contained in:
2026-10-20 04:06:39 +08:00
parent 2e2d7d4bdd
commit 0392f44cf1
7 changed files with 88 additions and 44 deletions
+2 -6
View File
@@ -295,13 +295,9 @@ func (s *Server) buildPortal(c store.Customer, tail, name, month string) *portal
if cs.isBlock() {
if cs.blockCovers(ds) && pd.BlockText == "" {
pd.BlockColor = sub.PackageColor
pd.BlockText = fmt.Sprintf("%d/%d", cs.blockDone(), cs.blockTotal())
pd.BlockText = blockCellText(cs, ds)
pd.BlockTitle = sub.PackageName + " · " + pd.BlockText
pd.BlockPercent = 18
if sub.Abyss && sub.CycleDays > 0 {
idx := domain.CycleIndex(cs.start, d, sub.CycleDays)
pd.BlockPercent = abyssBlockPercent(idx, sub.TotalCount)
}
pd.BlockPercent = blockCellPercent(cs, d)
}
continue
}