From 8d9cf658a35240ffd660b2e9f31b3ec021807c3a Mon Sep 17 00:00:00 2001 From: chun_qiu Date: Tue, 20 Oct 2026 02:42:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(v1.11.1):=20=E6=B7=B1=E6=B8=8A=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E8=89=B2=E5=9D=97=E9=80=90=E5=91=A8=E6=9C=9F=E5=87=8F?= =?UTF-8?q?=E6=B7=A1=EF=BC=8C=E6=96=B9=E4=BE=BF=E4=B8=80=E7=9C=BC=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E5=91=A8=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 深渊模式的整段色块增加按周期递减的底色浓度:第一个周期 22%,之后线性 减淡,最后一个周期 10%(X 个周期时按 X 等分);同一周期内所有格子保持 同一浓度,跨周期边界会出现一档明显的深浅变化。 - 通行证仍保持固定 18% 的自定义色淡化,不受影响。 - DayCell 新增 BlockPercent,日历格子通过 --block-pct 传给 color-mix; 旧缓存页面没有该变量时回落到 18%。 - 版本号 1.11.0 → 1.11.1。 验证:4 周期深渊在日历上的浓度为 22/18/14/10%;截图实测第 1 周期底色 rgb(212,223,235)、第 2 周期 rgb(220,229,239),同周期内一致;gofmt / go vet / go test 全绿。 --- README.md | 2 +- internal/web/handlers_calendar.go | 26 ++++++++++++++++++++++ internal/web/static/app.css | 4 ++-- internal/web/templates/pages/calendar.html | 2 +- main.go | 2 +- 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c9eb932..d904a9a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ┌───────────────────────────────────────────────┐ │ 代 打 台 · 代打管理平台 │ └───────────────────────────────────────────────┘ - 版本 1.11.0 配置文件 daili.ini + 版本 1.11.1 配置文件 daili.ini 数据库 D:\代打台\daili.db 访问地址: 本机 http://127.0.0.1:17777 diff --git a/internal/web/handlers_calendar.go b/internal/web/handlers_calendar.go index 11dc231..cfc59a2 100644 --- a/internal/web/handlers_calendar.go +++ b/internal/web/handlers_calendar.go @@ -32,6 +32,8 @@ type DayCell struct { BlockTotal int BlockText string BlockTitle string + // BlockPercent 色块底色浓度:通行证固定 18%,深渊按周期依次减淡 + BlockPercent int // PendingCount 当日还没完成的单数(= TaskCount - DoneCount) PendingCount int Tickets []Ticket @@ -448,6 +450,11 @@ func (s *Server) handleCalendar(w http.ResponseWriter, r *http.Request) { cell.BlockTotal = cs.blockTotal() cell.BlockText = fmt.Sprintf("%d/%d", cell.BlockDone, cell.BlockTotal) cell.BlockTitle = cs.sub.PackageName + " · " + cell.BlockText + cell.BlockPercent = 18 + if cs.sub.Abyss && cs.sub.CycleDays > 0 { + idx := domain.CycleIndex(cs.start, day, cs.sub.CycleDays) + cell.BlockPercent = abyssBlockPercent(idx, cs.sub.TotalCount) + } } continue } @@ -657,6 +664,25 @@ func assigneeStrip(tickets []Ticket) []string { return out } +// abyssBlockPercent 深渊色块浓度:第一个周期 22%,之后每个周期依次减淡, +// 最后一个周期 10%(周期数大于 1 时线性过渡)。 +func abyssBlockPercent(idx, total int) int { + if total <= 1 { + return 22 + } + if idx < 0 { + idx = 0 + } + if idx >= total { + idx = total - 1 + } + pct := 22 - (idx*12)/(total-1) + if pct < 10 { + pct = 10 + } + return pct +} + func heatLevel(n int) int { switch { case n <= 0: diff --git a/internal/web/static/app.css b/internal/web/static/app.css index 7243f46..4684ed4 100644 --- a/internal/web/static/app.css +++ b/internal/web/static/app.css @@ -798,10 +798,10 @@ fieldset { border: 0; margin: 0; padding: 0; min-width: 0; } /* 通行证 / 深渊:整段连续着色,每格显示同一个「已完成/总数」 */ .cal-cell.has-block { - background: color-mix(in srgb, var(--block) 18%, var(--app-surface)); + background: color-mix(in srgb, var(--block) var(--block-pct, 18%), var(--app-surface)); border-color: color-mix(in srgb, var(--block) 24%, var(--app-border)); } -.cal-cell.has-block:hover { background: color-mix(in srgb, var(--block) 26%, var(--app-surface)); } +.cal-cell.has-block:hover { background: color-mix(in srgb, var(--block) calc(var(--block-pct, 18%) + 6%), var(--app-surface)); } .cal-cell.has-block.today .dnum { background: var(--block); color: #fff; } .cell-block { display: inline-flex; align-items: center; gap: 4px; diff --git a/internal/web/templates/pages/calendar.html b/internal/web/templates/pages/calendar.html index 5af21b0..7ec4dcb 100644 --- a/internal/web/templates/pages/calendar.html +++ b/internal/web/templates/pages/calendar.html @@ -41,7 +41,7 @@
{{range .}} + href="/calendar?y={{$.D.Year}}&m={{$.D.Month}}&d={{.Date}}&{{$.D.FilterQuery}}" role="gridcell"{{if .BlockColor}} style="--block:{{.BlockColor}};--block-pct:{{.BlockPercent}}%"{{end}}> {{if .Strip}}{{end}}
{{.Day}} diff --git a/main.go b/main.go index c7b07bc..7369d70 100644 --- a/main.go +++ b/main.go @@ -26,7 +26,7 @@ import ( "daili/internal/web" ) -const version = "1.11.0" +const version = "1.11.1" func main() { cfgFlag := flag.String("config", "", "配置文件路径(默认:exe 同级的 "+config.FileName+")")