网页端:保存按钮整行 + 左上角「编辑任务」+ 补回分类与循环 (#83)
用户 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` 判"传没传",所以不传时保留原值、传了就更新。
实测渲染:任务标题 → 截止 → 负责人 → 备注 → 协作人 → 分类 → 循环 ✅
This commit is contained in:
@@ -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:只读态的值也做成"框"的样子(浅底圆角),
|
||||
与可编辑态同宽同高 —— 否则只读用户看到的是一行裸文字,和编辑态差太多。 */
|
||||
|
||||
@@ -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 = '<dl class="kv">' + rowsHtml(data.rows) + '</dl>'; }
|
||||
/* 🔴 v78:任务带 `panel`(可就地操作的那块)—— 面板比只读信息宽一号,
|
||||
所以这里按**有没有 panel** 决定宽度,而不是按 source。 */
|
||||
|
||||
@@ -243,6 +243,47 @@ $tpLate = $tpDue !== '' && $tpStatus !== 'done' && \App\Task::isOverdue($tpD
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php /* 🔴 #83(用户 2026-11-05):「你倒是提醒我了,分类和重复,也就是循环,
|
||||
都需要加上,鸿蒙端也得加上。」
|
||||
|
||||
#82 里我按「不需要额外信息」把这两项删了 —— 那是我理解偏了,
|
||||
用户说的是"不要编辑表单里那些额外的字段",不是"分类/循环不要"。
|
||||
⇒ 补回。位置放在协作人之后:用户明确指定的前四项
|
||||
(截止/负责人/备注/协作人)顺序不动,这两项作为补充排在后面。 */ ?>
|
||||
<div class="tk-attr-row">
|
||||
<span class="tk-attr-lb">分类</span>
|
||||
<?php if ($tpCan): ?>
|
||||
<select class="select" name="category_id" id="tkp-category">
|
||||
<option value="0">未分类</option>
|
||||
<?php foreach ($tpCats as $tpC): ?>
|
||||
<?php $tpCid = (int)($tpC['id'] ?? 0); ?>
|
||||
<option value="<?= $tpCid ?>"
|
||||
<?= $tpCid === (int)($tpT['category_id'] ?? 0) ? ' selected' : '' ?>>
|
||||
<?= e((string)($tpC['name'] ?? '')) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php else: ?>
|
||||
<span class="tk-attr-val"><?= $tpCatName !== '' ? e($tpCatName) : '未分类' ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="tk-attr-row">
|
||||
<span class="tk-attr-lb">循环</span>
|
||||
<?php if ($tpCan): ?>
|
||||
<select class="select" name="repeat_rule" id="tkp-repeat">
|
||||
<?php foreach (\App\Task::REPEAT as $tpRk => $tpRv): ?>
|
||||
<option value="<?= e($tpRk) ?>"
|
||||
<?= (string)($tpT['repeat_rule'] ?? '') === (string)$tpRk ? ' selected' : '' ?>>
|
||||
<?= e($tpRv) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php else: ?>
|
||||
<span class="tk-attr-val"><?= e(\App\Task::repeatWord((string)($tpT['repeat_rule'] ?? ''))) ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php if ($tpCan): ?>
|
||||
<div class="tk-attr-actions">
|
||||
<button type="button" class="btn btn-sm" data-tk-act="save-attrs">保存</button>
|
||||
|
||||
Reference in New Issue
Block a user