From 48c2c16111effe148394b7bf14c11fe70d57376e Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 19 Jul 2026 00:21:42 +0000 Subject: [PATCH] =?UTF-8?q?docs(ai-kb):=20=E5=90=8C=E6=AD=A5=E4=BB=AA?= =?UTF-8?q?=E8=A1=A8=E7=9B=98=E4=B8=8E=E8=B4=9F=E8=B4=A3=E4=BA=BA=E8=A7=86?= =?UTF-8?q?=E8=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/ai-kb/_eval/golden-50q.yaml | 4 +- resources/ai-kb/_meta/feature-map.yaml | 16 +++-- resources/ai-kb/_meta/page-links.yaml | 6 +- resources/ai-kb/_meta/tool-binding.yaml | 8 +-- .../ai-kb/zh/concept/calendar/overview.md | 4 +- .../ai-kb/zh/concept/dashboard/overview.md | 56 ++++++---------- resources/ai-kb/zh/concept/dashboard/team.md | 47 ++++++++++++++ .../ai-kb/zh/concept/org-department/deputy.md | 7 +- .../role-permission/department-role.md | 11 +++- .../ai-kb/zh/faq/dashboard/empty-state.md | 38 +++++++++++ resources/ai-kb/zh/faq/dashboard/refresh.md | 54 +++++++--------- .../ai-kb/zh/faq/dashboard/team-refresh.md | 46 +++++++++++++ resources/ai-kb/zh/howto/dashboard/assist.md | 52 ++++++--------- .../ai-kb/zh/howto/dashboard/collapse.md | 54 ++++++---------- .../ai-kb/zh/howto/dashboard/completed.md | 40 ++++++++++++ resources/ai-kb/zh/howto/dashboard/layout.md | 40 ++++++++++++ resources/ai-kb/zh/howto/dashboard/overdue.md | 54 ++++++---------- .../ai-kb/zh/howto/dashboard/team-focus.md | 40 ++++++++++++ .../ai-kb/zh/howto/dashboard/team-scope.md | 39 +++++++++++ resources/ai-kb/zh/howto/dashboard/today.md | 50 ++++++--------- resources/ai-kb/zh/howto/dashboard/todo.md | 50 +++++---------- .../ai-kb/zh/howto/dashboard/upcoming.md | 40 ++++++++++++ .../zh/howto/org-department/deputy-view.md | 64 ++++++++----------- resources/ai-kb/zh/howto/project/create.md | 4 +- .../ai-kb/zh/menu-map/dashboard/entry.md | 42 ++++++------ .../zh/menu-map/menu-navigation/dashboard.md | 37 +++++------ .../menu-map/menu-navigation/my-projects.md | 6 +- .../zh/menu-map/menu-navigation/my-tasks.md | 10 +-- resources/ai-kb/zh/menu-map/project/entry.md | 7 +- 29 files changed, 584 insertions(+), 342 deletions(-) create mode 100644 resources/ai-kb/zh/concept/dashboard/team.md create mode 100644 resources/ai-kb/zh/faq/dashboard/empty-state.md create mode 100644 resources/ai-kb/zh/faq/dashboard/team-refresh.md create mode 100644 resources/ai-kb/zh/howto/dashboard/completed.md create mode 100644 resources/ai-kb/zh/howto/dashboard/layout.md create mode 100644 resources/ai-kb/zh/howto/dashboard/team-focus.md create mode 100644 resources/ai-kb/zh/howto/dashboard/team-scope.md create mode 100644 resources/ai-kb/zh/howto/dashboard/upcoming.md diff --git a/resources/ai-kb/_eval/golden-50q.yaml b/resources/ai-kb/_eval/golden-50q.yaml index e61af2435..721299868 100644 --- a/resources/ai-kb/_eval/golden-50q.yaml +++ b/resources/ai-kb/_eval/golden-50q.yaml @@ -64,8 +64,8 @@ tests: q: "仪表盘上有哪些卡片?" locale: zh expected_chunk_ids: [dashboard.concept] - expected_answer: "仪表盘顶部有「今日到期 / 超期任务 / 待完成任务」3 个统计卡片,下方按今日到期、超期、待完成、协助的任务分组列出任务,是个人工作台。" - must_say: [仪表盘, 卡片] + expected_answer: "个人视角顶部有「已超期 / 今日到期 / 待完成 / 我协助的」4 张摘要卡,待完成卡还会提示待开始数量;列表布局另有待开始和本周完成分组。符合条件的部门负责人还能切换团队视角,查看未完成、已超期、3 天内到期、本周完成等团队指标。" + must_say: [已超期, 今日到期, 待完成, 我协助的] must_not_say: [] bucket: easy feature: dashboard diff --git a/resources/ai-kb/_meta/feature-map.yaml b/resources/ai-kb/_meta/feature-map.yaml index 8b50eccb1..2357a3565 100644 --- a/resources/ai-kb/_meta/feature-map.yaml +++ b/resources/ai-kb/_meta/feature-map.yaml @@ -12,7 +12,7 @@ # chunks 实际起草后填入的 chunk id 清单(增量) version: 1 -last_updated: 2026-06-09 +last_updated: 2026-07-19 features: @@ -22,7 +22,7 @@ features: scope: end-user batch: B1 priority: P0 - chunk_count_est: 8 + chunk_count_est: 16 owner: ~ status: drafted chunks: @@ -34,6 +34,14 @@ features: - dashboard.assist.howto - dashboard.collapse.howto - dashboard.refresh.faq + - dashboard.layout.howto + - dashboard.upcoming.howto + - dashboard.completed.howto + - dashboard.empty-state.faq + - dashboard.team.concept + - dashboard.team-scope.howto + - dashboard.team-focus.howto + - dashboard.team-refresh.faq - id: calendar name: 日历 @@ -846,8 +854,8 @@ features: # ---------------------------------------------------------------- # 总览(P0 估算; 实际起草时按需调整) # -# B1: dashboard(8) + calendar(12) + messenger(40) + file(25) -# + project(30) + task(40) = 155 +# B1: dashboard(16) + calendar(12) + messenger(40) + file(25) +# + project(30) + task(40) = 163 # B2: view(12) + meeting(12) + report(15) + approve(20) # + checkin(15) + okr(12) = 86 # B3: application(5) + app-system(15) + app-admin(10) + micro-app(8) diff --git a/resources/ai-kb/_meta/page-links.yaml b/resources/ai-kb/_meta/page-links.yaml index 4555c54a3..74c04a806 100644 --- a/resources/ai-kb/_meta/page-links.yaml +++ b/resources/ai-kb/_meta/page-links.yaml @@ -11,15 +11,15 @@ # - 项目内弹窗类(project_settings/member/flow 等需组件接线)二期再加 version: 1 -last_updated: 2026-06-10 +last_updated: 2026-07-19 links: # ===== 顶层功能页 ===== dashboard: title: 仪表盘 - aliases: [仪表盘, 工作台, 首页] - description: 个人工作台首页(待办、项目概览) + aliases: [仪表盘, 工作台, 首页, 部门任务总览, 团队仪表盘] + description: 个人任务工作台;部门负责人还可切换查看团队任务总览 messenger: title: 消息 diff --git a/resources/ai-kb/_meta/tool-binding.yaml b/resources/ai-kb/_meta/tool-binding.yaml index fba798362..2fed884b2 100644 --- a/resources/ai-kb/_meta/tool-binding.yaml +++ b/resources/ai-kb/_meta/tool-binding.yaml @@ -13,7 +13,7 @@ # (OCR)已下线,改由多模态模型直接理解图片。 version: 1 -last_updated: 2026-06-12 +last_updated: 2026-07-19 tools: @@ -31,7 +31,7 @@ tools: # ===== 任务 ===== list_tasks: description: 列表获取用户相关任务,支持状态/项目/时间范围筛选 - related_features: [task] + related_features: [task, dashboard] typical_chunk_types: [howto] get_task: @@ -46,12 +46,12 @@ tools: update_task: description: 更新任务属性 - related_features: [task] + related_features: [task, dashboard] typical_chunk_types: [howto] complete_task: description: 标记任务完成 - related_features: [task] + related_features: [task, dashboard] typical_chunk_types: [howto] delete_task: diff --git a/resources/ai-kb/zh/concept/calendar/overview.md b/resources/ai-kb/zh/concept/calendar/overview.md index 7bfc9a889..d374612ab 100644 --- a/resources/ai-kb/zh/concept/calendar/overview.md +++ b/resources/ai-kb/zh/concept/calendar/overview.md @@ -18,7 +18,7 @@ negative: - 日历**没有独立的事件表**,全部从 ProjectTask 派生 - 不显示会议(Meeting)、签到、报告,仅显示任务 - 仅显示当前用户作为负责人(owner=1)的任务,不显示协作任务 -last_verified: v1.7.90 +last_verified: v1.8.69 --- # 日历是什么 / 数据源 @@ -42,7 +42,7 @@ DooTask 日历是把 [[task.field.deadline.concept]] 有 end_at 的任务按时 详见 [[calendar.allday.concept]]。 ## 与其他模块的关系 -- **仪表盘**([[dashboard.concept]]):列表形式,按今日 / 超期 / 待完成分类,不显示位置 +- **仪表盘**([[dashboard.concept]]):个人视角按已超期 / 今日到期 / 待完成 / 待开始 / 协助 / 本周完成分类,不显示日历位置 - **任务列表**:按列表展示,可看已完成 / 已归档 - **日历**:按时间格展示,仅未归档 + 有 end_at + 我是负责人 diff --git a/resources/ai-kb/zh/concept/dashboard/overview.md b/resources/ai-kb/zh/concept/dashboard/overview.md index f4967f622..9feb4a6b8 100644 --- a/resources/ai-kb/zh/concept/dashboard/overview.md +++ b/resources/ai-kb/zh/concept/dashboard/overview.md @@ -1,56 +1,42 @@ --- id: dashboard.concept -title: 仪表盘是什么 / 显示哪些卡片 +title: 仪表盘个人视角与部门负责人视角 type: concept feature: dashboard scope: end-user locale: zh aliases: - - 仪表盘是什么 - 仪表盘有什么 - - 仪表盘卡片 - - 仪表盘有哪些卡片 - 仪表盘显示什么 - - 仪表盘显示哪些卡片 - 个人工作台 + - 团队仪表盘 + - 部门任务总览 + - 负责人仪表盘 related_tools: [list_tasks] related_pages: [dashboard] prerequisites: [] negative: - - 仪表盘只显示「我作为负责人 owner=1」的任务,协作任务在专门的分组 - - 仪表盘不显示项目进度 / 团队整体数据,仅个人视角 - - 仪表盘不显示已完成任务(默认) -last_verified: v1.7.90 + - 普通成员只有个人视角,不能查看部门负责人视角 + - 部门负责人视角是只读任务总览,不会授予任务修改权限 + - 仪表盘不支持用户自定义卡片或调整统计口径 +last_verified: v1.8.69 --- -# 仪表盘是什么 / 显示哪些卡片 +# 仪表盘个人视角与部门负责人视角 ## 定义 -DooTask 仪表盘(Dashboard)是当前用户的个人工作台,回答「今天我要做什么」。仪表盘由顶部 3 张数字卡片 + 下方 4 个分组列表卡片组成,从前端 store 的 `dashboardTask` 与 `assistTask` getter 实时计算,按时间分类显示当前用户名下的未完成任务。 +DooTask 仪表盘是登录后的任务工作台,入口为左侧栏「仪表盘」。所有用户都有个人视角;系统开启「部门负责人视角」且当前用户负责或管理至少一个部门时,右上角还会出现「个人视角 / 部门负责人」切换。 -## 顶部 3 张数字卡片 -| 卡片 | 含义 | -|---|---| -| 今日到期 | end_at 在今天范围内、未完成、未归档的任务数 | -| 超期任务 | end_at 已过今天 23:59:59 但未完成的任务数 | -| 待完成 | 没设 end_at 或 end_at 还未到的未完成任务数 | +## 个人视角 +- 顶部卡片:已超期、今日到期、待完成、我协助的;待完成卡片还会提示待开始数量。 +- 列表布局:按已超期、今日到期、待完成、待开始、我协助的、本周完成分组。 +- 四象限布局:并排展示已超期、今日到期、待完成、我协助的四组。 +- 数据以当前用户负责或协助的任务为主,不是全项目统计。 -## 下方 4 张分组卡片 -1. **今日到期** 卡片 — 今天必须完成的任务 -2. **超期任务** 卡片 — 需要立刻处理或调整截止时间的任务 -3. **待完成** 卡片 — 后续要做的任务(含无截止时间) -4. **协助的任务** 卡片 — 我作为 [[task.field.owner-assist.concept]] 中协作者(assist)的任务,独立于上面三组 +## 部门负责人视角 +- 展示未完成、已超期、3 天内到期、本周完成四项团队指标。 +- 展示成员任务分配、优先级分布和可下钻的重点关注任务。 +- 统计范围为所选管理部门及全部下级部门,详见 [[dashboard.team.concept]]。 -## 数据来源 -- 全部从 ProjectTask 表派生([[task.field.deadline.concept]] 的 end_at 字段) -- 仅算 owner=1 命中当前用户的(前 3 组),assist 命中的(第 4 组) -- 已归档([[task.archive.howto]])/ 已完成([[task.complete.howto]])的任务不显示 - -## 与「项目统计」的区别 -- 仪表盘:个人视角,全部项目 -- [[project.statistics.concept]]:单项目视角,整项目 - -## 不支持 -- 不显示团队 / 部门维度的汇总 -- 不能切换看别人的仪表盘 -- 不能增加自定义卡片 +## 本地记忆 +当前视角、个人视角布局、团队重点筛选和当天的分组收起状态保存在当前浏览器;不会自动同步到其他设备。 diff --git a/resources/ai-kb/zh/concept/dashboard/team.md b/resources/ai-kb/zh/concept/dashboard/team.md new file mode 100644 index 000000000..98e73cc8b --- /dev/null +++ b/resources/ai-kb/zh/concept/dashboard/team.md @@ -0,0 +1,47 @@ +--- +id: dashboard.team.concept +title: 部门负责人仪表盘统计口径 +type: concept +feature: dashboard +scope: end-user +locale: zh +aliases: + - 部门负责人仪表盘 + - 团队任务总览 + - 团队未完成 + - 成员任务分配 + - 优先级分布 + - 团队统计怎么算 +related_tools: [] +related_pages: [dashboard] +prerequisites: + - 系统已开启部门负责人视角 + - 当前用户是至少一个部门的负责人或部门管理员 +negative: + - 团队仪表盘不统计私密任务和子任务 + - 团队仪表盘不会授予修改下属任务的权限 + - 已关闭负责人视角可见性的项目不参与统计 +last_verified: v1.8.69 +--- + +# 部门负责人仪表盘统计口径 + +## 团队范围 +部门负责人仪表盘统计所选管理部门及全部下级部门中的在职、非机器人账号。纳入项目必须由这些成员参与、未归档且允许负责人视角查看。 + +## 任务范围 +团队统计只纳入: + +- 主任务,不统计子任务; +- 全员可见任务,不统计私密任务; +- 未归档、未删除任务; +- 由范围内成员负责,或者当前没有负责人的任务。 + +## 页面指标 +- **未完成**:范围内全部未完成任务。 +- **已超期**:未完成且截止时间早于当前时刻。 +- **3 天内到期**:当前时刻到未来第 3 天结束前到期。 +- **本周完成**:本周一至下周一完成的任务,并与上周数量比较。 + +## 分布数据 +成员任务分配按超期数降序、任务总数降序排列。流程阶段分为待处理、进行中、验收/测试;没有工作流或不属于后两种状态的普通未完成任务归待处理。多负责人任务会分别计入各负责人工作量,但团队任务总数按任务去重。 diff --git a/resources/ai-kb/zh/concept/org-department/deputy.md b/resources/ai-kb/zh/concept/org-department/deputy.md index a5030a2b8..f4e1bbe2c 100644 --- a/resources/ai-kb/zh/concept/org-department/deputy.md +++ b/resources/ai-kb/zh/concept/org-department/deputy.md @@ -22,7 +22,8 @@ negative: - 部门管理员不能罢免自己(只有系统管理员能罢免) - 部门负责人/管理员不等于系统管理员(userIsAdmin),不能进系统设置 - 罢免部门管理员会同步把他从该部门移除并退出部门群 -last_verified: v1.7.90 + - 负责人视角只增加只读范围,不改变本人原有项目权限 +last_verified: v1.8.69 --- # 部门负责人与部门管理员 @@ -44,7 +45,9 @@ last_verified: v1.7.90 开启系统设置「部门负责人视角」后: - 只读查看本部门及所有下级部门成员参与的**项目**与**任务** - 不能修改项目设置、任务、成员 -- 通过右上角头像菜单切换到「负责人视角」选择部门,见 [[org-department.deputy-view.howto]] +- 可在仪表盘查看团队任务总览,见 [[dashboard.team.concept]] +- 可通过右上角头像菜单或项目列表打开项目负责人视角,见 [[org-department.deputy-view.howto]] +- 仪表盘与项目负责人视角共用部门范围,但项目列表是否启用只读视角由独立开关控制 - 「项目级开关」:每个项目可单独关闭"部门负责人视角可见"(`projects.department_owner_view`) ## 与其他概念的关系 diff --git a/resources/ai-kb/zh/concept/role-permission/department-role.md b/resources/ai-kb/zh/concept/role-permission/department-role.md index 395123f5e..12cc1d2ae 100644 --- a/resources/ai-kb/zh/concept/role-permission/department-role.md +++ b/resources/ai-kb/zh/concept/role-permission/department-role.md @@ -20,8 +20,9 @@ negative: - 一个部门只有一个部门负责人(owner_userid 字段,单值) - 部门管理员可以多人(user_department_owners 表) - 部门负责人不会自动获得部门成员名下任务的修改权限 + - 只有系统开启负责人视角后,才能使用团队仪表盘和项目只读视角 - 调任 / 离职部门,要由系统管理员通过部门操作完成,用户自己不能改 -last_verified: v1.7.90 +last_verified: v1.8.69 --- # 部门角色(部门负责人 / 部门管理员) @@ -43,12 +44,16 @@ last_verified: v1.7.90 ## 「负责人视角」能看到什么 - 部门成员名单 -- 团队管理界面会高亮自己负责的部门 +- 仪表盘中的部门任务总览、成员任务分配、优先级分布和重点关注任务 +- 开启项目负责人视角后,只读查看所选部门及下级部门成员参与的可见项目和任务 - 部门 OKR:只有顶级部门第一级负责人才能添加部门 OKR(`department_owner` 字段) ## 不会自动带来什么 -- **不自动看部门成员的任务**:部门负责人想看下属任务,仍需被加入对应项目或被加入任务可见用户 +- **不获得修改权限**:负责人视角只能只读查看额外项目和任务;本人参与项目的原权限不受影响 +- **不绕过项目限制**:项目关闭负责人视角可见性或任务为私密时,负责人身份不会强制显示 - **不是系统管理员**:部门负责人没有团队管理、LDAP 等系统级权限 +负责人视角的入口和部门范围规则见 [[org-department.deputy-view.howto]]。 + ## 谁能改部门角色 只有系统管理员(admin identity)能任命 / 罢免部门负责人和部门管理员。详见 [[role-permission.entry.menu-map]]。 diff --git a/resources/ai-kb/zh/faq/dashboard/empty-state.md b/resources/ai-kb/zh/faq/dashboard/empty-state.md new file mode 100644 index 000000000..7370a4567 --- /dev/null +++ b/resources/ai-kb/zh/faq/dashboard/empty-state.md @@ -0,0 +1,38 @@ +--- +id: dashboard.empty-state.faq +title: 个人仪表盘没有任务时显示什么 +type: faq +feature: dashboard +scope: end-user +locale: zh +aliases: + - 仪表盘空白 + - 没有任务显示什么 + - 欢迎使用 DooTask + - 任务全部清空 + - 当前没有待处理任务 + - 新账号仪表盘 +related_tools: [] +related_pages: [dashboard] +prerequisites: [] +negative: + - 空状态不会用模拟任务或无关数据填充页面 + - 有任何当前任务分组时不会显示整页完成空状态 + - 初始化未完成时不会把缓存为空误判为新账号 +last_verified: v1.8.69 +--- + +# 个人仪表盘没有任务时显示什么 + +## 三种最终状态 +个人视角列表没有当前任务分组时,根据账号数据选择一种状态: + +1. **任务全部清空**:本周有完成任务。显示「太棒了,任务全部清空」、本周完成总数和最近 5 条完成记录。 +2. **新账号欢迎**:没有项目,也没有未归档任务。显示「欢迎使用 DooTask」、创建第一个项目按钮和加入已有团队提示。 +3. **暂时空闲**:已有项目或任务历史,但当前没有待处理任务,也没有本周完成。显示「当前没有待处理任务」和新建任务按钮。 + +## 初始化过程 +首次没有缓存时,页面先等待任务初始化;只有确认初始化完成后才显示欢迎或其他空状态。已有缓存时重新进入仪表盘不会重复出现整页 Loading。 + +## 与任务分组的关系 +只要已超期、今日到期、待完成、待开始或我协助的任一列表仍有内容,就正常显示任务分组;本周完成会作为末尾分组出现,而不是显示整页“全部清空”。 diff --git a/resources/ai-kb/zh/faq/dashboard/refresh.md b/resources/ai-kb/zh/faq/dashboard/refresh.md index ac173eaa4..847bf5174 100644 --- a/resources/ai-kb/zh/faq/dashboard/refresh.md +++ b/resources/ai-kb/zh/faq/dashboard/refresh.md @@ -1,51 +1,43 @@ --- id: dashboard.refresh.faq -title: 仪表盘不刷新 / 任务变化后看不到 +title: 个人仪表盘任务变化后为什么没有立即移动 type: faq feature: dashboard scope: end-user locale: zh aliases: - 仪表盘不更新 - - 任务完成了仪表盘还有 - - 仪表盘要手动刷新吗 - - 仪表盘有缓存 - - 仪表盘没数据 + - 完成任务后还在原列表 + - 本周完成少了一条 + - 仪表盘切回来不加载 + - 个人仪表盘有缓存吗 related_tools: [list_tasks] related_pages: [dashboard] prerequisites: [] negative: - - 仪表盘没有手动刷新按钮,靠 600ms 防抖定时器自动刷 - - 任务字段改动是通过 WebSocket 推送进来的,掉线时可能不同步 - - 仪表盘进入页面时会立即拉一次最新数据 -last_verified: v1.7.90 + - 个人视角没有「立即刷新」按钮 + - 切回仪表盘不会在已有缓存时强制显示整页 Loading + - 团队统计的刷新规则见 dashboard.team-refresh.faq +last_verified: v1.8.69 --- -# 仪表盘不刷新 / 任务变化后看不到 +# 个人仪表盘任务变化后为什么没有立即移动 -## 问题 -任务完成 / 改了截止时间 / 加了新任务,但仪表盘的列表 / 数字没立刻变化。 +## 现象 +在仪表盘内完成任务后,数量已经减少,但任务行仍划线保留在原分组;「本周完成」暂时还没有出现这条任务。 ## 原因 -仪表盘的数据流是「前端 store + WebSocket 推送 + 600ms 防抖定时器」的混合: -- 进入仪表盘页时立即拉一次任务列表 -- 后续靠 WebSocket 推送实时变化 -- 任何任务字段变更触发 `getTaskForDashboard(600)`:600 毫秒后重算分组 +这是个人视角的稳定完成区逻辑:当前页面完成的任务会暂时留在原位置,避免列表突然消失或分组跳动。任务重新进入稳定缓存后,才按 `complete_at` 进入本周完成。页面上的数量和划线状态会先根据本地任务状态更新,最终分组以服务端返回的完成时间为准。 -但如果: -- WebSocket 断开重连 → 期间的事件丢失 -- 浏览器后台休眠 → 定时器暂停 -- 跨标签页的修改 → 仍依赖 WebSocket 推送 +## 数据加载 +- 应用首次没有任务缓存时才显示初始化 Loading。 +- 已有缓存时切换离开再回来会直接复用页面数据,不重复显示整页 Loading。 +- 新账号会在初始化完成前后区分欢迎、Loading 和最终空状态,避免先错误显示欢迎卡。 -可能出现仪表盘看到的与真实状态有几秒差异。 +## 排查 +1. 等待短暂同步完成。 +2. 打开任务详情确认状态已保存。 +3. 检查客户端连接是否正常。 +4. 长时间仍不一致时刷新浏览器重新获取数据。 -## 解决 -1. **手动触发重算**:进任意其他页(如左侧栏点项目)再回仪表盘 → 强制拉新数据 -2. **刷新浏览器**(F5):彻底重拉所有 store -3. 看右下角连接状态:若显示"已断开"等几秒待重连 -4. 确认任务确实生效:进任务详情看 complete_at / end_at 字段 - -## 不支持 -- 没有"手动刷新仪表盘"按钮 -- 没有刷新间隔配置(固定 600ms 防抖) -- 不支持 polling 周期性拉数据,只走 WebSocket 推送 +团队视角有独立的手动刷新入口:[[dashboard.team-refresh.faq]]。 diff --git a/resources/ai-kb/zh/faq/dashboard/team-refresh.md b/resources/ai-kb/zh/faq/dashboard/team-refresh.md new file mode 100644 index 000000000..30e176113 --- /dev/null +++ b/resources/ai-kb/zh/faq/dashboard/team-refresh.md @@ -0,0 +1,46 @@ +--- +id: dashboard.team-refresh.faq +title: 团队仪表盘缓存和立即刷新 +type: faq +feature: dashboard +scope: end-user +locale: zh +aliases: + - 团队仪表盘多久更新 + - 负责人仪表盘有缓存 + - 团队数据没更新 + - 立即刷新团队数据 + - 上次更新时间 +related_tools: [] +related_pages: [dashboard] +prerequisites: + - 已进入部门负责人视角 +negative: + - 重点关注任务明细不使用 60 秒统计缓存 + - 手动刷新只刷新当前选择的部门范围 + - 个人视角没有同一个统计刷新按钮 +last_verified: v1.8.69 +--- + +# 团队仪表盘缓存和立即刷新 + +## 缓存规则 +部门负责人视角有两层统计缓存: + +- 前端页面对四项指标、成员任务分配和优先级分布复用 60 秒; +- 统计接口在服务端使用约 30 秒 Redis 缓存。 + +短时间切换到其他页面再回来时,如果前端缓存仍有效,会直接展示已有数据,不重复显示首次 Loading。 + +重点关注任务下方的具体任务列表不使用服务端统计缓存,切换筛选条件时会按当前条件加载任务。 + +## 查看更新时间 +在部门任务总览标题下方的日期摘要末尾,点击信息图标。弹层显示「上次更新」时间和缓存说明。 + +## 立即刷新 +1. 点击日期摘要末尾的信息图标。 +2. 点击「立即刷新」。 +3. 系统清除当前部门范围的统计缓存并重新计算。 +4. 成功后提示「刷新成功」,并自动关闭说明弹层。 + +切换团队范围也会清空当前页面统计并加载新范围。如果请求失败,页面保留原有数据并显示提示,不会把失败结果当作新缓存。 diff --git a/resources/ai-kb/zh/howto/dashboard/assist.md b/resources/ai-kb/zh/howto/dashboard/assist.md index b2b3e3593..4777e07f0 100644 --- a/resources/ai-kb/zh/howto/dashboard/assist.md +++ b/resources/ai-kb/zh/howto/dashboard/assist.md @@ -1,54 +1,38 @@ --- id: dashboard.assist.howto -title: 「协助的任务」卡片用法 +title: 「我协助的」任务如何显示 type: howto feature: dashboard scope: end-user locale: zh aliases: + - 我协助的 - 协助的任务 - 我帮忙的任务 - - 协作的任务 + - 协作任务 - assist 任务 - - 别人让我协助的 related_tools: [list_tasks] related_pages: [dashboard] prerequisites: [] negative: - - 协作任务我不能直接 [[task.complete.howto]] 标记完成(仅负责人能) - - 协作任务不计入「今日到期」「超期」「待完成」三张顶部数字卡 - - 项目转让 / 离职后该协作关系会保留,直到对方手动调整 -last_verified: v1.7.90 + - 协助任务不计入个人视角的已超期、今日到期、待完成数字 + - 协作者不是任务负责人,能否修改字段仍取决于项目和任务权限 + - 仪表盘不会把协助任务转换成负责人任务 +last_verified: v1.8.69 --- -# 「协助的任务」卡片用法 +# 「我协助的」任务如何显示 -## 是什么 -仪表盘第 4 个分组列表,独立于顶部 3 张数字卡之外,展示当前用户作为**协作者**([[task.field.owner-assist.concept]] 中 `owner=0` 且 `assist=true`)参与的任务,但不是负责人。语义是「别人主任务上把我加进来一起做的活」。 +## 统计规则 +「我协助的」展示当前用户作为协作者参与、但不是负责人的未归档未完成任务,即任务关系满足 `assist=true` 且 `owner=0`。它与负责人任务分组独立,不会重复计入个人视角的已超期、今日到期或待完成数字。 -## 数据规则 -- ProjectTaskUser 命中当前用户、owner=0(协作者标识) -- complete_at IS NULL(任务未完成) -- archived_at IS NULL(任务未归档) -- deleted_at IS NULL +## 页面信息 +- 顶部卡片显示协助任务总数。 +- 如果其中有今天到期的任务,卡片同时提示今天到期数量。 +- 列表中显示主负责人头像,帮助区分“我协助谁”。 +- 点击任务行打开任务详情。 -## 入口 -- 桌面端:仪表盘下方第 4 个分组(在「今日到期」「超期任务」「待完成」之下) -- 标题旁数字 = 协作任务数 -- 点标题折叠 / 展开 +## 权限说明 +协作者可以查看任务及参与沟通,但修改字段、删除任务或完成任务仍受项目权限和任务关系限制。仪表盘本身不会提升协作者权限。 -## 操作权限 -| 行为 | 协作者(assist) | 负责人(owner=1) | -|---|---|---| -| 查看任务详情 | ✓ | ✓ | -| 评论 / 发消息 | ✓ | ✓ | -| 改任务字段 | 视项目权限规则 | ✓ | -| 标记完成 | ✗ | ✓ | -| 删除任务 | ✗ | 视权限 | - -如果改不动字段,看 [[project.permission-denied-task.faq]] 排查。 - -## 不支持 -- 协作者不能完成任务 -- 协作者不能给任务再加协作者 -- 仪表盘不区分"我创建的"与"别人加我的"协作任务,全混在一起 +在列表布局中「我协助的」可以折叠;在四象限布局中它是四个固定象限之一。 diff --git a/resources/ai-kb/zh/howto/dashboard/collapse.md b/resources/ai-kb/zh/howto/dashboard/collapse.md index a12e7b847..e8c859009 100644 --- a/resources/ai-kb/zh/howto/dashboard/collapse.md +++ b/resources/ai-kb/zh/howto/dashboard/collapse.md @@ -1,53 +1,39 @@ --- id: dashboard.collapse.howto -title: 折叠 / 展开仪表盘分组 +title: 折叠和展开个人视角任务分组 type: howto feature: dashboard scope: end-user locale: zh aliases: - 仪表盘折叠 - - 隐藏仪表盘分组 - - 隐藏协助任务 - - 仪表盘卡片折叠 - - 展开仪表盘 + - 收起待完成 + - 隐藏任务分组 + - 展开本周完成 + - 仪表盘分组记忆 related_tools: [] related_pages: [dashboard] prerequisites: [] negative: - - 折叠状态按当前用户独立存储,不同步到其他设备 - - 不能完全隐藏顶部 3 张数字卡(始终显示) - - 不能调换分组顺序 -last_verified: v1.7.90 + - 分组收起状态只在列表布局中使用 + - 手动收起状态只记忆到当天,不会跨设备同步 + - 不能拖动调整分组顺序或修改分组名称 +last_verified: v1.8.69 --- -# 折叠 / 展开仪表盘分组 +# 折叠和展开个人视角任务分组 -## 是什么 -仪表盘下方的 4 个分组列表([[dashboard.today.howto]] / [[dashboard.overdue.howto]] / [[dashboard.todo.howto]] / [[dashboard.assist.howto]])每个都可独立折叠或展开。状态保存在浏览器 IndexedDB 的 `dashboardHiddenColumns` 键,按当前用户独立。 +## 操作 +个人视角切换到「列表」布局后,点击任一分组标题即可收起或展开。可操作的分组包括已超期、今日到期、待完成、待开始、我协助的和本周完成。 -## 入口 -- 桌面端:分组标题栏左侧的折叠箭头(▶ / ▼) -- 桌面端:点分组标题文字 -- 移动端:同上 +## 默认策略 +仪表盘优先突出需要立即行动的任务: -## 折叠后 -- 分组标题保留(仍能看到分类名 + 数量) -- 列表内容收起 -- 分组数量小标仍正常更新 -- 状态保存到 IndexedDB → 下次进仪表盘默认保持 +- 有已超期或今日到期任务时,「待完成」默认收起。 +- 有已超期或今日到期任务时,「待开始」默认收起。 +- 其他显示出来的分组默认展开。 -## 展开 -- 再次点折叠箭头 / 标题 → 恢复展开 -- 状态同步更新到 IndexedDB +## 记忆规则 +用户手动打开或收起后,该选择保存在当前浏览器并在当天优先于默认策略。日期变化后重新按默认策略计算。清除浏览器缓存、更换浏览器或更换设备不会保留这份状态。 -## 同步规则 -- IndexedDB 存储在浏览器本地 -- 不同浏览器 / 不同设备的折叠状态各自独立 -- 清浏览器数据会丢失折叠状态(重置为全展开) - -## 不支持 -- 不能完全删除分组(只能折叠) -- 不能拖动调整 4 个分组的顺序 -- 不能给分组改名 -- 不支持云端同步折叠状态 +四象限布局不使用分组折叠;任务较多时通过卡片底部的展开/收起控制显示数量,详见 [[dashboard.layout.howto]]。 diff --git a/resources/ai-kb/zh/howto/dashboard/completed.md b/resources/ai-kb/zh/howto/dashboard/completed.md new file mode 100644 index 000000000..a3c56eec8 --- /dev/null +++ b/resources/ai-kb/zh/howto/dashboard/completed.md @@ -0,0 +1,40 @@ +--- +id: dashboard.completed.howto +title: 「本周完成」和近期完成如何计算 +type: howto +feature: dashboard +scope: end-user +locale: zh +aliases: + - 本周完成 + - 近期完成 + - 最近完成的任务 + - 本周完成数量 + - 完成任务后去哪了 +related_tools: [list_tasks] +related_pages: [dashboard] +prerequisites: [] +negative: + - 本周完成只统计当前用户负责的任务 + - 已归档任务不进入本周完成 + - 四象限布局不显示本周完成 +last_verified: v1.8.69 +--- + +# 「本周完成」和近期完成如何计算 + +## 周区间 +本周完成使用固定自然周:从本周一 00:00 开始,到下周一 00:00 之前结束。任务必须有完成时间 `complete_at`、当前用户是负责人且任务未归档。数量显示准确总数,不使用 `N+` 估算。 + +## 有待处理任务时 +「本周完成」作为与其他任务分类相同的分组追加在列表末尾: + +- 默认展示最近完成的 5 条任务; +- 可以展开其余已完成任务; +- 点击分组标题可以收起或展开; +- 任务按完成时间倒序排列。 + +## 当前任务全部清空时 +页面显示「太棒了,任务全部清空」和本周完成总数,并在「近期完成」区域展示最近 5 条。此时不会继续保留已超期、今日到期等空分组。 + +在当前页面刚完成的任务会先划线留在原分组,稳定同步后才进入本周完成,详见 [[dashboard.refresh.faq]]。 diff --git a/resources/ai-kb/zh/howto/dashboard/layout.md b/resources/ai-kb/zh/howto/dashboard/layout.md new file mode 100644 index 000000000..4a542127d --- /dev/null +++ b/resources/ai-kb/zh/howto/dashboard/layout.md @@ -0,0 +1,40 @@ +--- +id: dashboard.layout.howto +title: 切换仪表盘列表和四象限布局 +type: howto +feature: dashboard +scope: end-user +locale: zh +aliases: + - 仪表盘列表布局 + - 仪表盘四象限 + - 怎么切换仪表盘布局 + - 任务四宫格 + - 个人视角布局 +related_tools: [] +related_pages: [dashboard] +prerequisites: [] +negative: + - 布局切换只适用于个人视角 + - 四象限不显示待开始和本周完成分组 + - 用户不能自定义象限名称或顺序 +last_verified: v1.8.69 +--- + +# 切换仪表盘列表和四象限布局 + +## 入口 +进入仪表盘个人视角,在右上角选择「列表」或「四象限」。所选布局保存在当前浏览器,下次进入时继续使用。 + +## 列表布局 +- 顶部显示已超期、今日到期、待完成、我协助的四张摘要卡。 +- 任务按已超期、今日到期、待完成、待开始、我协助的分组;有稳定完成记录时还会显示本周完成。 +- 普通任务分组默认展示前 10 条,本周完成默认展示最近 5 条,可展开其余任务。 +- 每个分组可独立收起,规则见 [[dashboard.collapse.howto]]。 + +## 四象限布局 +- 固定显示已超期、今日到期、待完成、我协助的四个象限。 +- 每个象限默认显示前 5 条,数量更多时可以展开其余任务,再次点击可收起。 +- 空象限会显示对应的空状态提示。 + +待开始和本周完成只出现在列表布局,不会加入四象限。 diff --git a/resources/ai-kb/zh/howto/dashboard/overdue.md b/resources/ai-kb/zh/howto/dashboard/overdue.md index df1c7f2fd..6e010fb6a 100644 --- a/resources/ai-kb/zh/howto/dashboard/overdue.md +++ b/resources/ai-kb/zh/howto/dashboard/overdue.md @@ -1,54 +1,40 @@ --- id: dashboard.overdue.howto -title: 「超期任务」卡片用法 +title: 「已超期」任务如何计算 type: howto feature: dashboard scope: end-user locale: zh aliases: + - 已超期 - 超期任务 - 过期任务 - - 任务超期了 - 逾期未完成 - - 超时任务 + - 为什么今天的任务已经超期 related_tools: [list_tasks, update_task, complete_task] related_pages: [dashboard] prerequisites: [] negative: - - 超期判断按用户本地时间,不同时区用户看到的列表可能差几小时 - - 没有 end_at 的任务永远不会变超期,归到「待完成」分组 - - 超期不自动改任务字段,只是前端展示分类 -last_verified: v1.7.90 + - 超期按具体截止时刻判断,不是统一等到当天结束 + - 没有截止时间的任务不会超期 + - 开始时间还没到的任务不会进入个人视角已超期分组 +last_verified: v1.8.69 --- -# 「超期任务」卡片用法 +# 「已超期」任务如何计算 -## 是什么 -仪表盘第 2 张数字卡和同名分组列表,展示当前用户作为负责人(owner=1)的、`end_at < 今天 00:00:00` 但 `complete_at IS NULL` 的任务。即「应该已经做完但还没做」的清单。 +## 统计规则 +个人视角「已超期」包含当前用户负责、已经开始、未归档、未完成,并且 `end_at` 小于或等于当前时间的任务。判断使用具体时刻:今天 10:00 截止的任务,在 10:00 后就会显示超期,不需要等到第二天。 -## 数据规则 -- end_at 比今天 0 点早 -- complete_at 为空(未完成) -- archived_at 为空(未归档) -- 当前用户是任务负责人 -- 任务按 end_at 升序(最久没做的排最前) +## 页面提示 +- 顶部卡片显示超期任务数和最久超期天数。 +- 点击卡片会展开超期分组并滚动到该位置。 +- 截止时间会显示「逾期 N 小时」或「逾期 N 天」。 +- 列表按截止时间排序,较早截止的任务靠前。 -## 入口 -- 桌面端:仪表盘顶部第 2 张数字卡 -- 标题色一般用红 / 警告色 -- 点卡片 → 跳转 / 展开分组 +## 常见处理 +1. 已完成:直接更新任务状态。 +2. 仍需继续:进入任务详情修改截止时间。 +3. 不再处理:按项目权限归档或删除任务。 -## 处理超期任务的常见做法 -1. **延期**:进任务详情把 end_at 推到合理时间,详见 [[task.edit.howto.basic]] -2. **完成**:补做后 [[task.complete.howto]] 标记完成 -3. **取消**:归档 [[task.archive.howto]] 或删除 [[task.delete-restore.howto]] -4. **转交**:把负责人改为他人(owner 从 1 → 0),任务从你的超期列表消失 - -## 不支持 -- 仪表盘不会"自动延期超期任务" -- 没有"延期申请"流程,改 end_at 不需要审批 -- 不能批量改一组超期任务的 end_at - -## 与「[[project.export.howto]] 超期导出」的关系 -- 仪表盘超期仅当前用户、跨项目 -- 项目级超期导出按项目维度全员任务,含他人任务 +仪表盘只负责分类和提示,不会自动延期,也不会自动修改任务字段。 diff --git a/resources/ai-kb/zh/howto/dashboard/team-focus.md b/resources/ai-kb/zh/howto/dashboard/team-focus.md new file mode 100644 index 000000000..4f0795bbd --- /dev/null +++ b/resources/ai-kb/zh/howto/dashboard/team-focus.md @@ -0,0 +1,40 @@ +--- +id: dashboard.team-focus.howto +title: 下钻团队成员、优先级和重点关注任务 +type: howto +feature: dashboard +scope: end-user +locale: zh +aliases: + - 重点关注任务 + - 点击成员看任务 + - 点击优先级看任务 + - 团队任务下钻 + - 未分配负责人任务 +related_tools: [] +related_pages: [dashboard] +prerequisites: + - 已进入部门负责人视角 +negative: + - 本周完成卡片不能下钻到未完成任务列表 + - 重点任务列表每次加载 20 条,需要点击加载更多 + - 高优先级使用系统优先级设置中的前两档 +last_verified: v1.8.69 +--- + +# 下钻团队成员、优先级和重点关注任务 + +## 可点击区域 +- 未完成、已超期、3 天内到期卡片:定位到重点关注任务并应用对应条件。 +- 成员任务分配:点击成员,只看该成员负责的未完成任务。 +- 未分配行:只看没有负责人的任务。 +- 优先级分布:点击任一档位,只看该优先级任务。 +- 重点关注标签:已超期、3 天内到期、高优先级、未分配负责人。 + +## 成员和优先级显示 +成员列表默认显示前 6 人,可展开全部。进度条悬停约 300 毫秒后显示未完成总数、超期数量和占比,以及待处理、进行中、验收/测试三个阶段的数量与占比。 + +优先级分布只显示有任务的档位,默认前 6 项,可展开其余优先级;“未设置”会作为独立档位出现。 + +## 任务列表 +筛选后自动滚动到重点关注区域。每页加载 20 条,点击「加载更多」继续获取;点击任务行打开任务详情。通过负责人视角额外看到的任务仍然只读。 diff --git a/resources/ai-kb/zh/howto/dashboard/team-scope.md b/resources/ai-kb/zh/howto/dashboard/team-scope.md new file mode 100644 index 000000000..885cbfbf3 --- /dev/null +++ b/resources/ai-kb/zh/howto/dashboard/team-scope.md @@ -0,0 +1,39 @@ +--- +id: dashboard.team-scope.howto +title: 选择部门负责人仪表盘的团队范围 +type: howto +feature: dashboard +scope: end-user +locale: zh +aliases: + - 选择团队范围 + - 我的部门筛选 + - 团队仪表盘选部门 + - 负责人仪表盘切部门 + - 多部门统计 +related_tools: [] +related_pages: [dashboard, project_list] +prerequisites: + - 当前用户管理至少一个部门 +negative: + - 至少选择一个部门后才能确定 + - 部门范围与项目负责人视角开关是两个独立状态 + - 范围选择保存在当前浏览器,不跨设备同步 +last_verified: v1.8.69 +--- + +# 选择部门负责人仪表盘的团队范围 + +## 仪表盘入口 +切换到「部门负责人」视角,点击右上角当前部门名称,打开「选择团队范围」。弹窗支持清空、全选、反选和逐项勾选;编辑时可以暂时清空,但没有选择任何部门时「确定」按钮不可用。 + +## 范围规则 +- 首次默认选择全部可管理部门。 +- 每个选中部门自动包含全部下级部门。 +- 从仪表盘或项目负责人视角入口修改,使用的是同一份部门范围。 +- 范围变化后,团队统计、成员分布、优先级和重点任务都会重新加载。 + +## 与项目负责人视角的关系 +项目列表拥有独立的「在项目列表中启用」开关。关闭时只显示自己的项目,但保留部门范围;仪表盘仍按该范围统计。再次开启项目负责人视角后,继续使用相同范围加载额外的只读项目。 + +项目侧完整操作见 [[org-department.deputy-view.howto]]。 diff --git a/resources/ai-kb/zh/howto/dashboard/today.md b/resources/ai-kb/zh/howto/dashboard/today.md index 70f9ef883..5586684bf 100644 --- a/resources/ai-kb/zh/howto/dashboard/today.md +++ b/resources/ai-kb/zh/howto/dashboard/today.md @@ -1,6 +1,6 @@ --- id: dashboard.today.howto -title: 「今日到期」卡片用法 +title: 「今日到期」任务如何计算 type: howto feature: dashboard scope: end-user @@ -10,43 +10,33 @@ aliases: - 今天要做的任务 - 今日待办 - 今天截止的任务 - - 今日任务 + - 今日任务怎么算 related_tools: [list_tasks, complete_task] related_pages: [dashboard] prerequisites: [] negative: - - "「今日到期」只算今天 00:00-23:59 的 end_at,不含明天" - - 协作任务(assist)不会出现在这里,单独走「协助的任务」 - - 完成今日任务不会立即从列表消失,需要刷新(仪表盘 600ms 后定时刷新) -last_verified: v1.7.90 + - 已经过截止时间的今日任务会进入「已超期」,不继续算今日到期 + - 开始时间晚于当前时间的任务归入「待开始」 + - 我协助但不负责的任务单独进入「我协助的」 +last_verified: v1.8.69 --- -# 「今日到期」卡片用法 +# 「今日到期」任务如何计算 -## 是什么 -仪表盘顶部「今日到期」数字 + 下方同名分组列表,展示我作为 [[task.field.owner-assist.concept]] 中 owner=1 的任务里,end_at 落在今天的、未完成、未归档的全部任务。 +## 统计规则 +个人视角的「今日到期」统计当前用户作为负责人、已经开始、未归档且未完成的任务,并同时满足: -## 数据规则 -- 时间范围:`今天 00:00:00 ≤ end_at ≤ 今天 23:59:59`(按用户本地时区) -- 状态:`complete_at IS NULL` 且 `archived_at IS NULL` -- 关系:`ProjectTaskUser.owner = 1` 命中当前用户 -- 不含子任务的统计累加(每个任务独立判断) +- 截止时间在今天; +- 截止时间晚于当前时间; +- 当前用户是任务负责人 `owner=1`。 -## 入口 -- 桌面端:仪表盘顶部第 1 张数字卡 -- 点击卡片或分组标题 → 展开 / 折叠分组 +截止时间已经到达的任务会立即归入 [[dashboard.overdue.howto]],不是等到第二天才算超期。开始时间还没到的任务进入 [[dashboard.upcoming.howto]]。 -## 卡片中能做什么 -- 点任务行 → 进入任务详情([[task.edit.howto.basic]]) -- 行尾复选框 → 直接标记完成([[task.complete.howto]]) -- 优先级色块 / 标签可视化 +## 页面操作 +- 点击顶部「今日到期」卡片,会展开对应分组并滚动定位。 +- 点击任务行打开任务详情。 +- 点击任务状态可以直接完成或调整状态。 +- 卡片会显示今日任务中最近的截止时刻。 -## 完成后行为 -- 标记完成后 `complete_at` 写入当前时间 -- 600ms 后仪表盘自动刷新(防抖定时器) -- 完成项从「今日到期」列表移除,分组数字 -1 - -## 不支持 -- 不能在仪表盘里直接改 end_at(必须进任务详情) -- 不能批量勾选完成多条任务 -- 不能筛选「只看某项目的今日到期」 +## 完成后的表现 +在当前页面完成任务后,该行会暂时保留并显示划线效果,数量立即减少;后续数据稳定后,任务按完成时间进入 [[dashboard.completed.howto]]。 diff --git a/resources/ai-kb/zh/howto/dashboard/todo.md b/resources/ai-kb/zh/howto/dashboard/todo.md index 3611daa83..5f26b911e 100644 --- a/resources/ai-kb/zh/howto/dashboard/todo.md +++ b/resources/ai-kb/zh/howto/dashboard/todo.md @@ -1,6 +1,6 @@ --- id: dashboard.todo.howto -title: 「待完成」卡片用法 +title: 「待完成」任务如何计算 type: howto feature: dashboard scope: end-user @@ -15,42 +15,26 @@ related_tools: [list_tasks, update_task] related_pages: [dashboard] prerequisites: [] negative: - - 「待完成」既包含没设 end_at 的任务,也包含 end_at 在未来的任务 - - 协作任务(owner=0 / assist=1)不在这里,去「协助的任务」分组 - - 「待完成」数字不含子任务的累积 -last_verified: v1.7.90 + - 「待完成」不包含今天剩余时间内到期的任务 + - 开始时间晚于当前时间的任务单独归入「待开始」 + - 协助任务单独归入「我协助的」 +last_verified: v1.8.69 --- -# 「待完成」卡片用法 +# 「待完成」任务如何计算 -## 是什么 -仪表盘第 3 张数字卡和同名分组列表,展示当前用户作为负责人的、**未到期 / 没截止时间**且未完成的任务。语义是「不紧急但还没做完的」。 +## 统计规则 +个人视角「待完成」包含当前用户负责、已经开始、未归档、未完成,并符合以下任一条件的任务: -## 数据规则 -- 当前用户是任务负责人(owner=1) -- `complete_at IS NULL` 且 `archived_at IS NULL` -- end_at 不在今天范围(与 [[dashboard.today.howto]] 互斥) -- end_at 不早于今天(与 [[dashboard.overdue.howto]] 互斥) -- 所以条件是:`end_at IS NULL` 或 `end_at >= 明天 00:00:00` +- 没有设置截止时间; +- 截止时间晚于今天,即明天或更晚。 -## 入口 -- 桌面端:仪表盘顶部第 3 张数字卡 -- 数字最大的分组(多数用户的"待完成"远多于"今日到期") -- 点击卡片或分组标题 → 展开列表 +今天尚未到截止时刻的任务进入 [[dashboard.today.howto]];已经超过截止时刻的进入 [[dashboard.overdue.howto]];开始时间还没到的进入 [[dashboard.upcoming.howto]]。 -## 列表排序 -- end_at 升序(最近要做的排前面) -- end_at 为空的排在最末 +## 页面操作 +- 点击顶部「待完成」卡片会滚动到待完成分组。 +- 如果存在待开始任务,卡片右侧会同时显示「待开始」数量,点击该区域定位到待开始分组。 +- 列表按截止时间升序排列,没有截止时间的任务排在后面。 +- 点击任务行打开任务详情,可补充开始时间、截止时间、负责人或优先级。 -## 常见操作 -- 进任务详情设 end_at([[task.field.deadline.concept]])让它流到「今日到期」/「超期任务」 -- 直接 [[task.complete.howto]] 标记完成 -- 不再做了就 [[task.archive.howto]] 归档 - -## 与全局「我的任务」的区别 -- 仪表盘「待完成」:仅当前用户负责人 + 未完成 + 未在今日 / 超期 -- 全局任务列表(左侧栏「任务」):可显示已完成 + 自己创建的全部历史 - -## 不支持 -- 不能在仪表盘里直接添加新任务 -- 不能筛选 / 排序「按项目」「按优先级」(要进项目页或全局任务页操作) +仪表盘不提供按项目或优先级重新排序待完成任务的功能。 diff --git a/resources/ai-kb/zh/howto/dashboard/upcoming.md b/resources/ai-kb/zh/howto/dashboard/upcoming.md new file mode 100644 index 000000000..9aee8d0b6 --- /dev/null +++ b/resources/ai-kb/zh/howto/dashboard/upcoming.md @@ -0,0 +1,40 @@ +--- +id: dashboard.upcoming.howto +title: 「待开始」任务如何计算 +type: howto +feature: dashboard +scope: end-user +locale: zh +aliases: + - 待开始任务 + - 还没开始的任务 + - 未来开始的任务 + - 为什么任务不在待完成 + - start_at 任务 +related_tools: [list_tasks, update_task] +related_pages: [dashboard] +prerequisites: [] +negative: + - 待开始只显示在个人视角的列表布局 + - 协助任务不按待开始规则拆分 + - 到达开始时间后任务会重新归入已超期、今日到期或待完成 +last_verified: v1.8.69 +--- + +# 「待开始」任务如何计算 + +## 统计规则 +「待开始」包含当前用户负责、未归档、未完成,并且开始时间 `start_at` 晚于当前时间的任务。它用于把尚未进入执行期的任务与当前可处理任务分开。 + +任务到达开始时间后,会根据截止时间重新分类: + +- 截止时间已到:进入 [[dashboard.overdue.howto]]。 +- 今天稍后截止:进入 [[dashboard.today.howto]]。 +- 没有截止时间或明天以后截止:进入 [[dashboard.todo.howto]]。 + +## 页面位置 +- 待完成摘要卡右侧会显示待开始数量。 +- 点击该数量会展开待开始分组并滚动定位。 +- 列表按开始时间升序排列,较早开始的任务靠前。 + +「待开始」只存在于列表布局;四象限布局不单独展示该分类。 diff --git a/resources/ai-kb/zh/howto/org-department/deputy-view.md b/resources/ai-kb/zh/howto/org-department/deputy-view.md index cf895effc..c3e39040a 100644 --- a/resources/ai-kb/zh/howto/org-department/deputy-view.md +++ b/resources/ai-kb/zh/howto/org-department/deputy-view.md @@ -1,6 +1,6 @@ --- id: org-department.deputy-view.howto -title: 切换到部门负责人视角 +title: 设置项目负责人视角和共用部门范围 type: howto feature: org-department scope: end-user @@ -8,53 +8,45 @@ locale: zh aliases: - 负责人视角 - 部门负责人视角 + - 项目负责人视角 - 看下属项目 - 看部门成员项目 - - 切换部门视角 - - 怎么查看下属任务 - 主管视角 related_tools: [] -related_pages: [] +related_pages: [dashboard, project_list] prerequisites: - - 当前用户是某部门的部门负责人(owner_userid)或部门管理员(deputy) - - 系统管理员已在系统设置中开启「部门负责人视角」(`department_owner_project_view = open`) + - 当前用户是某部门的部门负责人或部门管理员 + - 系统管理员已开启部门负责人视角 negative: - - 没开启系统开关时,`info/managed_departments` 接口固定返回空数组,前端不显示入口 - - 仅"只读"视角;不能修改项目、添加成员、改任务 - - 项目可单独关闭"部门负责人视角可见"(`projects.department_owner_view = close`),关闭后对负责人隐藏 - - 用户在多个部门同时管理时,弹窗会列出所有可切换部门,可多选或全选 - - 视角不持久跨多设备,是当前会话的偏好(保存在 `cacheDepartmentOwnerIds`) -last_verified: v1.7.90 + - 项目负责人视角只能只读查看额外项目,不授予修改权限 + - 项目可单独关闭负责人视角可见性,关闭后不会被纳入 + - 没有选择任何部门时不能保存范围 + - 部门范围和项目列表开关保存在当前浏览器,不跨设备同步 +last_verified: v1.8.69 --- -# 切换到部门负责人视角 +# 设置项目负责人视角和共用部门范围 ## 入口 -- 桌面端:右上角头像菜单 → 顶部「负责人视角」入口(仅当 `managed_departments` 非空时出现) -- 接口(拉可管理部门):`GET api/users/info/managed_departments` -- 接口(应用偏好):`store.dispatch("setDepartmentOwnerIds", ids)` +- 右上角头像菜单 →「负责人视角」。 +- 项目列表搜索栏旁的负责人视角按钮。 +- 仪表盘「部门负责人」视角 → 右上角部门名称;该入口只选择团队范围。 -## 操作步骤 -1. 点击右上角头像 → 「负责人视角」 -2. 弹窗显示我可管理的部门清单 -3. 勾选要"切入"的部门(可多选 / 全选 / 反选 / 清空) -4. 点击「确定」生效 +## 项目负责人视角 +从菜单或项目列表打开「项目负责人视角」弹窗: -## 切换后效果 -- 项目列表:除自己参与的项目外,新增可见所选部门成员参与的项目(标记 `department_readonly=true`) -- 任务列表:可只读浏览这些项目的全员可见任务 -- 仪表盘 / 报表:相关聚合数据会把这些部门成员纳入统计范围 -- 退出视角:再次打开弹窗 → 「清空」→「确定」 +1. 打开「在项目列表中启用」开关。 +2. 选择一个或多个管理部门。 +3. 点击「确定」。 -## 接口数据来源 -- 我可管理的部门 = 我是 `owner_userid` 的部门 ∪ 我在 `user_department_owners` 表的部门 -- 实际看到的项目 = 上述部门**递归全部下级**的成员所在项目(不含已关闭"部门负责人视角可见"的项目) +开启后,项目列表会出现「我的项目 / 负责人视角」分类:前者保留本人项目,后者显示所选部门及全部下级部门成员参与的额外可见项目。额外项目标记为只读;本人原本参与的项目权限不受影响。关闭开关后只显示自己的项目,但部门范围会保留,部门列表在关闭状态下隐藏。 -## 不支持 -- 视角无法修改下属数据,所有操作按钮在 readonly 项目内会被隐藏或禁用 -- 不能查看下属"全员不可见"的私密任务 -- 系统未开启开关时本功能完全不可用 +## 部门范围 +仪表盘和项目负责人视角共用同一份范围。弹窗支持清空、全选、反选和逐项选择;清空只是编辑中的临时状态,至少选中一个部门才能确定。修改范围时,项目视角开关不会被仪表盘入口自动打开或关闭。 -## 相关 -- 角色定义:[[org-department.deputy.concept]] -- 任命部门管理员:[[org-department.add-deputy.howto]] +## 可见性限制 +- 仅包含未归档且允许负责人视角查看的项目。 +- 私密任务不会因为负责人身份自动可见。 +- 通过负责人视角看到的项目和任务不允许修改。 + +团队统计范围见 [[dashboard.team-scope.howto]]。 diff --git a/resources/ai-kb/zh/howto/project/create.md b/resources/ai-kb/zh/howto/project/create.md index e5fbe5889..89b461c64 100644 --- a/resources/ai-kb/zh/howto/project/create.md +++ b/resources/ai-kb/zh/howto/project/create.md @@ -19,14 +19,14 @@ negative: - 个人项目(personal=1)每个用户只能有 1 个 - 项目名称必填,≤100 字符 - 创建时启用工作流后无法再回退到「无工作流」模式 -last_verified: v1.7.90 +last_verified: v1.8.69 --- # 创建项目 ## 入口 - 桌面端:左侧栏「项目」分组顶部「+」按钮 → 弹窗 -- 桌面端:仪表盘空状态 → 「+ 新建项目」 +- 桌面端:新账号仪表盘欢迎空状态 → 「创建第一个项目」 - 移动端:项目 Tab → 右上角「+」 ## 操作步骤 diff --git a/resources/ai-kb/zh/menu-map/dashboard/entry.md b/resources/ai-kb/zh/menu-map/dashboard/entry.md index 26c858d2a..6091e1ba7 100644 --- a/resources/ai-kb/zh/menu-map/dashboard/entry.md +++ b/resources/ai-kb/zh/menu-map/dashboard/entry.md @@ -10,38 +10,34 @@ aliases: - 怎么进仪表盘 - 我的工作台 - 主页在哪 - - 首页入口 + - 团队仪表盘在哪 + - 部门任务总览在哪 related_tools: [list_tasks] related_pages: [dashboard] prerequisites: [] negative: - - 仪表盘是登录后默认页之一,无单独权限 - - 移动端有专属的"我"Tab,与桌面端仪表盘内容相近但布局不同 - - 仪表盘内容是当前用户私有,不能切换查别人的 -last_verified: v1.7.90 + - 普通成员看不到「部门负责人」切换 + - 仪表盘没有独立的权限配置,登录用户都能使用个人视角 + - 部门负责人视角不会让用户获得系统管理员权限 +last_verified: v1.8.69 --- # 仪表盘入口在哪 ## 路径 -- **桌面端**:左侧栏顶部「仪表盘」菜单项(路由 `/manage/dashboard`) -- **桌面端**:登录默认页之一,多数用户进站后自动落到此页 -- **桌面端 URL**:`https://<域名>/manage/dashboard` -- **移动端**:底部 Tabbar 的「我」Tab(功能近似仪表盘) -- **桌面快捷键**:无直达快捷键 +- 桌面端:左侧栏顶部「仪表盘」。 +- 页面路由:`/manage/dashboard`。 +- 移动端:通过底部导航进入仪表盘页面,布局会随屏幕宽度适配。 +- 桌面快捷键:没有直达仪表盘的默认快捷键。 -## 谁能看到 -- 所有登录用户都能看到仪表盘 -- 内容是当前用户私有(自己名下任务、自己负责的任务) -- 站点管理员看到的也是自己的视图,不能切换查他人 +## 进入后看到什么 +- 所有登录用户默认可使用个人视角,查看自己负责和协助的任务。 +- 个人视角右上角可以切换「列表 / 四象限」。 +- 符合部门负责人条件时,右上角增加「个人视角 / 部门负责人」切换。 +- 部门负责人视角顶部的部门按钮可打开「选择团队范围」弹窗。 -## 主要内容 -仪表盘展示当前用户「今日要做什么」的快速视图,详见 [[dashboard.concept]]: -- 顶部三个数字卡片:今日到期、超期任务、待完成 -- 下方四个分组列表:今日到期 / 超期 / 待完成 / 协助的任务 -- 每个分组可折叠展开 +## 部门负责人视角出现条件 +1. 系统设置 `department_owner_project_view` 已开启。 +2. 当前用户是至少一个部门的负责人或部门管理员。 -## 不支持 -- 不能给团队 / 部门展示统一的"团队仪表盘" -- 不能切换"看某成员的仪表盘" -- 不能把仪表盘嵌入其他页面 / 桌面小组件 +详细界面说明见 [[dashboard.concept]],部门范围规则见 [[dashboard.team-scope.howto]]。 diff --git a/resources/ai-kb/zh/menu-map/menu-navigation/dashboard.md b/resources/ai-kb/zh/menu-map/menu-navigation/dashboard.md index a961786dd..576f86523 100644 --- a/resources/ai-kb/zh/menu-map/menu-navigation/dashboard.md +++ b/resources/ai-kb/zh/menu-map/menu-navigation/dashboard.md @@ -1,6 +1,6 @@ --- id: menu-navigation.dashboard.menu-map -title: 仪表盘入口在哪 +title: 仪表盘导航入口 type: menu-map feature: menu-navigation scope: end-user @@ -10,33 +10,28 @@ aliases: - 工作台入口 - 首页在哪 - 主页怎么进 + - 团队仪表盘入口 related_tools: [list_tasks] related_pages: [dashboard] prerequisites: [] negative: - - 仪表盘内容是个人私有,不能切换查别人的 - - 没有"团队仪表盘",团队维度需要走「数据导出」 -last_verified: v1.7.90 + - 普通成员不能切换到部门负责人视角 + - 部门负责人视角只提供团队任务只读总览 +last_verified: v1.8.69 --- -# 仪表盘入口在哪 +# 仪表盘导航入口 ## 路径 -- 桌面端:左侧栏顶部「仪表盘」(路由 `/manage/dashboard`) -- 桌面端:登录后多数账号默认落到仪表盘 -- 移动端:底部 Tabbar「仪表盘」Tab -- 桌面 URL:`https://<域名>/manage/dashboard` -- 快捷键:无 +- 桌面端:左侧主导航 →「仪表盘」。 +- 路由:`/manage/dashboard`。 +- 移动端:底部导航 → 仪表盘页面。 +- 快捷键:无。 -## 看到什么 -- 顶部三个数字卡片:今日到期、超期、待完成 -- 下方四个分组:今日 / 超期 / 待完成 / 协助 -- 「我的项目」卡片 +## 页面内容 +- 个人视角:已超期、今日到期、待完成、待开始、我协助的、本周完成。 +- 个人视角布局:列表或四象限。 +- 部门负责人视角:团队指标、成员任务分配、优先级分布、重点关注任务。 -## 权限要求 -- 所有登录用户可见 -- 内容是当前用户私有视角 - -## 相关 -- 详细界面:[[dashboard.entry.menu-map]] -- 各分组用法:[[dashboard.today.howto]] / [[dashboard.overdue.howto]] +## 权限 +所有登录用户可访问个人视角。系统开启负责人视角且用户管理至少一个部门时,才显示「部门负责人」切换。详细说明见 [[dashboard.entry.menu-map]]。 diff --git a/resources/ai-kb/zh/menu-map/menu-navigation/my-projects.md b/resources/ai-kb/zh/menu-map/menu-navigation/my-projects.md index 94a74bf5f..26a1f0c79 100644 --- a/resources/ai-kb/zh/menu-map/menu-navigation/my-projects.md +++ b/resources/ai-kb/zh/menu-map/menu-navigation/my-projects.md @@ -17,14 +17,15 @@ negative: - 默认列表只显示我加入的项目,未加入项目不显示 - 已归档项目要切到「已归档」筛选 - 不支持申请加入未加入的项目 -last_verified: v1.7.90 + - 仪表盘没有固定的「我的项目」卡片 +last_verified: v1.8.69 --- # 我的项目入口在哪 ## 路径 - 桌面端:左侧栏 →「项目」分组(默认展开),所有我加入的项目按置顶 + 自定义顺序排列 -- 桌面端:左侧栏顶部「仪表盘」→「我的项目」卡片 +- 桌面端:进入项目列表页,可搜索和切换项目 - 桌面端:头像下拉(管理员)→「所有项目」可看全站 - 移动端:底部 Tabbar「项目」Tab - 桌面快捷键:Cmd/Ctrl + P 唤起项目快搜 @@ -33,6 +34,7 @@ last_verified: v1.7.90 - 「我加入的」(默认) - 「全部」:仅站点管理员可见 - 「已归档」:archived_at 非空的 +- 部门负责人开启项目负责人视角后:增加「我的项目 / 负责人视角」分类 ## 权限要求 - end-user 默认看到自己加入的项目 diff --git a/resources/ai-kb/zh/menu-map/menu-navigation/my-tasks.md b/resources/ai-kb/zh/menu-map/menu-navigation/my-tasks.md index 1c75410e2..a0a2b5b66 100644 --- a/resources/ai-kb/zh/menu-map/menu-navigation/my-tasks.md +++ b/resources/ai-kb/zh/menu-map/menu-navigation/my-tasks.md @@ -16,22 +16,22 @@ prerequisites: [] negative: - 没有「我的任务」一级菜单,它由仪表盘 + 日历 + 各项目内分布呈现 - 不支持跨项目按截止时间统一排序(除日历视图外) -last_verified: v1.7.90 +last_verified: v1.8.69 --- # 我的任务入口在哪 ## 路径 -- 桌面端:左侧栏「仪表盘」→「今日 / 超期 / 待完成 / 协助」四个分组都是我的任务 +- 桌面端:左侧栏「仪表盘」→ 个人视角;列表布局包含已超期、今日到期、待完成、待开始、我协助的、本周完成 - 桌面端:左侧栏「日历」→ 我作为负责人的任务按时间显示 - 桌面端:进入任意项目 → 顶部筛选切到「我负责的」/「我协助的」 -- 移动端:底部 Tabbar「仪表盘」→ 同样的四组 +- 移动端:底部导航 → 仪表盘个人视角 - 移动端:日历 Tab(管理员菜单内) - 快捷键:无 ## 怎么算"我的任务" -- 负责人(owner)含我的全部任务 -- 协助人(assist)含我的任务也算 +- 负责人任务按开始时间、截止时间和完成时间分到对应仪表盘分组 +- 协助人任务单独进入「我协助的」 - 不包括只关注 / 抄送的任务 ## 权限要求 diff --git a/resources/ai-kb/zh/menu-map/project/entry.md b/resources/ai-kb/zh/menu-map/project/entry.md index 32a6db6ba..9a1049ff3 100644 --- a/resources/ai-kb/zh/menu-map/project/entry.md +++ b/resources/ai-kb/zh/menu-map/project/entry.md @@ -18,14 +18,15 @@ negative: - 已归档项目默认不在主列表,要在筛选切到「已归档」 - 已删除项目仅在回收站可见 - 个人项目([[project.personal.concept]])也在同一列表,按类型筛选 -last_verified: v1.7.90 + - 仪表盘不再提供固定的「我的项目」卡片,新账号空状态只提供创建第一个项目入口 +last_verified: v1.8.69 --- # 项目入口在哪 ## 路径 - **桌面端**:左侧栏 → 「项目」分组 → 单击展开项目列表 -- **桌面端仪表盘**:顶部「我的项目」卡片 +- **桌面端仪表盘**:新账号没有项目时,可从欢迎空状态点击「创建第一个项目」 - **桌面端右上「+」全局快捷**:「+ 添加项目」直接建项目([[project.create.howto]]) - **移动端**:底部 Tabbar → 「项目」Tab - **桌面快捷键**:Cmd/Ctrl + P 唤起项目快搜 @@ -35,6 +36,7 @@ last_verified: v1.7.90 - 项目类型标签(团队 / 个人) - 任务进度(X/Y 完成) - 置顶项目排在前面(top_at DESC) +- 部门负责人开启项目负责人视角后,显示「我的项目 / 负责人视角」分类,额外项目只读 ## 默认筛选 - 「我加入的」(默认):仅显示 ProjectUser 命中你的 @@ -46,6 +48,7 @@ last_verified: v1.7.90 - 任何登录用户都能看到项目入口 - 看到具体项目要求你已加入(ProjectUser),管理员可见全部 - 加入项目方式:[[project.member.howto]] 被加 / [[project.invite.howto]] 链接邀请 +- 部门负责人只读项目:[[org-department.deputy-view.howto]] ## 不支持 - 没有"未加入的可申请项目"列表,无法主动申请加入