v78 服务端:首页任务改成「就地处理」面板 + 新建任务搬到首页
用户原话: 「网页端,首页点击一个任务后,除了展示信息,应该有相应的功能,可以修改状态: 待办、进行中,可以挪动分组,可以拖动上传附件,可以添加评论,添加子任务等。 其目地,是为了让用户不离开首页,就能对任务进行简单的处理。」 「另外,在全部任务旁边,放一个新建任务的功能,其实就是把任务中的新建和编辑功能, 搬过来,用弹出框来处理。」 一、首页任务浮层由「只读信息」改成「可操作面板」 - 新增 templates/tasks/_panel.php:状态三段 / 看板 chips(带看板色)/ 子任务(复用 _task_check.php)/ 附件拖放框(复用 _attachments.php)/ 讨论 - 新增路由 tasks/panel:只吐一块 HTML(找不到 404) - 既有七个动作路由各加一条 ajax_panel 回包分支(状态 / 挪分组 / 新建子任务 / 评论增删 / 附件增删),没有新开写接口 - helpers.php 新增 task_panel_wanted() / task_panel_json(); fb_entry_json() 的 payload 增加 panel 字段(只有任务会给) - 每次动作回**整块新面板**:一次动作会牵动子任务计数、附件张数、看板选中态, 逐处同步 DOM 必然漏一处 - 拖进来的附件**立刻上传**(任务已存在,不该再让用户点一次保存), 不复用 _stage_drop.php 那套「暂存 + 认领」 二、新建任务搬到首页 - 从 templates/tasks/index.php 抽出公共片段 templates/tasks/_add_modal.php (字段与原来一字未改),首页与任务页共用同一份 - 新增 assets/js/task_add.js 管开关(两页共用,幂等绑定); 打开那一刻才 fbUpgradeRange() + fbBootAntd()(hidden 时宽高为 0,antd 会定位错乱) - App\HomeCards 登记表里加 add => 新建任务,首页卡头与「全部任务」并排 - tasks/create 支持 back=home(白名单),新建完回首页 三、其它 - assets/js/task_panel.js:事件委托;动作后整块换面板; 顺手同步首页那张卡的状态徽标与复选框(关掉浮层不能还是旧状态); 传附件时保住用户写了一半的留言与子任务标题;取不到面板时退回只读信息 - app.css 追加面板样式(含 color-mix 的 @supports 兜底)与卡片窄到宽 2 时允许折行 验证:本地 e2e 1558/0、几何 428/0 + 660/0、v78 反向验证 11/0、 片段作用域体检 35/0、php -l 与 node --check 全过
This commit is contained in:
@@ -120,6 +120,17 @@
|
||||
<a class="btn btn-sm hd-more<?= $hcColor === '' ? ' btn-ghost' : '' ?>"
|
||||
href="<?= e($hcMore) ?>"<?= $hcColor !== '' ? ' style="--hd-c: ' . e($hcColor) . ';"' : '' ?>><?= e((string)$hcDef['more']) ?></a>
|
||||
<?php endif; ?>
|
||||
<?php /* 🔴 v78(用户 2026-10-22):「在全部任务旁边,放一个新建任务的功能,
|
||||
其实就是把任务中的新建和编辑功能,搬过来,用弹出框来处理。」
|
||||
⇒ 卡片登记表里登记了 `add` 的(目前只有「近期任务」)就在
|
||||
「全部任务」**右边**再多一颗 —— 同一套 `.hd-more` 配色,
|
||||
所以它是任务模块的主题色,不会跟旁边那颗抢眼。
|
||||
⚠️ 按钮本身只带 `data-tk-add-open`:开关逻辑在 `assets/js/task_add.js`,
|
||||
那张弹框的 HTML 在页面末尾(`tasks/_add_modal.php`)。 */ ?>
|
||||
<?php if ((string)($hcDef['add'] ?? '') !== '' && \App\Auth::canWrite()): ?>
|
||||
<button type="button" class="btn btn-sm hd-more<?= $hcColor === '' ? ' btn-ghost' : '' ?>"
|
||||
data-tk-add-open<?= $hcColor !== '' ? ' style="--hd-c: ' . e($hcColor) . ';"' : '' ?>><?= e((string)$hcDef['add']) ?></button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php require $hcTpl; ?>
|
||||
</section>
|
||||
@@ -198,3 +209,24 @@
|
||||
})();
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php /* ==================== 「新建任务」弹框(v78 用户 2026-10-22)====================
|
||||
用户原话:「在全部任务旁边,放一个新建任务的功能,其实就是把任务中的新建和编辑功能,
|
||||
搬过来,用弹出框来处理。」
|
||||
|
||||
⚠️ 与任务页(`templates/tasks/index.php`)**共用同一份** `tasks/_add_modal.php` ——
|
||||
两处各写一张表单,字段必然有一天不同步(`_edit_form.php` 头部记着同一条教训)。
|
||||
⚠️ `$tkAdd` 只在「近期任务」卡片真的摆在首页、且当前账号可写时才由路由准备
|
||||
(见 index.php 的 home 分支):卡片被关掉就没有入口,也就不该白跑三条查询。
|
||||
⚠️ 新建完回**首页**(`back=home`),卡片上立刻能看到刚建的那条 ——
|
||||
用户要的是"不离开首页就把事办了"。 */ ?>
|
||||
<?php if (!empty($tkAdd)): ?>
|
||||
<?php
|
||||
$tkAddBack = 'home';
|
||||
$tkAddBoards = (array)($tkAdd['boards'] ?? []);
|
||||
$tkAddCats = (array)($tkAdd['categories'] ?? []);
|
||||
$tkAddPeople = (array)($tkAdd['people'] ?? []);
|
||||
require __DIR__ . '/tasks/_add_modal.php';
|
||||
unset($tkAddBack, $tkAddBoards, $tkAddCats, $tkAddPeople, $tkAdd);
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user