2085 Commits

Author SHA1 Message Date
kuaifan
9e4d74bbdb fix: 调整任务指派记录加载图标样式 2026-09-10 13:43:02 +00:00
kuaifan
f0b376797c feat: 项目设置改为抽屉展示 2026-09-10 12:05:03 +00:00
kuaifan
ef07f7f8d1 fix: 调整项目菜单归档操作分组 2026-09-10 11:39:53 +00:00
kuaifan
4249584a08 feat(dashboard): 应用新版仪表盘设计并适配深色主题 2026-09-10 08:55:02 +00:00
kuaifan
48f4d009cc style(project): 调整表格分组筛选图标 2026-09-09 02:45:12 +00:00
kuaifan
519e8dbd54 feat(task): 支持任务流转与部门指派 2026-09-09 02:36:52 +00:00
kuaifan
ffbb45708d feat(project): 支持表格分组配置与悬停筛选菜单
新增到期、排期、逾期与未排期分组,按项目缓存显示选择并至少保留一项。

统一分组复选下拉菜单,接入 Cascader 桌面悬停展开,增加勾选后的滚动定位校正。

升级 view-design-hi 至 4.7.0-81,同步多语言、知识库和回归测试。
2026-09-07 12:08:52 +00:00
kuaifan
a3bfc74159 feat(task): 支持创建任务时右键取消已选人员 2026-09-07 00:45:16 +00:00
kuaifan
10474f481c fix(project): 修复列表新增任务显示空白行 2026-09-04 08:28:09 +00:00
kuaifan
f43977f07e feat(system): 支持自定义登录页品牌 2026-09-04 08:18:03 +00:00
kuaifan
ac43f630d3 fix(task): 支持为未领取任务指定负责人 2026-09-04 06:23:20 +00:00
kuaifan
b05b0874f8 feat(app): support hiding AI interfaces 2026-09-04 06:23:19 +00:00
kuaifan
1806246640 fix(file): refine collaboration table overflow 2026-08-20 13:26:39 +08:00
kuaifan
59aff7a356 feat(file): sync collaboration download status 2026-08-20 13:26:39 +08:00
kuaifan
2a7d635729 feat(messenger): add local file shortcut to chat cards 2026-08-20 04:30:24 +00:00
kuaifan
33a72d9d80 fix: 移除输入框的清除功能 2026-08-19 23:47:15 +00:00
kuaifan
7af3c5a032 fix: 优化注册提示和登录切换动画 2026-08-19 23:41:38 +00:00
kuaifan
cb60728711 fix(auth): hide registration when disabled 2026-08-19 23:18:21 +00:00
kuaifan
f49d6d604f fix: improve system setting editors 2026-08-13 11:08:06 +00:00
kuaifan
139a7a168b feat: reorganize system settings tabs 2026-08-13 09:16:58 +00:00
kuaifan
58f47be68f fix(file): align toolbar action spacing 2026-08-13 03:37:27 +00:00
kuaifan
8133eca488 feat(file): manage inactive WebDAV credentials 2026-08-13 03:36:40 +00:00
kuaifan
9028061638 feat(file): add WebDAV support 2026-08-13 02:38:01 +00:00
kuaifan
5c0ba6fbc0 fix(file): prevent collaboration filters from overflowing 2026-08-10 21:57:45 +00:00
kuaifan
dc1f1d318e perf(file): cache collaboration file view 2026-08-10 21:51:25 +00:00
kuaifan
fd37fcf6f6 feat(file): switch collaboration files to attachment index 2026-08-09 15:08:24 +00:00
kuaifan
6deec313f7 feat(file): add collaboration file browser 2026-08-04 21:27:43 +00:00
kuaifan
5e87eb459e feat(ai-assistant): 支持设置悬浮按钮显示 2026-07-31 03:33:04 +00:00
kuaifan
b914a99b62 fix(dashboard): 更新仪表盘警告信息样式,使用粘性定位 2026-07-21 19:38:40 +08:00
kuaifan
e4e1cd9b82 fix(dashboard): 优化移动端个人视角布局 2026-07-20 14:08:12 +00:00
kuaifan
44bd541d00 fix: 仪表盘待完成默认展开 2026-07-20 09:13:32 +00:00
kuaifan
df4658cddf feat(i18n): support contextual translation keys 2026-07-20 07:25:10 +00:00
kuaifan
df6c1fc04d refactor(i18n): 完成前端国际化改造 2026-07-20 02:35:07 +00:00
kuaifan
71ca6ba249 feat(dashboard): 完善负责人视角界面与范围切换 2026-07-18 23:43:10 +00:00
kuaifan
4b92ecb422 feat(dashboard): 完善个人视角空状态 2026-07-18 04:47:12 +00:00
kuaifan
6666605f7d feat: 完善管理后台团队仪表盘 2026-07-18 01:13:43 +00:00
kuaifan
844db09c12 fix(dialog): 撤回占位预存防闪动,重新编辑后占位保留至过期
- 确认撤回时先预存占位记录(原消息在列表时被去重压制不显示),消息移除的同一次重算中占位原地顶上,消除 WS 推送与接口响应竞争导致的先删后加闪动
- 撤回失败且消息仍在列表时才清除预存记录,兼容"接口报错但服务端实际已撤回"的情况
- 点"重新编辑"不再删除占位,保留至 5 分钟过期,期间可反复回填(对齐微信行为),同步更新 ai-kb 文档
2026-07-16 22:11:04 +00:00
kuaifan
f7bc724e13 feat(dialog): 撤回文本消息后本地显示"重新编辑"占位
- 撤回自己的文本/MD 消息后,原位置显示仅本人可见的"你撤回了一条消息 重新编辑"占位(仿微信)
- 占位纯本地存储(IndexedDB 持久化,Electron 多窗口 syncDispatch 同步),5 分钟过期自动清除
- 点"重新编辑"回填原内容到输入框(富文本还原 @提及/表情,先退出引用/编辑模式),占位随即移除
- 占位沿用原消息 id 排序定位,仅在已加载消息范围内合并显示,不干扰翻页与已读上报
- 同步更新 ai-kb recall 文档与前端语言文件
2026-07-16 11:20:37 +00:00
kuaifan
13ba1d3bd7 feat(file): 我的文件纳入已共享文件,修复板块切换缓存丢失
- 「我的文件」改为展示我拥有的全部(含已共享出去的),与「共享文件」在“我共享的”上刻意重叠
- 缓存改为 stale-while-revalidate:按板块懒加载,切回该板块/目录先读缓存再拉接口静态刷新
- getFiles 清理过期行按 scope 限定范围,避免刷新一个板块误删另一板块(同为 pid=0)的缓存
- 微调 file-tabs 来源筛选字号与面包屑上边距
- 同步 ai-kb 文件入口说明(last_verified v1.8.69)
2026-07-14 12:16:22 +00:00
kuaifan
7b25f243ab feat(file): 文件页拆分「我的/共享」两个板块并合并工具栏为单行
- 顶部 Tab 切换:我的文件(私有 share=0)/ 共享文件(双向,含我共享出去的 + 别人共享给我的),共享板块支持「全部/我共享的/共享给我的」二次筛选
- 后端 File::getFileList 增加 scope 参数,按板块拆分根目录查询;FileController::lists 透传并校验
- 前端用 board/sharedSrc 取代原「仅显示我的」复选框,board 持久化到 IDB
- Tab、子筛选、视图切换合并到同一行(flex 自动换行,视图切换靠最右)
- 根目录不再重复显示板块标题,仅进入子文件夹时显示面包屑(板块名为可点击回根入口)
- 同步更新 ai-kb 文件入口说明
2026-07-14 03:49:59 +00:00
kuaifan
9b14120055 fix(application): 自定义应用可见范围统一 app 顶层,修复全员可见失效与编辑回填重置
前后端对 visible_to 存放层级约定不一致导致两个 bug:
- 新增应用设为全员可见,普通成员仍看不到(前端存在 menu 级,后端只认 app 级,落库恒回落为 admin)
- 再次编辑时可见范围被重置为"仅管理员"(响应无条件剥离 visible_to,回填丢失)

统一以 app 顶层为唯一权威来源:
- 前端保存时提到 app 顶层,回填时从 app 顶层读回(数组转下拉框字符串)
- 后端响应新增 keepVisible,管理员保存/读取场景保留 visible_to,普通成员仍剥离

同步 ai-kb application/menu-admin last_verified。
2026-07-13 23:54:23 +00:00
kuaifan
e72758f313 fix(task): 已删除/已归档项目不再生成周期任务,残留任务详情可打开可删除
- LoopTask 周期生成仅处理未删除、未归档项目的任务,从源头杜绝残留繁殖
- userTask 兜底改用 withTrashed,任务相关成员可打开已删项目下的任务详情
- task/one 返回 project_deleted/project_archived 标记,详情顶部横幅提示并提供删除按钮
- task/remove 对已删除/已归档项目放行删除(限项目负责人、任务负责人/协助人/创建人)
- 顺手修复 addTask 优先级匹配 reset() 传临时值的 notice 隐患,改用 collect()->first()
- 同步 ai-kb(recurring/delete-restore)与国际化文案
2026-07-13 23:04:36 +00:00
kuaifan
9a3d9d3b9c feat(license): 多授权选择登录 + 离线 license SN/MAC 绑定校验加固
- 在线授权登录时账号名下有多条可用授权则弹窗选择,选定后复用验证码确认签发(login/confirm)
- 新增 Doo::licenseDecode / licenseBindingError;保存离线 license 与创建用户前校验付费档 SN/MAC 与本机匹配
- 诊断展示与校验门槛纳入不限人数(people==0)档
2026-07-02 13:29:51 +00:00
kuaifan
c9f5296b73 feat(license): 在线异常浮告警卡+离线SN/MAC标签化,统一两Tab排版
- 在线:正常态只显示核心信息,提醒/过期/设备不匹配时浮出告警卡,SN/MAC 收进折叠诊断;frozen 状态文案统一为「已过期」
- 离线:SN/MAC 改行尾标签+失配整行标红,IP/域名/创建时间折叠进「更多」
- 统一在线/离线信息行的字号/行高/间距/label
- 清理死样式 .information 与死变量 onlineIng
- 同步 ai-kb online.md 状态措辞并登记新增文案
2026-07-02 07:45:16 +00:00
kuaifan
184fb27680 feat(upload): 分片上传统一链路,5 场景突破单文件 1G 限制
- 新增 api/upload/{init,chunk,merge} 入口与 ChunkUpload 模块(5MB 分片、3 并发、Redis 状态机)
- 5 场景接入:文件柜 / 聊天 / 任务附件 / 头像&系统图片 / 编辑器粘贴
- 秒传:同用户同 hash 复用 FileContent 物理文件,零传输
- 续传:Redis + localStorage 双索引,24h TTL
- 与老接口对齐:pid 锁、≤300 上限、webkit_relative_path 目录递归、overwrite 替换语义
- init 阶段读 file_upload_limit 拦截超限,避免传完分片才报错
- DeleteTmpTask 加 tmp_chunks case 兜底清理 24h 未合并目录
- files 表新增 hash 列(migration)
- 前端 chunkedUpload wrapper:主线程 spark-md5 流式 + 指数退避重试
- ai-kb 同步:upload / file-upload-limit / upload-size-limit 三个 chunk
2026-06-30 04:30:09 +00:00
kuaifan
420d46d5cc feat(apps): 新增应用菜单角标(数字/红点,per-user 实时推送)
插件/微应用可在自己的菜单入口显示数字或红点角标,插件未打开也生效。

- 后端:新增 app_badges 表 + AppBadge 模型 + Module/Badge 业务编排 +
  AppsController(badge__set 应用密钥鉴权 / badge__clear 用户鉴权)
- 每应用独立密钥 APP_SECRET:按 appid 持久化于 appstore config.yml,鉴权校验
- 推送:复用 PushTask 下发 appBadge WS 消息;microapp_menu 附带初始角标
- 前端:appBadges Vuex module + WS 处理 + 三处菜单渲染(应用卡片/主菜单入口/
  父『应用』入口聚合)+ 移动端 Tabbar + 打开即清(badge_clear_on_open)
- 用户离职级联清理;同步 ai-kb 角标知识
2026-06-29 02:32:19 +00:00
kuaifan
eb672eaef1 fix(file): 文件管理删除入口收敛为所有者/创建者,拦截只读用户
- file.vue:右键「删除」项及工具栏批量「删除」按钮对非所有者/创建者禁用,
  与后端 file/remove 的 permissionFind(...,1000) 规则对齐(修复只读用户可见可点删除入口)
- 同步 ai-kb:delete-restore chunk 更正前置权限为「所有者或创建者」并补只读无权限说明
2026-06-27 03:11:01 +00:00
kuaifan
bc8a2c9ded refactor(license): 统一离线授权判断并优化在线绑定交互
- 在线/离线 Tab 套用 setting-component-item,提交按钮固定到底部,与其它设置子页一致
- 抽出 offlineValid 统一「有效离线授权」口径(非试用、sn/mac 匹配本机),用于默认 Tab 切换与替换确认,替代原先仅判断 license 非空的宽松逻辑
- 将替换有效离线授权的二次确认前置到发送验证码(流程起点),登录/试用不再重复确认
- 邮箱输入沿用 setting/email 的内联发送按钮样式

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 11:20:37 +00:00
kuaifan
889aca311a feat(license): 在线授权数据缓存秒开 + 请求 loading
- 进页面读 localStorage 缓存即时渲染在线授权数据(key 按站点 host 隔离),
  后台并发 license/refresh + system/license 刷新,右上角显示「刷新中」转圈,
  数据回来静默替换并更新缓存;非在线状态自动清除缓存
- 首次无缓存显示骨架占位 + 加载中
- 发送验证码改回 setting/email 内联样式(iView search + enter-button +
  spinner 全局 loading),去除独立按钮
2026-06-23 07:10:25 +00:00
kuaifan
fa9e56944a feat(license): 在线授权 UI 优化 + 邮件语言透传
- license.vue:在线授权 Tab 移到离线前,默认 Tab 智能选择(未绑在线但已设
  离线→离线,其余在线优先);按钮级 loading 互斥(onlineAction:发码/登录/
  试用/退出各自 loading、其余禁用);登录/试用失败清空验证码并解除重发倒计时;
  邮箱行改「Input + 独立发送按钮」承载 loading
- OnlineLicense.php:新增 lang() 透传请求语言到 appstore,邮件按语言渲染
2026-06-23 06:15:47 +00:00