Commit Graph
33 Commits
Author SHA1 Message Date
TermiNexus 0fdaf4afba fix(gerp): 日期字段统一回传纯日期串,修正 DateField 提交报错
date 类型(后端 DateField)此前按 Date 对象绑定,提交时被序列化成带时区的 ISO 时刻(2019-08-31T16:00:00.000Z),后端只接受 YYYY-MM-DD 而 500;改为 el-date-picker 显式 value-format=YYYY-MM-DD,跨时区也不会算偏一天。datetime 保持原样。列表与档案只读展示对 date 类型原样输出,不再走 UTC→本地时区转换。
2026-10-01 19:57:46 +08:00
TermiNexus a25cae3089 feat(gerp): 支持条件显示字段 visibleWhen
新增 utils/column.ts isColumnVisible(按另一字段值判定),CrudFormPanel 模板与校验规则只渲染可见列,UserDetail 档案只读展示同口径;types 增加 ColumnSchema.visibleWhen。
2026-10-01 19:51:27 +08:00
TermiNexus 6bb1edba88 feat(gerp): 新增子表单控件,员工档案展示新字段
CrudFormPanel 支持 type=subform(明细子表可增删行,明细数组随主表提交);新增 SubFormTable 组件;types 增加 SubFormConfig;UserDetail 档案面板按后端下发选项展示(布尔显示是/否、多选顿号分隔、部门名走关联标签、联系方式明细单独成块,类型名取后端选项)。
2026-10-01 19:36:51 +08:00
TermiNexus f806106c88 feat(gerp): 部门详情不提供新增入口,新增 creatable 属性
CrudTable 新增 creatable 属性(默认 true)只隐藏「新增」按钮,保留编辑/删除/批量删除;部门详情页部门员工子表传 creatable=false —— 部门成员须走入职流程(EmployeeProfile → UserRole/UserRoleDepartment),本页只保留编辑职务与批量调整职务。
2026-10-01 16:56:44 +08:00
TermiNexus 78866514e8 fix(gerp): 修复"空草稿"误判,只看用户可填列
草稿判定原来比对整个表单对象,隐藏列/父级注入列/自动时间戳(CreateTime 每次打开都不同)与多选列空数组规范化都会产生差异,导致明明是空草稿仍弹恢复提示。改为写入与恢复共用 hasUserInput:仅比对表单可填列(editableFields)且值非空、与基线不同;内容清空时同步清掉旧草稿。
2026-10-01 16:16:36 +08:00
TermiNexus 0e45175bc8 feat(gerp): 空草稿自动丢弃并新增"删除草稿"操作
useDraftAutosave:打开新增表单时,草稿无有效内容(全空值或与表单基线一致)直接丢弃不弹窗;恢复提示按钮改为「恢复草稿/删除草稿」,右上角关闭视为稍后再看(保留草稿)。
2026-10-01 16:13:18 +08:00
TermiNexus 85fba0ef9f fix(gerp): 实体选择器浏览面板标题去重并加宽加高
EntityPicker/MultiEntityPicker 浏览面板标题改用 browseTitle,占位文案已以「选择」开头时不再重复前缀;面板宽度 560->680px,列表高度 220-320 -> 420-560px。
2026-10-01 14:10:07 +08:00
TermiNexus 263375d11f refactor(batch-position): 批量职务弹窗的部门员工树改用统一数据源
新增 composables/useDeptEmployeeTree.ts(部门树 → 成员的单一实现,数据源 /API/FormAPI/DeptEmployeeSearch,与 EntityPicker(treeGroup) 同源):分页拉全 + 服务端部门树组装 + 统一成员标签,单部门模式返回单个分组节点。BatchPositionDialog 的公司页 / 部门列表页 / 部门详情页三个分支改为调用它,删除各自分页拉 UserRoleSearch 再前端拼树、以及 Get/UserRoleDepartment 的重复实现;工作组相关分支(非部门树)保持不动。顺带修正未分组节点 id 未计入 groupIds 导致勾选它会被当作成员 PK 提交的问题。
2026-10-01 00:35:20 +08:00
TermiNexus 0df186b5c8 fix(CrudTable): 补回 formMode 向 CrudFormPanel 的透传
上一轮给 CrudTable 增加 formMode(默认 drawer)时,CrudFormPanel 上的 :mode 绑定被 IDE 静默回滚,导致 mode 恒为 undefined、isDrawer 判定失败 —— 详情页子表(如部门详情页的部门员工)的新增/编辑仍以居中弹窗出现。

本次补回绑定。产物核验:CrudTable 产物中已出现 mode:e.formMode 绑定,容器分支为 isDrawer ? {direction: rtl, size: 600} : {width: 600px};入口 /assets/index-r5V6B5Zk.js。
2026-09-30 00:29:40 +08:00
TermiNexus 524d2ad630 refactor(ui): 剩余编辑/新增类表单弹窗统一改为右侧抽屉
承接 CrudTable formMode 默认 drawer,把页面自带的表单弹窗也统一成抽屉(direction=rtl,尺寸沿用原宽度):批量调整职务 780、编辑角色/编辑用户/支付网关配置 600、编辑工单 720、凭证详情分录编辑 900、申请企业邮箱 420、修改邮箱密码 400、编辑/新增联系人 420、申请 Gitea 账号 420、修改 Gitea 密码/一键迁移头像 400/420、修改名字/修改密码 420、邀请成员 460、修改群名 420、创建群聊 520。

保留居中弹窗(非编辑表单):EntityPicker/MultiEntityPicker 选择面板、应用市场安装与应用-职务绑定(内嵌 CrudTable)、AppConfigPage 的同步/复制/移除确认、拒绝入驻申请、审计日志与站内信详情、资产预览、写信与发送消息。

已部署:102 assets 校验一致,入口 /assets/index-xaOjq6Ha.js。
2026-09-30 00:26:28 +08:00
TermiNexus ce3a565006 feat(components): CrudTable 新增/编辑默认改为右侧抽屉
formMode 默认值由 dialog 改为 drawer:全站列表页与详情页子表的新增/编辑统一走右侧抽屉(含部门/角色/租户/工作组/员工/用户/订单/产品及各业务页)。

表格本身嵌在弹窗里的场景显式传 form-mode=dialog 保持居中弹窗:应用市场「应用-职务绑定」弹窗内的 AppPosition / AppVirtualPosition / AppVirtualBinding(弹窗内再叠抽屉会错位)。

已部署:102 assets 校验一致,入口 /assets/index-COtyrWR-.js。
2026-09-29 19:13:45 +08:00
TermiNexus bb25b6f4d6 feat(company): 公司列表编辑改抽屉 + 公司详情展示已启用应用
CrudFormPanel 支持 mode=drawer(CrudTable 新增 formMode prop 透传,默认仍是居中弹窗,避免表格嵌在弹窗里的场景叠抽屉);Company 列表页启用 form-mode=drawer。

公司详情页新增「已启用应用」卡片(仅管理员可见):列出该公司 InstallStatus=1 的应用,支持卸载(停用本公司安装,不动租户级/其它公司)与配置(跳 /app/config 并带 CompanyUUID 定位本公司范围)。新增 appApi.companyApps;AppConfigPage 支持 CompanyUUID 查询参数预选范围。
2026-09-29 18:50:16 +08:00
TermiNexus 2d989d5af1 fix(components): 修正 Boolean prop 缺默认值导致表格退化为只读
Vue 会把未传的 Boolean prop 强制转成 false,而代码按未传=undefined 判定:CrudTable 的 editable 未声明默认值,使 canEdit 恒为 false,所有未传 :editable 的表格操作栏只剩查看,新增/批量删除/行内编辑/删除全部消失(部门详情页部门员工子表即此现象);AdminBadge 的 visible 同样缺默认值,导致特权模式横幅从未显示。

两处均改用 withDefaults 显式声明默认 true,并同步部署产物(entry assets/index-Chv4xcO_.js)。
2026-09-29 13:20:53 +08:00
TermiNexus 9d1d6dca93 feat(role-scope): 接入 checkAdmin 细粒度作用域,CrudTable 支持只读模式
- stores/user: 新增 roleScopeType/Label 与 isScopeAdmin/isDeptManager/isWorkgroupLead/isScopeMember;AdminCheckResult.role_scope 补 DeptUUID/WorkgroupUUID

- CrudTable: 新增 editable prop,false 时隐藏新增/批量删除/编辑/删除(操作列全空则整列隐藏)

- Users: 四态标题/图标/横幅色/文案,仅 member 关闭行选择与编辑

- Products/Orders: 四态标题与文案、两态横幅;editable 取特权模式

- 清理 company 域 5 页与 system 三页的过期 role_scope TODO 注释
2026-09-15 14:24:40 +08:00
TermiNexus 3d4c46b7ee feat(gerp-ui): 批量职务调整树形选择 + OA 审批页 + 虚拟职务一键绑定
- BatchPositionDialog:部门列表页以部门树组织员工、工作组列表页以工作组树组织成员,
  均可勾选具体的人;选中行成员自动预勾选,可追加/取消;提交映射 UserRole/UserRoleWorkgroup
- Department/Workgroup 列表页 toolbar 新增"批量调整职务"入口(CompanyUUID 兜底当前用户公司)
- CrudTable 新增 #toolbar 插槽(暴露 selectedRows/refresh)
- OA 审批页 Approval.vue(请假/出差待审批,30s 轮询,通过/驳回)+ api/oa.ts
- AppConfigPage 虚拟职务"一键绑定"按钮 + api/app.ts autoBindVirtualPositions
- 附带:OA/财务/eHRM 应用页、MultiEntityPicker、菜单/布局优化等系列改动
2026-08-30 13:23:49 +08:00
TermiNexus 3aebb7a035 feat(ui): 切换角色对话框加 loading 遮罩
- 设置默认登录角色 / 确认切换时,对话框内容区显示 element-plus v-loading 遮罩(文字区分两种操作)
2026-08-22 01:45:40 +08:00
TermiNexus f61716f215 feat(auth): 默认登录角色设置(切换角色对话框星标)
- 切换角色对话框每张角色卡片加星标按钮:设为/取消默认登录角色(金色高亮)
- user store 新增 defaultRoleUuid 状态与 setDefaultRole 动作,fetchRoles 同步 IsDefault
- auth.ts 新增 SetDefaultRole 接口(POST /Auth/SetDefaultRole)
2026-08-22 01:23:28 +08:00
TermiNexus 36afde19da refactor(frontend): CrudTable 拆分——抽取 CrudFormPanel 动态表单与 useDraftAutosave 草稿 composable 2026-08-13 18:26:18 +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 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 47506bd0b9 feat(company): 新增权限管理页面并重构菜单编辑器公司选择
- 新增 company/permission 权限管理页

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

- CrudTable 卡片查看按钮图标化,公司卡片补充父级/租户字段
2026-08-08 13:00:11 +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 917d4d1d28 修正了公司定制内容隔离 2026-08-02 22:18:28 +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 9ea096538b 初次初始化了脚手架,尝试进行部分迁移 2026-08-01 02:22:58 +08:00