22 Commits

Author SHA1 Message Date
liuyun
23da579b26 feat(auth): 注册真实化 + 注册/忘记密码默认隐藏
- register.vue 接入 POST /auth/register
- defaultLoginConfig showRegister/showForgetPassword 默认 false

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 16:29:19 +08:00
liuyun
84edbc67c0 feat(rbac): 路由级权限过滤 + 403 页
- 路由守卫按可访问菜单 path 校验,无权跳转 /403
- 新增 403 页

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 16:22:19 +08:00
liuyun
2f7f83b8b1 feat(rbac): 按钮级权限控制(v-permission + 权限 store + 用户页导出)
- 新增 permission store + v-permission 指令(响应式,异步权限加载后可恢复)
- ty-crud 支持 createPermission 与动作 permission 过滤
- 用户页:分配角色/重置密码按权限码显示,新增导出按钮 + CSV 导出

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 16:19:53 +08:00
liuyun
7ae220581a fix(security): 角色资源树回显防权限放大 + 401 刷新防死循环
- assign-resources-form:只保存叶子键 getCheckedKeys(true),回显 setCheckedKeys(leafOnly)
- http.ts:_retry 标记只重放一次 + 排除 login/refresh

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 16:10:32 +08:00
liuyun
23e228783c feat: dict-driven rendering — useDict + component dictCode
- 新增 dict store 与 useDict Hook(登录后缓存、登出清空)
- ty-form/ty-table 支持 dictCode 自动解析下拉与标签
- 用户/角色/资源/组织/租户/审计/登录日志页去硬编码映射
- 字典管理页内置标记、value 保护、标签色编辑

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 14:29:28 +08:00
liuyun
c96151d2ae refactor: convert raw CSS to Tailwind @apply + search collapseCount=3
- ty-search-form 折叠默认数 2 → 3
- login/register/forgot/home/ty-header/ty-sidebar/ty-mixbar/ty-tabs/ty-footer/ty-setting-panel/icon/default 布局裸 CSS 转 @apply
- 修复背景色工具类误写(bg-base→bg-bg-base、bg-page→bg-bg-page)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 13:18:45 +08:00
liuyun
8742932f21 feat: home welcome page
- 登录后首页改为欢迎页:问候语 + 用户名 + 实时时间 + 菜单驱动的快捷入口卡片

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 13:03:42 +08:00
liuyun
7d0088dd10 feat: tenant management page
- api/tenant.ts + /system/tenant 页面(ty-crud)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 12:49:55 +08:00
liuyun
f1cb5723b2 feat: wire all management pages to backend (config/dict/org/resource/role/audit/login-log)
- 401 自动登出:http 会话过期回调 + main.ts 注册(清 menu/tabs + 跳登录)
- 参数配置/字典/组织/资源/角色/操作日志/登录日志对接真实接口
- 角色管理新增权限分配树(el-tree 勾选资源,/roles/:code/resources)
- 操作日志/登录日志只读页(ty-search-form + ty-table + useRequest)
- listOrgs 迁到 api/org.ts

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 12:45:53 +08:00
liuyun
77917573c1 feat: real menu rendering + axios/useRequest integration
- axios OO 封装(src/api/http.ts):请求拦截鉴权头、拆 {code,message,data}、401 刷新重放
- useRequest composable(manual/refreshDeps/cancel/mutate)
- ty-crud 列表加载改用 useRequest,修复分页切换不重新请求
- 用户管理对接真实接口(列表/增删改/重置密码/组织下拉),ty-table 日期兼容 ISO
- 菜单真实渲染:GET /auth/menus + 菜单 store,布局/页签/面包屑从接口取
- 登录/注册/忘记密码去掉租户编码字段(用配置默认租户),暗黑模式品牌区背景适配
- 退出登录清空菜单 + 页签

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 12:19:24 +08:00
liuyun
c95aa594cb feat: configurable login page + register/forgot-password pages
- 登录页配置化:src/config/login.ts(品牌/布局/字段/开关),split/card 两种布局
- JsonSchemaProperty 新增 prefixIcon
- 注册 /register、忘记密码 /forgot-password 独立页面(blank 布局)
- 登录/注册/忘记密码统一 blank 布局(新增 blank.vue)
- 注册/重置成功后带 username 回填登录页

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 11:34:41 +08:00
liuyun
b9c3a64c34 feat: resource management page + 404 fallback + header fixes
- 资源管理:树形表格 + type 联动表单(menu/button/api 字段显隐)
- ty-form 新增 when 条件字段显隐;ty-crud 表单模型改 reactive
- 抽出 src/utils/tree.ts(buildTree/filterTree/collectDescendants),组织页复用
- 404 兜底:catch-all 路由 [...all].vue
- 顶栏去掉横向菜单底边框;修复切 Tab 顶部一级菜单高亮不跟随

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 11:06:21 +08:00
liuyun
b5d95c95d8 feat: dictionary & organization management pages
- 字典管理:左右分栏主从布局,20 个字典类型,el-scrollbar 滚动
- 组织管理:树形表格 + 上级组织 tree-select,级联删除下级
- ty-table 新增树形支持(row-key/tree-props/default-expand-all)
- ty-form 新增 tree-select 控件(format/treeData/treeProps)
- JsonSchemaProperty 扩展 tree-select 相关字段

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 10:44:06 +08:00
liuyun
35892486e8 feat: unified dialog manager (showDialog service + ty-dialog host)
- 新增 showDialog({component, props, title,...}) 服务,返回 Promise
- 内容组件 defineExpose({submit}) 校验并返回数据,校验失败对话框不关闭
- <ty-dialog /> 宿主挂 App.vue,统一渲染对话框栈(支持嵌套)
- ty-crud 改用 showDialog 打开表单(移除 ty-form-dialog)
- ty-form 增加 submit();用户管理页重置密码抽成独立组件 + showDialog

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 10:17:09 +08:00
liuyun
16b512a3f1 feat: config management page
参数配置页:纯键值 CRUD,复用 ty-crud + JSON Schema 零新组件。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 10:06:47 +08:00
liuyun
d88b807638 chore: import full Element Plus CSS, narrow action column, format
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 09:59:43 +08:00
liuyun
bc26c0aa93 feat: toolbar justify-between, selection, and card-fill list-scroll
- 搜索按钮置于表单最右(el-form--inline 设为 flex 容器)
- ty-crud 工具条 justify-between:左新增/#toolbar、右批量 #toolbar-right(selectedRows)
- ty-table 支持 selection 多选列 + selection-change
- 卡片铺满剩余空间、列表内滚动(shell 固定视口 + el-table height=100%)
- 用户管理页加批量删除示例

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 09:46:39 +08:00
liuyun
1ee3ed28a5 feat: search field width + collapse actions into dropdown
- ty-form 字段支持 width(行内默认 200px、弹窗默认 100%)
- ty-search-form 展开为多行高级搜索
- ty-crud 操作列数据驱动(actions 内置/自定义),超过 collapseCount 折叠为「更多」下拉

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 09:34:39 +08:00
liuyun
45b22acd6c feat: extract JSON Schema-driven CRUD components, rebuild user page on them
- 新增公共组件:ty-schema-form(JSON Schema 表单)、ty-search-form、ty-table、ty-form-dialog、ty-crud(整页组合)
- 类型 src/types/crud.ts
- 用户管理页改用 ty-crud + JSON Schema + 内联数据(setTimeout 模拟异步),删除 src/api/user.ts

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 01:26:11 +08:00
liuyun
5549b2e75c feat: user management page (search/table/pagination/dialog/delete/reset-pwd)
占位数据源 src/api/user.ts(字段对齐后端 User),页面跑通 CRUD 模式,后续接后端只换数据源。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 01:16:08 +08:00
liuyun
8d148937b1 feat: frontend auth foundation (API client, login page, router guard)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-10 21:13:55 +08:00
liuyun
9730b9fd5e chore: init sysmgr-admin (Vue3 scaffold)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-10 14:03:19 +08:00