Commit Graph
61 Commits
Author SHA1 Message Date
chenxing c12628f051 外观偏好异步补齐C:顶栏新增云海 logo 徽标 + 接平台键 yh-logo-url + sync 件更新
build / build (push) Failing after 10s
- header-container 首位插入 .logo-badge(结构与 Notice 对齐,皮肤由通道 base.layout.css 提供);拷贝平台 yunhai-logo.svg 资产兜底
- localStorage["yh-logo-url"] 优先,@error 回落兜底;mounted 读一次 + 监听 yh-appearance-updated 即时切换
- sync 件:UserAvatar.vue 监听 yh-appearance-updated 重读键(YschTheme d9db725 分发)
2026-10-08 18:52:31 +08:00
chenxing 0a93441f64 chore(deps): view-ui-plus lock 对齐 1.3.24(YschTheme 通道批次0 前置,版本锁测试解锁)
build / build (push) Successful in 3m51s
2026-10-07 23:35:46 +08:00
chenxing b1dba84c49 feat(appicon): 应用图标 AppIcon 矢量选择器接入(YschAppIcons 资产库 10-04 轮)
- src/assets/appicon-icons.json:资产库图标清单
- src/components/AppIconPicker.vue:矢量图标+配色选择器(YschAppIcons mask 资产)
- AppForm.vue:平台模式 Pc 应用图标换 AppIconPicker(学校模式保留位图上传,学校覆盖线只收 pcIcon);App 位图图标移入高级折叠区(遗留通道,存量 pc_icon/app_icon 链路保留,新应用优先矢量图标键)
- AddAppContainer/EditAppContainer:配套接线
依据:根目录《AppIcon资产库落地-执行报告-20261004.md》P2 管理端图标选择器
2026-10-06 20:16:21 +08:00
chenxing efd55a3a75 feat(avatar): 顶栏三态头像接入(YschTheme 默认头像轮 sync 件)
- src/utils/avatar.ts + src/components/UserAvatar.vue:YschTheme sync 下发公共源(取值链 URL > yh-avatar > yh-avatar-sch-default > text,值域 text|silhouette)
- layout.vue:顶栏 img 头像换 UserAvatar 组件(placement=brand,size=28);头像/姓名点击统一跳 UserHome 设置页「个人信息」pane(原 /v/userinfo 已下线语义)
2026-10-06 20:16:20 +08:00
chenxing 5296b5999c feat(theme): A 类免插件接入 YschTheme 中央静态通道(index.html loader + 删本地 layout.css)
- index.html:env-config 引导后插主题通道 loader(优先级 staticHost > baseHost > %VITE_THEME_HOST% 仅 dev > 同源 /static,document.write parser-blocking,产物占位符零烧入)
- main.ts:删本地 layout.css 引入(通道旧版全量拷贝 14.8KB),注释改指通道下发链
- src/assets/styles/layout.css:删除(staged)
- vite.config.ts:/static dev 代理(YH_THEME_PROXY_TARGET 可覆盖)+ /api /mobiapi 代理整理
- .env.dev:三种 dev 模式说明 + VITE_THEME_HOST 连法注释
- App.vue:注释纠正(主题样式改由中央通道下发)
- alova-iview/alova-vant:修 mock 失效(baseUrl 未认 isMock)
依据:YschTheme 方案 §11 A 类契约 +《主题通道当前困境与待决问题-20260929》§3 九文件清单
2026-10-06 20:16:03 +08:00
chenxing ec53c34b9c feat(app): 基石应用删除解禁——MyConfirm 同步 projman 删除模(输名确认+红色确认键),删除一律危险确认;基石模块/推送仍置灰
build / build (push) Successful in 3m47s
2026-09-29 15:26:25 +08:00
chenxing e034b947e5 fix(app): 性质/技术标识提示改 md-help 图标+Button 触发的 Tooltip(max-width=320 防截断);基石应用整行隐藏 Pc 地址/图标(无消费方)
build / build (push) Successful in 12m52s
2026-09-29 14:47:21 +08:00
chenxing e1aee91a98 feat(app): 基石应用隐藏门户投放字段(前端类型/PC·App地址图标/公众号/钉钉);性质说明改 Tooltip 防折行;技术标识加 kebab-case 提示与校验
build / build (push) Successful in 3m38s
2026-09-29 11:39:59 +08:00
chenxing 14dcdb7fe1 feat(app): 编辑应用回传 appCode/appNature 必填配套(C5)——AppForm 编辑态技术标识必填规则(后端 Create/Update 组同口径);EditAppContainer 学校分支补回传 categoryId/appCode/appNature 原值满足平台校验(后端学校覆盖只读名称/描述/图标,语义不变)
build / build (push) Successful in 2m24s
2026-09-28 17:08:12 +08:00
chenxing 6a2c82c0ef feat(app): 应用表单加性质 Switch+技术标识,列表加性质列且基石行模块/推送/删除置灰(消息卡片方案 B1) 2026-09-28 12:44:45 +08:00
chenxing 0080861482 fix(authz): 组授权卡片计数改贴整卡右下角,与子组继承复选框同列
build / build (push) Successful in 1m51s
- 「N个应用」从卡片头移入 cat-card-body 末尾,绝对定位到整卡右下角
- .cat-count 的 right 与子组继承复选框同值 14px,上下对齐成一列
- cat-card-body 底部 padding 加到 24px 腾出计数位置;卡片头 padding 恢复 8px 12px
2026-09-23 09:29:32 +08:00
chenxing 02a203a7f1 fix(authz): 组授权卡片头计数下沉右下角,子组继承回归最右
build / build (push) Successful in 2m29s
- 「N个应用」改为绝对定位到卡片头右下角,不再参与主行 flex 排布
- 主行右侧顺序调整:全部展开 → 子组继承(居最右)
- 卡片头底部 padding 加到 26px 容纳角标;分类名收缩系数收敛为 flex: 0 1 auto
2026-09-23 09:24:46 +08:00
chenxing 71c08d6e9a feat(authz): 权限一览加「全部展开」开关与卡片布局加固;下线测试推送页
build / build (push) Successful in 2m3s
- 权限一览:应用层默认折叠,新增「全部展开」开关(事件不冒泡到标题行),MyTree 透传 expand-all
- 应用模块树卡片:分类名与数量让位(超大收缩系数 + min-width:0),「子组继承」加 tooltip 与弹性空隙,
  「全部展开」加标签样式与竖线分隔,避免整组被挤出可视区或被读成同一个开关
- 下线测试推送:删除 /push-test 路由、菜单项与 PushTest.vue
2026-09-18 11:13:36 +08:00
chenxing 7784492522 chore(types): 同步用户身份字段(删 SysUserVo.roles,identityNames 口径注释订正)
- SysUserVo.roles 已停写(后端本次一并删除该字段),前端类型同步移除
- identityNames 注明:组上下文列表只含当前组范围解析出的学校下的身份(与编辑弹窗「所在组」同源)
2026-09-18 11:13:27 +08:00
chenxing d012a99e28 feat(log): 三类日志列表加大小列,详情按 50KB 门槛切换在线预览/下载
build / build (push) Successful in 1m57s
- 推送/操作/开放接口日志列表各加"大小"列(payload_size/response_size,Utils.getFileSize 格式化)
- 详情弹窗:下载按钮常驻;Utils.canPreview(≤50KB) 才显示"在线预览",点击 fetch 复用各自 /Download/{id} 取原文渲染
- oapilog 详情从无条件内联改为同一套门槛逻辑
- utils 新增 PREVIEW_MAX_BYTES 与 canPreview
2026-09-18 09:24:38 +08:00
chenxing 628a914e19 feat(authz): 应用类型卡片新增「全部展开」开关 + 用户管理列宽让位部门列
build / build (push) Successful in 3m16s
- MyTree 新增受控 prop expandAll(默认 false):在 zTree 初始化之后套用并监听变化,
  数据重载(切组/搜索过滤)后自动重新展开,规避调用方与 initTree 抢 nextTick 时序
- 组授权 / 角色授权的应用类型卡片头部加「全部展开 + small Switch」,默认关闭,
  控制该类型下全部应用与模块的展开收起;每个卡片独立,状态按 category id 保存
- 开关外层 @click.stop:卡片头部本身绑定 toggleCollapse,不阻断冒泡会连带折叠卡片
- 角色授权「用户管理」表格:账号/姓名改定宽(110/90)、操作 80,部门 minWidth 吃剩余
  宽度,把空间留给组路径列
2026-09-16 19:14:23 +08:00
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