「现在需要把所有这些修改功能,都添加到点开后直接弹出的那个框里面。 也就是点开之后,就可以修改任务的所有信息,包括: 上传附件; 添加评论; 添加子任务; 修改截止时间。当然,如果现在已经有截止时间,就把它带进来。 改变它的状态,把它添加到某个面板里面。 这些操作全部都在这一个页面完成。因为页面有滚动条,直接往下滚动就可以了。」
「现在需要把所有这些修改功能,都添加到点开后直接弹出的那个框里面。 也就是点开之后,就可以修改任务的所有信息,包括:
templates/tasks/_panel.php
data-tk-drop-box
data-tk-act="attach"
tasks/comment_add
tasks/create
parent_id
<dd>截止 …</dd>
data-tk-act="status"
"board"
所以只有第 4 项要做。 其余四项本来就在,用户可能没往下滚到(或以为要点「编辑」才有)。
把第 129 行那段只读的:
<div class="kv-row"><dt>截止</dt> <dd class="<?= $tpLate ? 'kb-late' : '' ?>"><?= e($tpDue) ?>…</dd> </div>
换成与 _edit_form.php 同一套的 AntD 单点控件:
_edit_form.php
<div class="tk-sec tk-sec-inline"> <span class="tk-sec-lb">截止</span> <?php $dtName = 'due_at'; $dtValue = $tpDue; $dtPlugin = 'antd-single'; require __DIR__ . '/../_datetime.php'; ?> </div>
面板里其他动作(状态/看板/子任务/评论/附件)都是各自一个 AJAX 动作立即生效。 截止时间也应该一致 —— 改完立即保存,不引入"保存按钮"。
做法:复用已有的 tasks/status 那套思路,但因 due_at 不在那个动作里, 需要新加一个动作 tasks/due(或在现有 update 里支持只传 due_at)。
tasks/status
due_at
tasks/due
优先选:给 task_panel.js 加一个 data-tk-act="due" 处理, 提交到新路由 tasks/due(只收 id + due_at + ajax_panel=1), 成功后重载面板。
task_panel.js
data-tk-act="due"
id
ajax_panel=1
_datetime.php
$dtPlugin='antd-single'
data-dt-antd-single="1"
fbBootAntd()
entry_popup.js:290
tasks/panel
用户可能不知道面板里已经能传附件/评论/子任务 —— 那些都在面板下方, 需要往下滚。如果滚不到或视觉上不明显,可能需要加个滚动提示。 先看效果再说。
与 #72 不同:#72 是修编辑按钮不显示;本单是把面板本身补全,让用户不必进编辑页。与 #73(React 重复加载)也不同,那是底层缺陷。
No dependencies set.
The note is not visible to the blocked user.
首页任务浮层:面板里直接改截止时间(其余功能已有)
用户(2026-11-05)
现状盘点(
templates/tasks/_panel.php已实现的)data-tk-drop-box+data-tk-act="attach",第 224 行起)tasks/comment_add表单,第 262 行起)tasks/create+parent_id,第 188 行起)<dd>截止 …</dd>data-tk-act="status"/"board",第 89/113 行)所以只有第 4 项要做。 其余四项本来就在,用户可能没往下滚到(或以为要点「编辑」才有)。
改法
把第 129 行那段只读的:
换成与
_edit_form.php同一套的 AntD 单点控件:关键设计:怎么保存
面板里其他动作(状态/看板/子任务/评论/附件)都是各自一个 AJAX 动作立即生效。
截止时间也应该一致 —— 改完立即保存,不引入"保存按钮"。
做法:复用已有的
tasks/status那套思路,但因due_at不在那个动作里,需要新加一个动作
tasks/due(或在现有 update 里支持只传 due_at)。优先选:给
task_panel.js加一个data-tk-act="due"处理,提交到新路由
tasks/due(只收id+due_at+ajax_panel=1),成功后重载面板。
⚠️ AntD 控件在 AJAX 面板里的注意点
_datetime.php里$dtPlugin='antd-single'会输出data-dt-antd-single="1",必需
fbBootAntd()才能挂上 ——task_panel.js换 HTML 后要调一次(参考
entry_popup.js:290)。tasks/panelAJAX 返回的,不在首屏,所以第一次打开时才会加载 1.8MB 的 antd。
验收
顺带说明
用户可能不知道面板里已经能传附件/评论/子任务 —— 那些都在面板下方,
需要往下滚。如果滚不到或视觉上不明显,可能需要加个滚动提示。
先看效果再说。
为什么单独建单
与 #72 不同:#72 是修编辑按钮不显示;本单是把面板本身补全,让用户不必进编辑页。与 #73(React 重复加载)也不同,那是底层缺陷。