fix(user/questions): 筛选标签改为「已读 是/否」,手机端条目标签行不再折行
- 筛选栏第 5 列标签「阅读状态」四字,在手机约 53px 的窄列里必然折成两行, 改为「已读」,选项改为 全部/是/否(option value 仍是 read/unread,后端不变)。 词条 qlist.readStatus 由 qlist.readFilter + qlist.filterYes/filterNo 取代,四语言同步。 - 条目行「时间 + 状态标签 + 标记/置顶」在手机上放不下:实测 360 宽可用 306px, 完整时间单条就占 127px,2 标签 + 2 按钮需 343px。手机端时间改为「月-日 时:分」 (tb-short/tb-text 复用状态标签的 640px 断点,桌面端仍显示完整年月日时分秒), 同时把 .qlist-pill 的基础内边距 40/8 收到 34/6(桌面 @media 仍覆盖回 62/10)。 结果:2 标签 + 2 按钮在 360 宽即单行;三标签(私密+待答+未读)在 ≤375 仍会折行。
This commit is contained in:
@@ -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` 读。
|
||||
|
||||
@@ -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:",
|
||||
|
||||
@@ -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": "あなたの質問:",
|
||||
|
||||
@@ -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": "你的提问:",
|
||||
|
||||
@@ -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": "你的提問:",
|
||||
|
||||
@@ -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 @@
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 120px;">
|
||||
<label class="uk-form-label uk-text-small">{{t .LangCode "qlist.readStatus"}}</label>
|
||||
<label class="uk-form-label uk-text-small">{{t .LangCode "qlist.readFilter"}}</label>
|
||||
<select name="read" class="uk-select uk-form-small" onchange="this.form.submit()" style="width: 100%;">
|
||||
<option value="all" {{if eq .SelectedRead "all"}}selected{{end}}>{{t .LangCode "qlist.all"}}</option>
|
||||
<option value="read" {{if eq .SelectedRead "read"}}selected{{end}}>{{t .LangCode "qlist.read"}}</option>
|
||||
<option value="unread" {{if eq .SelectedRead "unread"}}selected{{end}}>{{t .LangCode "qlist.unread"}}</option>
|
||||
<option value="read" {{if eq .SelectedRead "read"}}selected{{end}}>{{t .LangCode "qlist.filterYes"}}</option>
|
||||
<option value="unread" {{if eq .SelectedRead "unread"}}selected{{end}}>{{t .LangCode "qlist.filterNo"}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -278,7 +281,10 @@
|
||||
<div class="uk-flex uk-flex-middle uk-flex-wrap qlist-pills" style="gap: 6px;">
|
||||
<!-- 左:时间 + 状态标签 -->
|
||||
<div class="uk-flex uk-flex-middle uk-flex-wrap" style="gap: 6px;">
|
||||
<span class="uk-text-small uk-text-muted">{{Date .CreatedAt "Y-m-d H:i:s"}}</span>
|
||||
<!-- 手机端只显示「月-日 时:分」:完整时间占 127px,配合状态标签 + 操作按钮后
|
||||
一行放不下(360/390 宽实测会折行);桌面端仍显示完整年月日时分秒。
|
||||
tb-short / tb-text 与右侧状态标签共用 640px 这一个断点。 -->
|
||||
<span class="uk-text-small uk-text-muted"><span class="tb-short">{{Date .CreatedAt "m-d H:i"}}</span><span class="tb-text">{{Date .CreatedAt "Y-m-d H:i:s"}}</span></span>
|
||||
{{ if .IsPinned }}
|
||||
<span class="uk-label uk-label-warning qlist-pill" title="{{t $.LangCode "qlist.pinned"}}"><span class="tb-short">{{t $.LangCode "qlist.pinnedShort"}}</span><span class="tb-text">{{t $.LangCode "qlist.pinned"}}</span></span>
|
||||
{{ end }}
|
||||
|
||||
Reference in New Issue
Block a user