Commit Graph
66 Commits
Author SHA1 Message Date
TermiNexus 36afde19da refactor(frontend): CrudTable 拆分——抽取 CrudFormPanel 动态表单与 useDraftAutosave 草稿 composable 2026-08-13 18:26:18 +08:00
TermiNexus ce7a17d170 refactor(frontend): Phase 3 质量整改——死状态清理、类型收口、路由收敛、上传统一
- stores: 移除未使用的 token/loading/locale 死状态;AdminCheckResult 统一收口 types/api.ts
- router: 移除全 Mock 的 SKU 页生产路由(源码保留待独立工程决策)
- api/request: 新增 requestRaw() 显式原始响应封装(替代 responseType hack)
- Manager.vue: SimpleUpload 弃用 XMLHttpRequest,改统一 axios upload + onUploadProgress(拦截器收益全覆盖)
2026-08-13 18:14:25 +08:00
TermiNexus 4d49e549b5 build(assets): 裁剪 tinymce 部署产物(40MB 整包 → 14 文件 1.19MB)
- copyTinymceAssets 只拷运行时必需文件(核心 js/主题/模型/图标/oxide 皮肤 + 8 个在用插件)
- closeBundle 先 rmSync 清空目标目录,防陈旧完整包残留混入 dist
- deploy.ps1 清理阶段同步删除生产 tinymce 残留,保证部署一致性
2026-08-13 18:14:24 +08:00
TermiNexus b80009c423 chore(gerp): 移除死依赖(FormKit/tinymce-i18n/@vxe-ui/plugin-render-element/vite-plugin-static-copy)并修正误导注释
- package.json: 移除 4 个未使用依赖,lock 同步(-27 包)
- main.ts: 去掉 FormKit 全局注册与对应 chunk
- vite.config.ts: 去掉 formkit manualChunk
- RichTextEditor.vue: 修正加载方式注释(自写 copyTinymceAssets 而非 vite-plugin-static-copy)
2026-08-13 17:36:13 +08:00
TermiNexus 08fa5d5139 style(ui): 导航/侧边栏/交互控件禁止文本选中(user-select:none),正文内容保持可选中 2026-08-13 09:44:19 +08:00
TermiNexus 7177f99cb8 feat(app): 应用配置公司化——配置页支持范围选择(租户默认/各公司)+ 批量复制到公司,权限随安装范围 2026-08-13 08:48:05 +08:00
TermiNexus e1f43efc74 fix(app): 恢复配置按钮——管理范围内已装(含非本公司)也显示配置入口,不再依赖 isAppUsable 2026-08-13 08:36:52 +08:00
TermiNexus eb0df83267 feat(app): 管理员视角安装分布——市场卡片标记可管理范围内已装该应用的公司名,管理范围内任意公司已装即显示管理 2026-08-13 08:34:58 +08:00
TermiNexus 2746fe4ce9 feat(app): 侧边栏刷新按钮升级为清缓存+全量重拉(用户信息/菜单/管理员状态),避免旧缓存导致安装状态显示错乱 2026-08-13 08:22:16 +08:00
TermiNexus e654d147db fix(app): 修复管理弹窗公司全未选中——manageCompanies 参数不再二次包裹 params,后端可正确收到 AppUUID 并返回各公司 Installed 状态 2026-08-13 08:22:16 +08:00
TermiNexus 5b221c07b7 feat(app): 应用中心公司级管理+配置页+身份徽标
- AppMarket 已安装应用改'管理':公司级安装/停用弹窗(diff 批量增删公司)
- 新增 AppConfigPage 独立配置页(AppConfig 键值表,/API/App/Config)
- 修复 Config 接口参数嵌套(params[AppUUID]→AppUUID)
- 侧边栏新增'强制刷新菜单'按钮
- 顶部导航新增当前身份徽标(角色+公司,管理员高亮,点击切换)
- 新增前端应用注册表 src/apps/index.ts(AppCode→路由/类型/旧页面映射,预留 MSYNC)
2026-08-13 07:46:59 +08:00
TermiNexus 91e2c186c7 feat(app): 应用中心支持公司维度安装——安装弹窗可选全租户/指定公司,停用双停(租户+当前公司) 2026-08-13 06:28:27 +08:00
TermiNexus 1894786327 chore(app): 删除已拆分的单页应用中心/单页GERP系统(由子页面取代) 2026-08-13 04:33:12 +08:00
TermiNexus b15d3fe89d refactor(app): 应用中心改父级菜单——拆分 应用市场/我的应用/授权审批 三个子页面 2026-08-13 04:33:02 +08:00
TermiNexus ca618aa512 refactor(system): GERP系统改父级菜单——拆分 系统状态/系统时序/配置文件/运行时调整 四个子页面 2026-08-13 04:23:46 +08:00
TermiNexus 797bada4e7 feat(system): GERP系统运维控制台(状态/时序/secrets.ini/运行时调整)+ 路由 2026-08-13 04:20:29 +08:00
TermiNexus f4aeaf94c4 feat(app): 应用中心页(应用市场/我的应用/授权审批)+ 路由与菜单入口 2026-08-13 04:06:16 +08:00
TermiNexus 6e9de08abc feat(company): 企业创建成功页新增"返回租户详情",形成填写→详情闭环 2026-08-13 03:06:10 +08:00
TermiNexus 54e0d5fd52 feat(company): 租户详情支持菜单直达(无参数时回退当前角色租户),AdminCheck 类型补充租户字段 2026-08-13 02:57:00 +08:00
TermiNexus b9e72ccf0e feat(company): 租户详情展示企业信息(CompanyInfo),未填写引导 epcreate 向导,支持编辑 2026-08-13 02:39:41 +08:00
TermiNexus e04e1bc91f feat(router): 新增 debug/epcreate 路由,支持调试路径访问企业创建向导 2026-08-13 02:34:02 +08:00
TermiNexus f894d81be8 fix(mail): 原文获取增加 blobId→Blob/get 回退,兼容 Stalwart 不支持 raw 属性 2026-08-13 01:24:41 +08:00
TermiNexus be64c62a12 fix(mail): 原文获取改 blobId 回退方案(兼容 Stalwart 不支持 raw 属性),安全浏览文案改企业级 2026-08-13 01:22:02 +08:00
TermiNexus ee6cd18c50 feat(mail): HTML 邮件 iframe 安全预览(默认禁脚本+JS 提示启用),支持查看源代码与原文 2026-08-13 01:16:52 +08:00
TermiNexus 670bb7bc76 feat(mail): 申请邮箱统一转为小写 2026-08-13 01:06:37 +08:00
TermiNexus 6454ab0bf5 fix(mail): 邮箱选择改字符串绑定,修复切换后输入框显示未更新 2026-08-13 01:02:54 +08:00
TermiNexus 1332f25326 feat(mail): 多邮箱选择登录与申请,展示已申请数量(N/5) 2026-08-13 01:00:43 +08:00
TermiNexus fde710918d fix(gitea): 免密登录改为新开页面跳转,不替换当前页 2026-08-11 16:57:55 +08:00
TermiNexus 40408b39dc feat(gitea): 增加免密登录按钮,跳转 Gitea OIDC 入口
GiteaSessionConfig 增加 SsoUrl;账号卡片显示免密登录按钮,点击跳转 Gitea 的 /user/oauth2/gerp
2026-08-11 16:38:49 +08:00
TermiNexus 4ba18370a4 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 3e0af7596e 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 feb187ba23 chore(gerp): deploy.ps1 转纯 ASCII 消除 BOM 警告
- PS 5.1 无 BOM 时按 ANSI 代码页解析 UTF-8 文件,中文会乱码导致语法错误;
  保留 BOM 又会触发首行 "'#' 不是 cmdlet" 警告
- 脚本注释与输出改为英文(纯 ASCII),无 BOM 下可被 PS 5.1 正确解析
- 头部注释注明须保持 ASCII 以防回归
2026-08-11 01:03:46 +08:00
TermiNexus 716cddb9e8 fix(request): 401 可读 JSON 的 msg 附加到 error.message
- 后端 401 均返回 {code, msg} 可读 JSON(如 Mail/Login 的"邮箱或密码错误"),
  拦截器此前在 silent 场景原样 reject,调用方只看到 HTTP 状态文本
- 现在统一提取响应体 msg 覆盖到 error.message,silent 与普通调用都能拿到后端文案
2026-08-11 01:03:34 +08:00
TermiNexus 4f4508083c style(gerp): 整体企业化改造(阿里云式克制风格、配色可配置、Win11 侧边栏)
- global.scss 重构为设计令牌体系:细边框/克制圆角/浅阴影/紧凑字号
- 统一覆盖 Element Plus 与 vxe-table 企业化样式(表头底色、行间细横线、紧凑行高)
- app store 支持自定义主色:自动派生 light-N/dark-2 色阶,配色与明暗主题解耦
- Settings 新增"主题与配色"区:预设色板 + 自定义取色器
- 布局头部改面包屑式页名;侧边栏改 Win11 胶囊菜单(无指示条,hover/选中整行高亮,折叠图标居中,菜单项补 title 提示)
- TabBar 还原圆角选中卡片式样式
- Dashboard 重做:关键指标 KPI 区 + 快捷入口 + 系统信息(去除装饰性渐变)
- Login 配色改为跟随主题主色(去掉硬编码渐变)
- 内容区内边距收敛到各视图容器,避免双层 padding
2026-08-11 01:03:18 +08:00
TermiNexus a813e34a4f feat(gitea): 新增 Gitea 对接页面(申请/改密/头像迁移/管理)并禁用接口 HTTP 缓存 2026-08-09 18:28:55 +08:00
TermiNexus f428afa495 feat(doc): 编辑器支持富文本/Markdown 双模式、深色主题、TinyMCE 原生托管与系列排序 2026-08-09 01:50:15 +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 162f713b2e fix(mail): 修复邮件列表工具栏标题与选中计数换行错乱
- 标题与「已选 x 封」计数包裹进同一 flex 容器(align-items: baseline) - white-space nowrap 禁止换行、计数 flex-shrink 0、工具栏 overflow hidden
2026-08-08 16:12:22 +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 5da9dd04eb fix(mail): 修复 vue-tsc -b 构建类型错误(表格行类型断言与残留导入)
Mailbox/MailAdmin 模板内 DefaultRow 类型断言为 JmapEmail/MailAdminItem,清理无用 dateNow 与 buildBasicToken 残留引用
2026-08-08 13:21:11 +08:00
TermiNexus 5e8b603e22 fix(user): 刷新页面后异步刷新菜单缓存,后端菜单变更即时生效
restoreSession 缓存命中时不再零请求,异步 fetchMenus 保证新增菜单(如邮箱入口)刷新即可见
2026-08-08 13:10:30 +08:00
TermiNexus 47506bd0b9 feat(company): 新增权限管理页面并重构菜单编辑器公司选择
- 新增 company/permission 权限管理页

- 菜单编辑器公司选择改用 EntityPicker

- CrudTable 卡片查看按钮图标化,公司卡片补充父级/租户字段
2026-08-08 13:00:11 +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 62a96af74b 修复了 ORM 直接编辑区域的表格高度,实现了工单卡片化和 Saga 模式管理页 2026-08-06 17:55:37 +08:00
TermiNexus 611aef54bd 基本已能进入生产环境 2026-08-05 23:33:06 +08:00
TermiNexus bb77b8caf7 修复了后端部门详情页新增成员功能 2026-08-04 20:23:09 +08:00
TermiNexus 50d90e3540 状态字段下拉选择+后端拦截 2026-08-04 17:41:08 +08:00
TermiNexus 703dea2655 实现了实体选择框可以直接选择可见范围内的租户/公司 2026-08-04 17:17:26 +08:00
TermiNexus 6100dc114c 将 CRUD Table 的滚动条取消,使查看更加舒服 2026-08-04 04:02:13 +08:00
TermiNexus 8e7ba71826 修复了滚动栏的深色主题适配 2026-08-04 03:19:10 +08:00
TermiNexus 39debab2b3 解决了深色模式下tab栏和left-nav的选中状态非深色的问题,以及下拉框 padding 为 6px 的问题,以及深色模式头像 hover-card 的 下拉框头部和 下拉框 item hover 效果问题 2026-08-04 02:11:01 +08:00
TermiNexus 41b982c7b5 修复了枢机协律相关页面被误删的问题 2026-08-03 00:41:43 +08:00
TermiNexus 917d4d1d28 修正了公司定制内容隔离 2026-08-02 22:18:28 +08:00
TermiNexus 15bcb072f9 修正了切换角色功能 2026-08-02 19:09:23 +08:00
TermiNexus f062fb1e29 使 menu UI 更加舒适 2026-08-02 15:36:49 +08:00
TermiNexus e8ceb5b46b 修复尝试生产中的大量问题 2026-08-02 03:09:53 +08:00
TermiNexus dbf30a9bc0 基本上完成了 GERP 的迁移,目前正在解决 table 虚拟滚动故障问题,以及其它琐碎修改 2026-08-01 18:42:17 +08:00
TermiNexus 2b7e02108c 修改了 README 2026-08-01 02:23:48 +08:00
TermiNexus 9ea096538b 初次初始化了脚手架,尝试进行部分迁移 2026-08-01 02:22:58 +08:00