Commit Graph
45 Commits
Author SHA1 Message Date
chenxing a082e59c3e fix(tree): 修复左侧树滚动条失效与叶子节点误显 +/−,统一权限一览连接线
build / build (push) Successful in 3m27s
滚动条(上次改动引入的回归):
- MyTree 根节点加 .my-tree 类并打通高度链(flex 纵向 + .ztree 承担滚动),
  父级定高时滚动条只落在树节点区域;父级 auto 的卡片内树行为不变
- GroupTreeSearchPanel 的 .tree-body 改 flex 纵向传递高度,删除已失效的 .ztree 规则

叶子节点 +/−(以组用户管理左侧树为参考统一):
- zTree 只要 children 是数组即强制 isParent=true,故空数组必须不挂键;
  修正 GroupAuth / AppModuleCheckTree / PermissionView 共 9 处节点构造
- MyTree 初始化前加节点规范化兜底,防止后续新增树重犯
- removeNode 删除末个子节点后同步父节点父/叶状态,不再残留 +/−

权限一览:
- 删除 li{line-height:26px} 覆盖(zTree 图标按 21px 节距,26px 会让连接线出现断口)
- 左列改用页面级 permission-tree 类:flex 纵向 + overflow:hidden,
  消除整列滚动与外层裁切,滚动收敛到树体
2026-09-16 17:46:06 +08:00
chenxing af94e1d2cb fix(permission): 角色节点联动已授权应用、所属部门按行收窄、树滚动条收敛
build / build (push) Successful in 2m53s
- 权限一览:formatRoleAuthzTree 子节点键 apps→children(zTree 只认 children,导致除分类外全不渲染)
- 权限一览:所属部门按行所在组请求 UserGroupTree,多组用户只显示该组链路,(本组)标记指向该组
- 角色授权:用户管理新增「部门」列,添加/删除按(用户,组)维度,切组清空勾选避免误绑
- 编辑用户:切「所在组」时身份与角色属性双回显,该组角色未就绪拦截提交防误存;保存按组覆盖
- 组用户管理:左侧树滚动条收敛到树节点(页面级新增 group-user-tree 类,不动全局 .tree-container)
2026-09-16 16:33:58 +08:00
chenxing 4237615238 权限一览修订
build / build (push) Successful in 3m40s
2026-09-16 09:44:54 +08:00
chenxing 711765234f feat(app-module): 模块管理新增图标字段的表格列与表单行
build / build (push) Successful in 1m56s
配合后端 app_module.icon(YschIcons 图标名,非必填):
- 表格在「模块名称」后加「图标」列,有值时预览 SvgIcon 并显示图标名原文,无值显示占位
- 新增/编辑弹窗在「模块路径」后加一行「模块图标」输入框(clearable,非必填)
- 回显、新增/子模块初始值、两处提交参数均已带上 icon;空串归一为不下发该字段,
  后端 edit 逐字段整体赋值,故清空图标可生效
2026-09-15 18:11:18 +08:00
chenxing 6750a735c2 fix(auth): 改用 zTree 原生级联替代手动 checkNode,彻底修复级联错乱
build / build (push) Successful in 1m58s
手动代码级联与 zTree 内部状态机(checkNode 提前 return、setChkClass、repairParentChkClassWithSelf)反复交互,
导致除 open 外级联视觉完全失效、点击父节点无法联动子孙,整体错乱。

改为 zTree 原生 chkboxType {Y:"ps", N:"s"}:
- Y="ps":勾选任意节点 -> 父/祖先全部勾选 + 子孙全部勾选
- N="s":取消节点 -> 子孙全部取消,父/祖先不受影响
恰好对应需求 4 条规则(勾选子->祖先勾选;勾选父->子孙勾选;取消父->子孙取消;取消子->父/祖不动),
且视觉由 zTree 原生刷新,不再依赖手动 checkNode。

onTreeCheck 退化为只做本地数据同步:原生级联完成后把应用子树最终勾选态
(syncAppModulesFromTree)写回 AppItem.modules 作为提交依据;GroupAuth 仍按模块明细 diff,
角色授权页仍全量防抖保存。
2026-09-15 17:45:43 +08:00
chenxing af367ddd19 fix(auth): 修复勾选级联视觉不生效——checkNode 提前 return 跳过外观刷新
build / build (push) Successful in 1m58s
zTree checkNode 在 node.checked 已等于目标值且 checkTypeFlag=false 时会提前 return,
setChkClass(复选框外观刷新)被跳过。原先实现先手动赋值 n.checked 再调 checkNode,
导致除点击节点外,联动到的祖先/子孙节点只改数据、外观不刷新,表现为级联未生效。
改为由 checkNode 内部设置 checked 并刷新外观后再处理后续联动。
2026-09-15 17:18:21 +08:00
chenxing e1cdc26697 feat(auth): 树勾选级联+点击文字勾选+树默认闭合
build / build (push) Successful in 3m19s
- 新增共享级联工具 utils/treeCascade.ts:勾选子->祖先全部勾选;勾选父->子孙全部勾选/取消;取消子->父/祖不受影响(zTree 侧 chkboxType 置空,由代码级联)
- GroupAuth.vue:接入代码级联,模块明细按 diff 提交(追加/删除),取消时同步清理子组继承标记
- AppModuleCheckTree.vue:角色授权接入同一套级联逻辑
- 组/角色授权树与应用节点默认闭合,点击文字等价勾选框(MyTree onClick 同步触发 onCheck)
- PermissionView.vue「已授权应用」应用一级默认不展开模块
2026-09-15 16:51:43 +08:00
chenxing e0252eb997 fix(user): 编辑用户「所在组」路径去掉分隔符两侧空格
build / build (push) Successful in 1m51s
groupOptions 拍平组织树时完整路径分隔符由 " / " 改为 "/",
使所在组显示为 教育云中心/信阳教育局/…/202601。
2026-09-11 10:14:22 +08:00
chenxing c1e4603fa4 ci修订:恢复构建容器名唯一化(模板重注入回退修复)
build / build (push) Failing after 2m2s
远端 4bf8efe 删除整个 .gitea/workflows 目录后,194e761 由 projman 模板重新注入
build.yml,而 projman 的 templates/ci/frontend.yml 仍是固定容器名 frontbuild,
导致 34c2496 的容器名唯一化修复被回退。

runner 挂的是宿主 docker.sock,容器名在整个 daemon 上是共享命名空间,固定名
frontbuild 会在多仓/多条 workflow 并发构建时互相 docker rm -f 掉对方正在构建的
容器,表现为无编译报错的 exit 137(SIGKILL)。

本次仅恢复 build.yml 的容器名为 BUILD_CONTAINER=frontbuild-${GITHUB_RUN_ID:-0}-$(date +%s),
不引入 deploy.yml(远端已删除,部署通道统一走 build.yml -> Nexus -> projman 前端发布)。
2026-09-10 19:32:49 +08:00
chenxing 3697121c03 移除未使用的 sass-loader 并重生 lock(修 build.yml 在 CI 里 npm ci 失败)-本项目是 vite 工程,src 与 vite.config.ts 对 sass-loader 零引用,scss 编译由 dependencies 里的 sass(dart-sass)承担;但 sass-loader@10 作为 peer 把 node-sass@6 拖进了 package-lock,CI 的 npm ci 在 node:20 容器里必须装 node-sass(最高只支持 Node 16,无预编译二进制,postinstall 退回 node-gyp 源码编译且内网拉不到 nodejs.org 头文件),故 build.yml 自加入起两次 run 全挂;本地 npm ci --dry-run 实测确认安装集含 node-sass 6.0.1,清理后 node-sass 与 webpack 子树引用均为 0;lock 同步移除 sass-loader 连带拖入的整条 webpack 工具链(@webassemblyjs/*、terser-webpack-plugin、schema-utils、neo-async 等,3005 行删除),node_modules 未动(--package-lock-only),npm run build 本地通过;做法与 Notice d2d0eb6 一致
build / build (push) Failing after 4m1s
2026-09-10 12:36:38 +08:00
chenxing 34c2496704 ci修订:构建容器名唯一化+deploy.yml改手动触发(修复 exit 137 互杀)-根因是 runner 挂宿主 docker.sock,容器名在整个 daemon 上是共享命名空间,而 build.yml 与新加的 deploy.yml 都写死固定名 frontbuild,两条又都挂 push 触发:同一次 push 并发起两个 job,各自的 docker rm -f frontbuild 会把对方正在 npm ci/build 的容器直接 SIGKILL 掉,表现为无编译报错的 exitcode 137(2026-09-10 三仓同推即撞,UserBase 两条 run 与 Cms run 全红、Notice 侥幸绿);改法:两条 workflow 内 BUILD_CONTAINER=frontbuild-${GITHUB_RUN_ID}-${时间戳} 全步引用(run/exec/cp/rm 统一),GITHUB_RUN_ID 实例级唯一、时间戳兜底手动重跑与未注入场景;部署通道收敛:push 自动部署归一 build.yml→Nexus→projman 前端发布,deploy.yml 的 on 去掉 push 只留 workflow_dispatch(需要直连宿主 /data/www/userbase 软链秒级回滚时在 Actions 手动 Run),避免同一次提交被部署两遍;四条 workflow YAML 解析通过、改动 step sh -n 语法通过
build / build (push) Failing after 3m10s
2026-09-10 12:16:31 +08:00
chenxing efff0eba39 退出登录图标接入 ysch 单 svg+首页入口与登出路由修订:从 YschIcons/svg 复制 logout.svg、shouye.svg 进 src/assets/icons(雪碧图根目录文件即 #icon-{name}),退出与头部按钮改用现成 SvgIcon 渲染,不再依赖 index.html 引入的 bschload.min.js 平台 iconfont 字体(与 Notice 同形同尺寸:退出 18px、头部 22px,均白色);<svg> 默认 inline 带基线降部空隙,新增组件 scoped 补 display:block 与首页按钮 flex 居中(layout.css 的 .logout i/.icon-btn i 只命中 <i>,不改压缩产物);头部「常用应用」改「返回首页」(本项目 appList 实为 store.modules,menu.ts 无 url/icon 键,面板渲染 href="undefined" 属坏入口;面板 DOM 与 showPanel/isPanel 保留仅失去入口);linkHomePage 仅改独立 Web 分支 URL /BschHome→/userhome/front/index.html(线上 BschHome 实测 404),嵌入态 BschLoadUtil.goBackDesktop() 逻辑原样保留;登出路由 /cas/logout→/logout 与 Notice/UserhomeFront 统一(/cas/logout 在 SSO 侧无效);build 通过
build / build (push) Failing after 5s
deploy-userbase-front / build-and-deploy (push) Failing after 11s
2026-09-10 11:58:26 +08:00
chenxing b1b16332e4 ci
deploy-userbase-front / build-and-deploy (push) Successful in 2m39s
2026-09-07 18:29:17 +08:00
chenxing c7404b9d5e env-config修订 2026-09-07 18:16:37 +08:00
chenxing 7e37f2ada6 更改校端权限 2026-09-07 09:32:38 +08:00
chenxing 9200fa2135 更改环境配置 2026-09-03 23:57:05 +08:00
chenxing 790f0e3db5 bug修订 2026-09-02 08:41:35 +08:00
chenxing 428ee56bd3 读取动态配置 2026-09-01 11:50:38 +08:00
chenxing 886cce1b9e 跨校身份更改 2026-08-27 20:13:16 +08:00
chenxing 73066b5ab3 转出状态 2026-08-26 12:37:56 +08:00
chenxing 9c04b5e9fc 样式修复 2026-08-20 15:35:43 +08:00
chenxing f5c1289681 开放日志修改 2026-08-20 12:17:29 +08:00
chenxing 049965f51b 添加开放接口日志 2026-08-20 10:23:47 +08:00
chenxing 35529fc671 api路径修复 2026-08-19 12:01:26 +08:00
chenxing eb0ab76c83 修复api 2026-08-19 11:28:31 +08:00
chenxing bf6439888e 更新api 2026-08-19 00:26:27 +08:00
chenxing a096948371 api更改 2026-08-19 00:19:03 +08:00
chenxing 5247515a85 ci 2026-08-18 23:48:18 +08:00
chenxing 02f1fd2b14 修复重复弹msg的bug 2026-08-18 23:31:27 +08:00
chenxing 8fd5a21fcc 推送/操作日志下载改location.href;移动组关闭自动select;所在组改单选 2026-08-18 00:04:08 +08:00
chenxing 58a606764b 更改推送日志功能 2026-08-17 22:54:49 +08:00
chenxing 4b73cc7b29 推送日志修改 2026-08-17 20:25:18 +08:00
chenxing 89e7c08b2f 功能修改 2026-08-17 19:49:00 +08:00
chenxing 2321571060 修改角色bug 2026-08-17 18:54:00 +08:00
chenxing 0fa4b0f38a 修复所在组bug 2026-08-17 17:19:04 +08:00
chenxing b96bbc9a62 修改功能 2026-08-17 16:41:08 +08:00
chenxing 85619785f6 推送功能添加 2026-08-14 09:08:01 +08:00
chenxing 4077ef64d8 组用户功能修订 2026-08-12 19:19:46 +08:00
chenxing 82f4c623af 修改环境变量,重新ci 2026-08-10 17:57:27 +08:00
chenxing 648c32c29e test 2026-08-10 16:33:36 +08:00
chenxing bf2d800c63 docs: 注明仓库Actions已启用,push到main自动触发部署 2026-08-10 16:24:16 +08:00
chenxing 4adf38af77 fix: deploy.yml 两处修复 - .npmrc 仅存在时删(被gitignore,CI无此文件); 软链改用相对路径(releases/X)避免Caddy容器内绝对路径断链 2026-08-10 16:16:58 +08:00
chenxing 020911419e fix: 前端部署方案B修复 - deploy.yml支持首次真实目录迁移到releases/initial再建软链; 删除多余且基于错误假设的caddy-switch.yml(Caddy已是file_server) 2026-08-10 16:06:09 +08:00
chenxing 06ee85cf8d ci: 前端方案B - 软链接版本化部署(不再打镜像) + caddy-switch 工作流 2026-08-10 15:42:00 +08:00
chenxing eea881b616 init: UserBaseFront (frontend) 2026-08-10 14:41:13 +08:00