Commit Graph
20 Commits
Author SHA1 Message Date
TermiNexus 28b8bc71ed perf(layout): 分包预热改为菜单悬停懒预取
- prefetchRoutes 由「登录后全量预热」改为 WarmRouteByPath 按需预热(幂等、弱网跳过)

- 侧边栏菜单项 mouseenter/focusin 触发预热;分组菜单预热其全部子页面

- 首屏零额外请求,仅预热用户已表达意图的页面
2026-09-29 12:01:01 +08:00
TermiNexus 0ff546e522 perf(layout): 登录后预热用户可访问页面的分包,配合 72h 强缓存
- 新增 utils/prefetchRoutes:遍历静态路由表收集懒加载 loader

- menuGuarded 路由仅当其路径在用户菜单树中才预热;其余登录即可访问的直接预热

- requestIdleCallback 启动 + 限并发 3 + 间隔 150ms,弱网/省流量模式跳过

- 按可见路径集合签名去重,菜单变化(切换角色)后重新预热一次
2026-09-29 11:32:43 +08:00
TermiNexus 8f36914c03 fix(talk): 实时通道连接失败时透出错误原因
- 新增 connect_error 监听,dispatch talk:error 携带原因

- 避免握手被拒时前端无任何提示
2026-09-28 17:42:59 +08:00
TermiNexus 4deeae48a5 feat(talk): 新增 Talk 企业聊天页面(仿微信三栏)
- 新增 src/views/talk/{Talk.vue,GroupCreateDialog.vue}、src/api/talk.ts、src/utils/talkSocket.ts
- 引入 socket.io-client:/talk 命名空间连接、断线重连、401 自动换令牌、心跳与 typing 节流
- 会话列表 / 消息气泡区(图片预览、文件卡片、时间分组、未读红点、上滑加载更早消息)/ 群成员面板
- 建群对话框:选本公司成员 + 配额实时提示(公司群/个人群/单群人数/公司参与人数)
- 路由 /talk(menuGuarded)+ apps/index.ts 注册 + vite.config.ts 增加 /socket.io 代理(ws)
2026-09-26 23:46:41 +08:00
TermiNexus 0897f0cd6e fix(mail): 原文获取增加 blobId→Blob/get 回退,兼容 Stalwart 不支持 raw 属性 2026-08-13 01:24:41 +08:00
TermiNexus cef2388877 feat(mail): HTML 邮件 iframe 安全预览(默认禁脚本+JS 提示启用),支持查看源代码与原文 2026-08-13 01:16:52 +08:00
TermiNexus 517d9f1fdf fix(mail): Blob/get 兼容 Stalwart 的 data:asText 纯文本字段
Stalwart v0.11 对 text/* 直接返回 data:asText(非标准 base64 的 data),fetchEmailBody 优先读 data:asText,缺失时回退 atob(data)
2026-08-11 01:26:21 +08:00
TermiNexus 689e3865e0 fix(mail): 邮件正文经 Blob/get 异步拉取(Stalwart v0.11 不返回 bodyValues)
jmap.ts: 新增 fetchEmailBody(Blob/get + atob,HTML 转纯文本),request/call 支持 using 参数(需 urn:ietf:params:jmap:blob capability)

mail.ts: jmap 代理数据类型增加 Using;Mailbox.vue: selectEmail 先显示 bodyValues 否则异步拉取正文,emailBodyText 由 computed 改 ref,switchMailbox 清空正文
2026-08-11 01:22:25 +08:00
TermiNexus 5c320e0e4a fix(mail): 修复邮件正文为空并新增联系人管理视图
- Email/get 补 bodyValues,正文按 partId 取值,HTML 去标签 - 左栏联系人入口 + 中栏 CRUD 管理(新增/编辑/删除) - 文件夹项选中态绑定当前视图,切换联系人时取消高亮
2026-08-08 20:49:51 +08:00
TermiNexus 864a9fae3b feat(mail): 云端联系人匹配与收件人标签输入 + 邮件列表多项修复
- 写信收件人改标签输入(回车生成 label),输入匹配云端联系人下拉 - 邮件列表前端显式按接收时间降序(最新在顶部) - 快速切换文件夹竞态守卫,仅采纳最后请求结果 - 操作栏移至列表底部、删除/标记 loading 遮罩、长标题截断
2026-08-08 19:53:34 +08:00
TermiNexus 0900bfb7b5 fix(mail): 全部邮件排除垃圾箱、Email/set 结果校验与已读本地持久化
- 全部邮件查询用 inMailboxOtherThan 排除垃圾箱/垃圾邮件,删除后不再出现 - Email/set 校验 notUpdated/notDestroyed,已读/删除失败不再静默 - 已读本地覆盖表过渡 Stalwart v0.11 keywords 写入 bug,刷新保持已读
2026-08-08 16:52:38 +08:00
TermiNexus ebb77fa632 feat(mail): 邮箱登录持久化、企业化登录页与会话失效回退
- 登录 token 存 localStorage,刷新自动恢复会话,失效自动清除回退登录页 - 登录从弹窗改为企业邮箱登录页(品牌区/邮箱徽标/密码输入/修改密码) - Mail/Login 与 Mail/Jmap 接口 silent 化,401 不再误触发系统登出 - 全部邮箱视图不再上传空 filter(修复 502) - JmapClient 新增 onAuthExpired 回调与 JmapAuthError,401 统一清理回退
2026-08-08 16:07:44 +08:00
TermiNexus b2263a779c feat(mail): 邮箱界面重构为企业邮箱三栏风格并适配深色主题
- 三栏布局:左侧文件夹树(未读徽标)+ 邮件列表(多选/批量已读/删除)+ 阅读窗格(回复/转发/删除) - 新增全部邮件视图、删除移入垃圾箱、批量已读、回复/转发引用头(inReplyTo/references) - 退出邮箱吊销后端会话 token - 硬编码颜色替换为 Element Plus CSS 变量,深色下选中态改用半透明主色
2026-08-08 15:59:21 +08:00
TermiNexus 82d4b03e2a fix(mail): 修复邮件列表为空(Email/get 移除 Stalwart 不支持的 date 属性)
properties 含 'date' 触发 invalidArguments 导致整批邮件加载失败,改用 receivedAt
2026-08-08 15:17:10 +08:00
TermiNexus 86cd82024f feat(mail): 邮箱登录换取会话 token,JMAP 调用不再传输明文密码
- 登录调 /API/Mail/Login 换取 token(密码仅一次传输)

- JmapClient 改持 token;登出吊销 token
2026-08-08 15:12:17 +08:00
TermiNexus 600ca27cbb feat(mail): 发信成功后归档到已发送(Sent)文件夹
Stalwart 不会自动把草稿移到 Sent,EmailSubmission 成功后显式 Email/set update mailboxIds 移至 Sent
2026-08-08 15:00:34 +08:00
TermiNexus 03fd87df13 fix(mail): 发信改用 JMAP bodyValues 标准格式并检查投递结果
Stalwart v0.11 不允许 textBody/htmlBody 内联 value(invalidProperties Cannot set property),改用 partId+bodyValues;补 EmailSubmission 响应检查避免误报成功
2026-08-08 13:43:35 +08:00
TermiNexus fb03d60d80 feat(mail): 新增我的邮箱与邮箱管理页面(后端统一代理收发)
- 我的邮箱页:申请/密码登录/收件箱/详情/删除/写信发信/改密

- 管理员邮箱管理页:列表与禁用

- JMAP 客户端(RFC 8620)经 /API/Mail/Jmap 后端代理,密码仅存内存

- 注册 mail/mailbox 与 mail/admin 路由(含 company/permission 权限页路由)
2026-08-08 12:59:59 +08:00
TermiNexus 611aef54bd 基本已能进入生产环境 2026-08-05 23:33:06 +08:00
TermiNexus dbf30a9bc0 基本上完成了 GERP 的迁移,目前正在解决 table 虚拟滚动故障问题,以及其它琐碎修改 2026-08-01 18:42:17 +08:00