diff --git a/.workbuddy/memory/2026-10-23.md b/.workbuddy/memory/2026-10-23.md index 6375e2a..af2576a 100644 --- a/.workbuddy/memory/2026-10-23.md +++ b/.workbuddy/memory/2026-10-23.md @@ -205,3 +205,19 @@ Tomcat 的 skin 忘了 css(按钮白字无底色)、WP 登录页底部挂着 **教训**:同一功能改了两版(先 embed 后配置化),第二版要把上一版的资源一起清掉, 否则留一个没人引用的 `assets` 包。`go vet ./...` 不报、测试也不报(该包仍被旧测试引用时)。 + +## /user/questions:筛选项「已读 是/否」+ 手机端标签行不折行 + +- 筛选栏第 5 列标签「阅读状态」四字,在 ~53px 的窄列里必折两行。 + → 词条 `qlist.readStatus` 删除,换 `qlist.readFilter`(已读/Read/既読/已讀)+ + `qlist.filterYes`/`qlist.filterNo`(是/否)。**只改标签,option 的 value 仍是 + read/unread**(后端 `readParam` 校验依赖它)。`qlist.all`(全部)保留作默认不筛选。 +- 手机端「时间 + 状态标签 + 标记/置顶」挤一行:实测(360/390/375 iframe + dump-dom 量 rect) + 一行只有 306–336px,完整时间占 127px,2 标签 + 2 按钮要 343px → 必折。 + → 时间改 `tb-short`=m-d H:i / `tb-text`=Y-m-d H:i:s(复用 pill 的 640px 断点); + → `.qlist-pill` 基础值 min-width 40→34、padding 0 8→6(手机端省 20px), + 桌面 `@media(min-width:640px)` 仍覆盖回 62px/10px。 + 结果:2 标签 + 2 按钮在 360 就单行;「私密+待答+未读」三标签仍会在 ≤375 折行(可接受)。 +- 量手机宽度别用 `chrome --window-size=360`:Windows headless=old 有 ~500px 最小窗宽, + 实测 innerWidth 恒为 500。用 360px 宽 iframe + `--allow-file-access-from-files`, + 结果由 iframe 里 `window.top.document.title` 带回,`--dump-dom` 读。 diff --git a/internal/i18n/dict_en.go b/internal/i18n/dict_en.go index ffc0442..cac1ba8 100644 --- a/internal/i18n/dict_en.go +++ b/internal/i18n/dict_en.go @@ -399,12 +399,17 @@ var enDict = map[string]string{ "qlist.pinned": "Pinned", "qlist.pin": "Pin", "qlist.unpin": "Unpin", - "qlist.readStatus": "Read status", "qlist.read": "Read", "qlist.unread": "Unread", "qlist.statsRead": "Read", "qlist.statsUnread": "Unread", + // Filter bar: label is "Read" (not "Read status") so it fits the narrow mobile column; + // Yes/No is used instead of Read/Unread for the same reason. + "qlist.readFilter": "Read", + "qlist.filterYes": "Yes", + "qlist.filterNo": "No", + // Question submitted page (v4) "success.title": "Question sent successfully!", "success.yourQuestion": "Your question:", diff --git a/internal/i18n/dict_ja.go b/internal/i18n/dict_ja.go index 14b076d..c58dee9 100644 --- a/internal/i18n/dict_ja.go +++ b/internal/i18n/dict_ja.go @@ -399,12 +399,16 @@ var jaDict = map[string]string{ "qlist.pinned": "ピン留め中", "qlist.pin": "ピン留め", "qlist.unpin": "ピン留め解除", - "qlist.readStatus": "既読ステータス", "qlist.read": "既読", "qlist.unread": "未読", "qlist.statsRead": "既読", "qlist.statsUnread": "未読", + // 絞り込みバー:ラベルは「既読」だけ(「既読ステータス」はスマホの狭い列で折り返す) + "qlist.readFilter": "既読", + "qlist.filterYes": "はい", + "qlist.filterNo": "いいえ", + // 質問送信完了ページ(v4) "success.title": "質問を送信しました!", "success.yourQuestion": "あなたの質問:", diff --git a/internal/i18n/dict_zh_cn.go b/internal/i18n/dict_zh_cn.go index ba1f8db..6c63340 100644 --- a/internal/i18n/dict_zh_cn.go +++ b/internal/i18n/dict_zh_cn.go @@ -399,12 +399,17 @@ var zhCNDict = map[string]string{ "qlist.pinned": "置顶中", "qlist.pin": "置顶", "qlist.unpin": "取消置顶", - "qlist.readStatus": "阅读状态", "qlist.read": "已读", "qlist.unread": "未读", "qlist.statsRead": "已读", "qlist.statsUnread": "未读", + // 筛选栏:标签用「已读」而不是「阅读状态」——四字标签在手机窄列里会折成两行; + // 选项 是/否 比 已读/未读 更短,语义等价(「已读:是」= 已读)。 + "qlist.readFilter": "已读", + "qlist.filterYes": "是", + "qlist.filterNo": "否", + // 提问成功页(v4) "success.title": "提问发送成功!", "success.yourQuestion": "你的提问:", diff --git a/internal/i18n/dict_zh_tw.go b/internal/i18n/dict_zh_tw.go index 321b4bf..4e9ea7f 100644 --- a/internal/i18n/dict_zh_tw.go +++ b/internal/i18n/dict_zh_tw.go @@ -399,12 +399,16 @@ var zhTWDict = map[string]string{ "qlist.pinned": "置頂中", "qlist.pin": "置頂", "qlist.unpin": "取消置頂", - "qlist.readStatus": "閱讀狀態", "qlist.read": "已讀", "qlist.unread": "未讀", "qlist.statsRead": "已讀", "qlist.statsUnread": "未讀", + // 篩選列:標籤用「已讀」,四字標籤在手機窄欄會折成兩行 + "qlist.readFilter": "已讀", + "qlist.filterYes": "是", + "qlist.filterNo": "否", + // 提問成功頁(v4) "success.title": "提問發送成功!", "success.yourQuestion": "你的提問:", diff --git a/templates/user/question-list.html b/templates/user/question-list.html index 2565c9b..8bea28b 100644 --- a/templates/user/question-list.html +++ b/templates/user/question-list.html @@ -89,8 +89,11 @@ align-items: center; justify-content: center; height: 24px; - min-width: 40px; - padding: 0 8px; + /* 手机端收窄横向内边距:一行要塞下「时间 + 状态标签 + 操作按钮」, + 8px 的内边距在 360/390 宽下刚好差十几像素把按钮挤到第二行。 + ≥640px 的桌面样式在下面单独覆盖回 62px/10px,桌面端不受影响。 */ + min-width: 34px; + padding: 0 6px; box-sizing: border-box; font-size: var(--tb-fs-xs); line-height: 1; @@ -257,11 +260,11 @@
- +
@@ -278,7 +281,10 @@
- {{Date .CreatedAt "Y-m-d H:i:s"}} + + {{Date .CreatedAt "m-d H:i"}}{{Date .CreatedAt "Y-m-d H:i:s"}} {{ if .IsPinned }} {{t $.LangCode "qlist.pinnedShort"}}{{t $.LangCode "qlist.pinned"}} {{ end }}