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
|
1df44fd57e
|
feat: complete multi-tab (fixed home, neighbor nav, right-click close)
- 首页 tab 固定不可关闭,tab 持久化(刷新保留)
- 关闭激活 tab 跳转到相邻 tab(而非最后一个)
- 自定义 tab 条 + 右键菜单:关闭其他/左侧/右侧/全部
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 10:04:06 +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
|
d9f1a4d17e
|
feat: search inputs trigger search on Enter
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 09:53:26 +08:00 |
|
liuyun
|
1699fee4a8
|
fix: make inline el-form a flex container so search buttons align right
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 09:50:45 +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
|
104b7678d3
|
feat: rename ty-form, add search form collapse, use UnoCSS @apply
- ty-schema-form 改名 ty-form
- ty-search-form 支持折叠/展开(collapseCount 默认 2,查询/重置置右)
- ty-table/ty-crud/ty-search-form 样式改用 @apply 工具类
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 09:27:55 +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
|
246a305df5
|
feat: hide sidebar when active top-level menu has no children
上下/左右(含 MixBar)布局中,当前选中的顶级菜单无子菜单时不渲染左侧菜单;
Logo 区宽度与折叠按钮随之自适应。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 01:07:49 +08:00 |
|
liuyun
|
537dba9847
|
fix: align horizontal nav menu height with header to avoid covering bottom border
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:57:07 +08:00 |
|
liuyun
|
c5e044ea42
|
fix: reduce collapsed sidebar item margin and add popup icon gap
- 折叠时菜单项左右 margin 8px→4px,图标放大到 24px
- 折叠弹出的子菜单(teleport 到 body)用全局样式补图标与文字间距
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:54:20 +08:00 |
|
liuyun
|
1f06594252
|
fix: enlarge collapsed sidebar icons and make icon component inherit class
- 侧栏折叠时图标放大到 22px(展开时加图标与文字间距)
- 修复 el-menu-item 叶子项 #title 插槽误用
- icon 组件多根节点不自动继承 class,改为 inheritAttrs:false + v-bind="$attrs",使外部 class/size 生效
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:48:33 +08:00 |
|
liuyun
|
82aa944d48
|
fix: center header logo and fix theme color variants in dark mode
- Logo 区内容居中
- 主题色改为注入 <style> 生成明/暗两套派生变量:暗黑下 light-N 混黑、dark-2 混白,避免侧栏/按钮高亮在暗黑模式下变近白
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:43:31 +08:00 |
|
liuyun
|
99650949c0
|
style: polish admin layout visuals
- 顶栏改柔和阴影,Logo 区与侧栏连成一体(同宽+右边框)
- 侧栏菜单项圆角、主题色高亮、hover 过渡
- 内容区灰底衬白,footer 加顶边框,多页签激活态配色统一
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:40:11 +08:00 |
|
liuyun
|
66f4a38c98
|
feat: align header logo with sidebar, slim footer, mixbar only in sidebar layout
- MixBar 仅左右(sidebar)布局可用,horizontal 不再渲染
- 底部 footer 高度收紧
- 顶栏 Logo 区与左侧菜单(或 MixBar+菜单)同宽;侧栏折叠仅显 Logo、展开显 Logo+标题
- 安装 sharp 使 logo.png 构建时优化(-81%)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:35:49 +08:00 |
|
liuyun
|
8a0f510e3a
|
fix: let main content fill height so footer stays at bottom
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:26:00 +08:00 |
|
liuyun
|
86af3c10e1
|
fix: render header in all layouts (sidebar layout has tools-only header)
左右布局顶栏仅不含导航菜单,折叠/面包屑/全屏/暗黑/设置/用户等工具照常;
固定顶栏对所有布局生效(移除左右禁用)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:23:25 +08:00 |
|
liuyun
|
6ef0b1121c
|
feat: admin layout shell with Element Plus and configurable theme
- 集成 Element Plus(on-demand resolver + 中文 locale + 暗黑 css-vars)
- 布局壳组件(ty-header/ty-mixbar/ty-sidebar/ty-tabs/ty-breadcrumb/ty-footer/ty-setting/ty-setting-panel),中划线 + ty 前缀 + 自动导入,props/emits 解耦
- 5 种布局/导航模式 + 主题色(#2E7FA3) + 暗黑 + 侧栏折叠/宽度 + 固定顶栏/底栏 + 面包屑/多页签/全屏/手风琴
- 默认值集中配置 src/config/layout.ts;菜单字段对齐后端 resource(src/types/resource.ts + src/config/menu.ts)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-10-11 00:12:59 +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 |
|