From 255fb8a2400452d500815e948cc87103ffc39716 Mon Sep 17 00:00:00 2001 From: laoyang Date: Thu, 5 Nov 2026 20:14:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E7=AB=AF=EF=BC=9A=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=8C=89=E9=92=AE=E6=95=B4=E8=A1=8C=20+=20=E5=B7=A6?= =?UTF-8?q?=E4=B8=8A=E8=A7=92=E3=80=8C=E7=BC=96=E8=BE=91=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E3=80=8D+=20=E8=A1=A5=E5=9B=9E=E5=88=86=E7=B1=BB=E4=B8=8E?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=20(#83)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户 2026-11-05: 「保存按钮感觉太小了。要不也像鸿蒙版一样长长的一条?」 「最左上角也是一样,应该显示"编辑任务",而不是显示任务的标题。」 「你倒是提醒我了,分类和重复,也就是循环,都需要加上,鸿蒙端也得加上。」 ① 保存按钮 → 整行长条 原来 `.btn-sm` 是内联宽(按文字撑),在 648px 宽的面板里又小又偏。 ⇒ `.tk-attr-actions > .btn { width:100%; height:42px; justify-content:center }` 实测:648 x 42,占行宽 100% ✅ ② 左上角改「编辑任务」 根因:`entry_popup.js` 的 `paintDetail()` 第 142 行永远是 titleEl().textContent = data.title || 详情 任务面板带 `data.panel`,它本身就是编辑面板,标题栏写任务名会让用户 以为"这是详情页,只是恰好能改"。 ⇒ `var headText = data.panel ? 编辑任务 : (data.title || 详情);` ⚠️ 其它来源(观影/旅程/日程/纪念日)**保持显示名字**:它们点开的 确实是"这条记录的详情",显示名字才是对的。 ③ 补回分类与循环 上一轮我按「不需要额外信息」把这两项删了 —— 理解偏了: 用户指的是"不要编辑表单里那些多余字段",不是"分类/循环不要"。 ⇒ 补回,位置放在协作人之后(用户指定的前四项顺序不动)。 ⚠️ `tasks/panel_save` 的 `$sd` 需要能接这两个字段 —— 见服务端那侧, 它用 `array_key_exists` 判"传没传",所以不传时保留原值、传了就更新。 实测渲染:任务标题 → 截止 → 负责人 → 备注 → 协作人 → 分类 → 循环 ✅ --- assets/css/app.css | 12 +++++++++++ assets/js/entry_popup.js | 10 +++++++++- templates/tasks/_panel.php | 41 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/assets/css/app.css b/assets/css/app.css index 0a9eef0..7dad6b6 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -7006,6 +7006,18 @@ h6.md-h { font-size: 17px; color: var(--muted); } 现在控件占满整行,按钮左缘就是容器左缘,再加 56 会缩进去一截。 */ display: flex; align-items: center; gap: 10px; } +/* 🔴 #83(用户 2026-11-05):「保存按钮感觉太小了。要不也像鸿蒙版一样长长的一条?」 + + 原来 `.btn-sm` 是内联宽度(按文字撑),在 648px 宽的面板里显得又小又偏。 + ⇒ 面板里的保存按钮改成**整行长条**:与上面的输入框同宽、同高(42), + 视觉上就是"这一列的最后一步"。 + ⚠️ 用 `width:100%` 而不是 `flex:1`:`.tk-attr-actions` 是 flex 容器, + `flex:1` 在有其它兄弟时会按比例分 —— 这里只有一个按钮, + `width:100%` 更直接、不受后续增删影响。 */ +.tk-attr-actions > .btn { + width: 100%; height: 42px; justify-content: center; + font-size: 14px; font-weight: 500; border-radius: var(--radius-s); +} .tk-attr-tip { font-size: 12px; color: var(--green, #2E7D4F); } /* #82:只读态的值也做成"框"的样子(浅底圆角), 与可编辑态同宽同高 —— 否则只读用户看到的是一行裸文字,和编辑态差太多。 */ diff --git a/assets/js/entry_popup.js b/assets/js/entry_popup.js index cd8b8df..2886aed 100644 --- a/assets/js/entry_popup.js +++ b/assets/js/entry_popup.js @@ -139,7 +139,15 @@ */ function paintDetail(data) { var isEvent = (data.source === 'event'); - if (titleEl()) { titleEl().textContent = data.title || '详情'; } + /* 🔴 #83(用户 2026-11-05):「最左上角也是一样,应该显示"编辑任务", + 而不是显示任务的标题。」 + + 任务面板(带 `data.panel`)本身就是**编辑面板** —— 标题栏写任务标题 + 会让用户以为"这是详情页,只是恰好能改"。 + 其它来源(观影/旅程/日程/纪念日)仍显示各自的标题: + 它们点开的确实是"这条记录的详情",显示名字才是对的。 */ + var headText = data.panel ? '编辑任务' : (data.title || '详情'); + if (titleEl()) { titleEl().textContent = headText; } if (bodyEl()) { bodyEl().innerHTML = '
' + rowsHtml(data.rows) + '
'; } /* 🔴 v78:任务带 `panel`(可就地操作的那块)—— 面板比只读信息宽一号, 所以这里按**有没有 panel** 决定宽度,而不是按 source。 */ diff --git a/templates/tasks/_panel.php b/templates/tasks/_panel.php index 1a06ab3..095b240 100644 --- a/templates/tasks/_panel.php +++ b/templates/tasks/_panel.php @@ -243,6 +243,47 @@ $tpLate = $tpDue !== '' && $tpStatus !== 'done' && \App\Task::isOverdue($tpD + +
+ 分类 + + + + + +
+ +
+ 循环 + + + + + +
+