kuaifan
|
6b54b7b1c5
|
feat(todo): 聊天待办支持提醒时间(到点引用原消息+@提及)
给消息待办增加可选「提醒时间」,到点由 todo-alert 机器人对原消息发起
reply、正文 @ 仍在群内的被指派成员,完全复用原生回复/提及链路(定向未读、
红点、绕过会话免打扰、App 推送);被指派人全部退群则跳过发送并标记已提醒。
设/改/取消提醒的权限沿用 todo_set_permission 开关与 checkTodoOwnerPermission。
后端:
- 迁移:web_socket_dialog_msg_todos 增加 remind_at/reminded_at 及索引,
注册为日期字段
- WebSocketDialogMsgTodo::dueReminders() 选取到点(未提醒/未完成)待办(limit 500)
- WebSocketDialogMsg::setTodoRemind() 纯数据写入(改时间重置 reminded_at),
接入 toggleTodoMsg($remindAt) 与 msg__todo 透传
- 接口 msg__todoremind 设置/修改/取消提醒(权限闸门、消息类型校验、
pushMsg 同步 todo_done)
- TodoRemindTask 到点按消息发提醒(reminded_at 防重复、迟发补发、原消息/
会话删除兜底),buildRemindText 生成 <span class="mention user"> 文本,
接入 crontab;登记 todo-alert 机器人
- msgJoinGroup 从提醒文本中提取被 @ 成员
前端:
- 设待办弹窗新增「提醒时间」(预设 + 自定义 DatePicker)
- 待办详情浮层每条待办可查看/修改/取消提醒:DatePicker on-clear「清空」
二次确认后取消,无时间时仅关闭面板不发请求
- 待办浮层窄屏(≤500px)改为 待办/完成 tab 切换,宽屏维持双列;列表为空
展示空状态占位;提醒时间用 Icon 替换 emoji
- 时间读写对齐项目任务时间的时区约定
测试:tests/Feature/TodoRemindTest(数据/选取/写入/权限决策/buildRemindText/
text mention 提取),TodoSetPermissionTest 无回归。
任务 #124 后续增强。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-01 12:08:34 +00:00 |
|
kuaifan
|
20b5daba50
|
feat(manage): 团队管理支持管理员创建/批量导入员工账号(含部门、职位)
单个创建:邮箱/昵称/初始密码 + 可选首登改密、职位、部门(多选,选子部门自动补选上级,并加入对应部门群)。
批量导入:上传 Excel/CSV → 预览逐行校验 → 确认后导入。职位为模板第4列(选填,逐行解析校验),部门在预览表按行勾选后由底部设置部门到选中写入;导入按行返回结果(全成功关弹窗+成功提示;含失败留弹窗显示失败明细;仅 success>0 才刷新列表)。
后端:User::createByAdmin 选项数组化 + 校验助手 assertValidProfession/assertValidDepartments;importUsers 逐行 department/profession;UsersController createuser/import;UserImport/UserImportTemplate(含职位列)。
测试:tests/Feature/AdminCreateUserTest、tests/Unit/UserImportParseTest。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-01 01:26:34 +00:00 |
|
kuaifan
|
aa2e0acaba
|
feat(dialog): 系统设置支持禁止其他人员设置/取消聊天待办
新增系统级开关 todo_set_permission(open=允许默认 / close=禁止)。
开关为禁止时,仅本人、群主/群管理员、项目负责人/项目管理员、任务负责人
可设置或取消聊天消息待办,其他人由后端拦截;默认允许,保持现有行为。
- SystemController::setting 接入开关读写(白名单 + 默认 open)
- WebSocketDialog::checkTodoOwnerPermission 角色判断(复用 isOwner 等)
- WebSocketDialogMsg::toggleTodoMsg 内权限闸门:close 且影响到他人且
非放行角色时 retError;仅影响自己始终放行;open 时行为零变化
- SystemSetting.vue「消息相关」新增「待办设置权限」开关 UI
- 国际化文案(original-api.txt / original-web.txt)
- TodoSetPermissionTest 覆盖角色判断、闸门决策及真实拦截路径(8 用例)
任务 #124。系统后台 admin 不特殊放行;「完成待办」不在本次范围。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-05-31 15:12:46 +00:00 |
|
kuaifan
|
42e355149c
|
chore(i18n): 补全 v1.7.29 后遗漏的原文并去重
补登 v1.7.29 至今新增的用户可见文本:
- original-web.txt 新增 16 条(部门负责人视角、项目管理员相关等)
- original-api.txt 新增 7 条(项目负责人/成员校验、群成员移出等错误消息)
同时清理两文件历史重复内容行(web -18、api -26),
translate.php 读取时本就 array_unique,去重不影响翻译产物。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 22:49:44 +00:00 |
|
kuaifan
|
7f7a82b4b8
|
feat(manage): 部门负责人视角支持项目级可见开关并尊重任务可见性
新增项目级"负责人视角"开关(projects.department_owner_view,默认开启),
项目负责人可关闭,关闭后该项目及其群聊对部门负责人视角隐藏。同时将负责人
只读视角调整为尊重任务可见性:仅"全员可见"任务可被查看/进入任务群,指定
成员可见的任务仅对被指定成员开放。
- 新增 projects.department_owner_view 字段(migration)
- ProjectController::update 支持读写该开关
- UserDepartment::ownerViewContext 过滤已关闭项目,并合并为单次 JOIN 查询
- ProjectTask::findForDepartmentView / task__one / tasks 列表尊重任务可见性
- WebSocketDialog::checkDialog 任务群按可见性放行
- 前端项目设置新增开关(仅系统开启该功能时显示)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 04:46:11 +00:00 |
|
kuaifan
|
7e5b31cfb2
|
feat(template): 添加共享模板功能,支持项目间模板使用控制
|
2026-05-11 03:26:59 +00:00 |
|
kuaifan
|
7dc641e69e
|
feat(template): 添加跨项目任务模板支持,增加使用统计和搜索功能
|
2026-05-11 01:13:54 +00:00 |
|
kuaifan
|
24710289e1
|
feat(multi-owner): 群/项目/部门支持主+副双负责人体系
- 群组:新增 web_socket_dialog_users.role(1=主、2=副),主可任命/罢免副群主,副可邀请/移出普通成员
- 项目:project_users.owner 扩展为 0/1/2(成员/主/副),主独占转让和删除,副共享日常管理;任务可见性、通知、分配等下游逻辑统一用「主+副」
- 部门:新增 user_department_owners 表存储副负责人;部门群同步副群主,赋予群管理员权限
- 转移用户时副身份不替补、降级为普通成员
- 配套 migration/backfill、API、前端 UI、i18n 词条与三项 Feature 测试
- .gitignore 忽略 .playwright-mcp/
|
2026-05-03 00:05:31 +00:00 |
|
kuaifan
|
1059630b9d
|
feat(ldap): 支持非邮箱用户名登录,完善 AD 兼容性
- 登录页放宽校验:登录模式允许任意账号格式,注册模式仍强制邮箱
- 登录属性新增 userPrincipalName 选项(AD 常用且通常是邮箱格式)
- LDAP 用户缺少邮箱属性时返回明确错误提示,替代误导性的"请输入正确的邮箱地址"
- LDAP 登录合并已有本地账号时记录 info 日志,便于审计
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-16 11:48:40 +00:00 |
|
kuaifan
|
6a71964592
|
feat(dialog): 重构合并转发功能
- 合并转发消息体改为存储 msg_ids + preview,不再存储完整消息列表
- 新增 mergedetail API 按需加载合并转发详情
- 详情展示从 Modal 改为 DrawerOverlay,支持完整消息渲染
- 统一不可转发消息类型过滤(tag/top/todo/notice/word-chain/vote/template)
- 合并转发标题改为前端国际化拼接
- DialogWrapper 支持 staticMsgs 静态模式用于详情渲染
- 优化多选操作栏和转发确认界面样式
|
2026-04-05 09:31:41 +00:00 |
|
kuaifan
|
f68f759418
|
fix(ai): 更新提示信息为本地化文本
|
2026-01-21 15:56:03 +00:00 |
|
kuaifan
|
7f9c42d3d8
|
no message
|
2026-01-07 04:11:42 +00:00 |
|
kuaifan
|
20fc2b073b
|
no message
|
2025-12-11 02:09:59 +00:00 |
|
kuaifan
|
0790eae8c6
|
no message
|
2025-11-10 15:20:31 +00:00 |
|
kuaifan
|
b9df277104
|
no message
|
2025-11-06 07:16:29 +00:00 |
|
kuaifan
|
6f7656802f
|
no message
|
2025-11-05 06:20:04 +00:00 |
|
kuaifan
|
e2296a6f64
|
feat: 添加子任务升级为主任务功能
|
2025-10-24 05:38:54 +00:00 |
|
kuaifan
|
591f9e61fb
|
no message
|
2025-09-27 17:48:43 +08:00 |
|
kuaifan
|
95bf70f568
|
no message
|
2025-09-26 19:02:09 +08:00 |
|
kuaifan
|
09ed978e80
|
no message
|
2025-09-24 11:54:01 +08:00 |
|
kuaifan
|
5ba5f27ca7
|
no message
|
2025-09-23 15:03:29 +08:00 |
|
kuaifan
|
1c4bae2d91
|
no message
|
2025-09-23 10:16:57 +08:00 |
|
kuaifan
|
6148b996d8
|
no message
|
2025-09-22 06:27:57 +08:00 |
|
kuaifan
|
50098b5e70
|
no message
|
2025-08-19 22:19:46 +08:00 |
|
kuaifan
|
c53e978106
|
no message
|
2025-08-01 12:47:49 +08:00 |
|
kuaifan
|
b914164a77
|
no message
|
2025-07-28 10:26:00 +08:00 |
|
kuaifan
|
d093163cd4
|
perf: 优化国际化
|
2025-07-26 15:18:00 +08:00 |
|
kuaifan
|
1bcc035979
|
no message
|
2025-07-17 16:03:18 +08:00 |
|
kuaifan
|
eaa8ae66db
|
no message
|
2025-07-08 11:08:13 +08:00 |
|
kuaifan
|
a5b8609df1
|
perf: 优化导出签到功能
|
2025-06-04 15:14:31 +08:00 |
|
kuaifan
|
1fd7f0314a
|
perf: 优化导出审批功能
|
2025-06-04 15:08:31 +08:00 |
|
kuaifan
|
25e82d690e
|
perf: 优化导出任务功能
|
2025-06-04 14:58:54 +08:00 |
|
kuaifan
|
144767152a
|
no message
|
2025-05-29 01:44:06 +08:00 |
|
王昱
|
1d92c2668d
|
feat: 检查应用是否已安装
|
2025-05-23 12:40:33 +08:00 |
|
kuaifan
|
2bb646d150
|
no message
|
2025-05-15 15:03:49 +08:00 |
|
kuaifan
|
a5faa378b0
|
no message
|
2025-05-08 13:07:59 +08:00 |
|
kuaifan
|
534e95f86c
|
no message
|
2025-04-22 00:19:36 +08:00 |
|
kuaifan
|
c55f64e209
|
no message
|
2025-04-19 21:21:30 +08:00 |
|
kuaifan
|
9e522091c6
|
no message
|
2025-04-14 15:29:53 +08:00 |
|
kuaifan
|
bca284969d
|
no message
|
2025-03-22 18:44:09 +08:00 |
|
kuaifan
|
6afd413b87
|
no message
|
2025-03-19 23:35:02 +08:00 |
|
kuaifan
|
986a2f8cbb
|
no message
|
2025-03-16 23:28:12 +08:00 |
|
kuaifan
|
f162617765
|
no message
|
2025-03-14 23:14:44 +08:00 |
|
kuaifan
|
e1203f0c8d
|
no message
|
2025-03-13 17:12:11 +08:00 |
|
kuaifan
|
25298ac69e
|
build
|
2025-03-05 08:33:52 +08:00 |
|
kuaifan
|
c2fd747c45
|
no message
|
2025-03-01 20:39:13 +08:00 |
|
kuaifan
|
769ce1ce7c
|
no message
|
2025-02-28 22:49:45 +08:00 |
|
kuaifan
|
6bd20038f9
|
no message
|
2025-02-22 11:29:46 +08:00 |
|
kuaifan
|
30cfb1200d
|
no message
|
2025-02-22 11:26:16 +08:00 |
|
kuaifan
|
9c1482f9e9
|
feat: 添加 Grok AI、Ollama AI
|
2025-02-21 17:04:59 +08:00 |
|