From d97fb0fe8482118c81c7e3b1a629fd2263840f85 Mon Sep 17 00:00:00 2001 From: maogeigei Date: Tue, 6 Oct 2026 09:17:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=EF=BC=9A=E7=BB=9F=E4=B8=80=E8=A7=86=E5=9B=BE=20?= =?UTF-8?q?=EF=BC=8B=20=E6=8F=90=E7=A4=BA=E6=94=B6=E8=BF=9B=E3=80=8C!?= =?UTF-8?q?=E3=80=8D=20=EF=BC=8B=20=E6=95=B0=E6=8D=AE=E6=97=B6=E6=95=88?= =?UTF-8?q?=E5=8F=AF=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户口径(2026-10-06 逐字) - 「没安装机制的工作区不显示 黄字描述都放到 !号的图标中,不显示在工作台」 - 「这里分类不要按照工作区分了,记住 项目管理是统一管理」 改动 1. 统一视图(默认「全部」) - ⛔ 删掉「按工作区分块」,改为**一张四列看板**汇总本机所有目标的卡片 - 归属改由**卡片上的「目标」标签**体现(.badge.goal),⛔ 不靠分区 - 选择器默认「全部(N 个目标)」;选单个目标仍可切到单项目视图 - 顺带删掉随分区一起废掉的样式(projgroup/pghead/lane* 等,共 15 行死代码) 2. 提示一律收进右上角「!」图标 - 工作台上去掉所有黄字横幅(原来是 notice 容器) - 「!」无内容时淡显且不可点;有内容时点开弹层、点外面/Esc 关闭 - 未装机制的工作区**彻底不显示**(含原来那行「扫到但没装机制 N 个目录」) ⚠️ 后端仍保留 `skipped` 字段(只给 CLI/取证用),UI 不再展示 3. 数据时效可见 + 自动刷新 - 服务出快照时带 `epoch`;页面读数「数据 N 秒前」**只用服务的 epoch 算**, ⛔ 不用本地 Date.now() 顶上(否则刷新一次就"变新",看不出数据其实没动) - 超 15 秒 ⇒ 读数转黄(.is-stale),一眼看出"只是轮询、数据没动" - 每秒重画时效读数(⛔ 不重新取数) - 轮询自适应:数据有变化 ⇒ 3 秒一探;连续 3 次没变 ⇒ 放到 15 秒;一变立刻回收 - 「刷新」按钮改手动模式:扫描中/已刷新有即时反馈(toast) 4. 操作反馈改一次性 toast(新建/删除/失败),⛔ 不常驻工作台 实测(浏览器侧,强刷新避开缓存) - 6 张卡片全部落在一张四列板上,标签正确(本机协作 ×1 / vibe-product ×11) - 四个列标题只出现一次(不再是每区一套) - 「!」有 1 条内容、默认收起、点击展开、再点关闭 - 时效读数「数据 2 秒前」正常跳动 --- 交付物/项目管理界面/project-board.html | 350 +++++++++++++++++++------ 交付物/项目管理界面/project-board.py | 4 + 2 files changed, 281 insertions(+), 73 deletions(-) diff --git a/交付物/项目管理界面/project-board.html b/交付物/项目管理界面/project-board.html index 47c0da7..e1db0a3 100644 --- a/交付物/项目管理界面/project-board.html +++ b/交付物/项目管理界面/project-board.html @@ -49,7 +49,8 @@ border-radius:999px;padding:1px 9px;font-size:12px;color:var(--dim)} .cards{padding:10px;display:flex;flex-direction:column;gap:9px;flex:1} - /* ── 卡片 ── */ + /* ── 统一视图:卡片上的「目标」标签(🔴 归属靠标签,⛔ 不靠分区)── */ + .badge.goal{border-color:var(--accent);color:var(--accent)} .card{background:var(--panel2);border:1px solid var(--line);border-left-width:3px; border-radius:8px;padding:10px 11px;cursor:pointer; transition:transform .08s ease,border-color .12s ease} @@ -94,6 +95,40 @@ .fnote.bad{color:#f2a09a} .facts{display:flex;align-items:center;gap:10px} + /* ── 「!」状态图标 + 悬浮说明(⚠️ 提示一律收进这里,⛔ 不铺在工作台上)── */ + .info{position:relative;display:inline-flex;align-items:center;justify-content:center; + width:22px;height:22px;border-radius:50%;font-size:13px;font-weight:700;line-height:1; + border:1px solid var(--line);background:var(--panel2);color:var(--dim);cursor:pointer; + user-select:none;flex:none} + .info.idle{opacity:.42} /* 没内容时淡掉,但仍在位 */ + .info.fancy:not(.idle){border-color:var(--warn);color:var(--warn)} + .info:focus{outline:2px solid var(--accent);outline-offset:2px} + .infopop{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:min(480px,92vw); + background:var(--panel);border:1px solid var(--line);border-radius:10px; + box-shadow:0 12px 34px rgba(0,0,0,.34);padding:12px 14px;display:none} + .infopop.on{display:block} + .infopop .ih{font-size:12px;color:var(--dim2);font-weight:600;letter-spacing:.5px; + text-transform:uppercase;margin:0 0 8px} + .infopop .iw{font-size:13px;line-height:1.62;padding:7px 0;border-top:1px dashed var(--line); + color:var(--fg)} + .infopop .iw:first-of-type{border-top:0;padding-top:0} + .infopop .iw b{color:var(--warn)} + .infopop .iw code{background:var(--panel2);padding:1px 5px;border-radius:4px;font-size:12px} + + /* ── 一次性操作反馈(自动消失;⛔ 不常驻)── */ + .toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);z-index:60; + max-width:min(680px,92vw);padding:11px 15px;border-radius:10px;font-size:13px; + line-height:1.55;border:1px solid var(--line);background:var(--panel); + box-shadow:0 10px 30px rgba(0,0,0,.3);opacity:0;pointer-events:none; + transition:opacity .16s ease, transform .16s ease;word-break:break-word} + .toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto} + .toast.ok{border-color:var(--ok)} + .toast.err{border-color:var(--bad);color:#f2a09a} + .toast pre.out{margin:8px 0 0;max-height:150px} + + /* 时效警示:数据 > 15 秒没动 ⇒ 转黄(⛔ 不靠用户猜"刷新了没") */ + .stamp.is-stale{color:var(--warn)} + /* ── 抽屉 ── */ .mask{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none; transition:opacity .15s ease;z-index:40} @@ -130,17 +165,20 @@
加载中… + ! - +
-
+
+