feat(settings): 设置中心三级重构(一层一角色)+ 审计缺陷修复
build / build (push) Successful in 44s

三级重构(S1-S6,方案见 docs/设置中心三级重构-执行方案-20261008.md):
- Settings.vue 三层化主体:curLayer=my/school/platform 单 pane 分层,主题/头像/壁纸/桌面/LOGO 按身份只渲染本级
- 桌面应用三级默认 pane(used_app SCHOOL/BASE 读写 + 角色分段 + ≤8 上限)+ 统计设置真身迁入(StatsBarModal 退役)
- SysSetting.vue 去基础设置/机构树;ThemePreview 预览壳套 .layout-wrap; UsedAppApi 新增
审计缺陷修复(设置中心三级重构与消息搜索-审计报告-20261008):
- 【P0】DESKTOP_ROLE_TYPES 角色 1/2 标签对齐 SysRoleEnum(1教师/2校领导/3学生),桌面默认不再张冠李戴
- 命令面板:Enter/↑↓ 加 isComposing 守卫防中文输入法误触;过滤后高亮索引归零;stagger 延迟 --i 封顶 20
- WS 通知标题移除 frame.appKey 死消费;BaseApi summary todos 类型同步去 appKey
This commit is contained in:
chenxing
2026-10-08 23:08:16 +08:00
parent 2bd7ef3b80
commit 49f15b8a05
10 changed files with 1233 additions and 1469 deletions
+1 -1
View File
@@ -125,7 +125,7 @@ class Base extends Abstract {
const url = path + "/msgCenter/summary";
return this.getRequest<{
unreadCount: number;
todos: { appKey: string; count: number }[];
todos: { count: number }[];
sysUnread?: number;
bizUnread?: number;
approvalUnread?: number;
+1 -8
View File
@@ -1,16 +1,9 @@
import Abstract from "@/utils/axios/abstract";
import { PageData, PageParams } from "@/types/Basics";
const path = "/api";
/** 系统设置-基础设置(机构树 / 壁纸 / Logo 管理视图) */
/** 门户外观管理视图(壁纸 / Logo 池;S4.7 后由设置中心「门户外观」pane 调用,机构树随「系统设置-基础设置」一起移除) */
class SysSettingApi extends Abstract {
/** 机构树(仅超管),已裁剪到学校层 */
getSchTree() {
const url = path + "/getSchTree";
return this.getRequest<any>({ url });
}
/** 壁纸管理列表(系统 + 目标学校,不含个人壁纸) */
getSchWallpaperManageList(schId?: number) {
const url = path + "/getSchWallpaperManageList";
+33
View File
@@ -0,0 +1,33 @@
import Abstract from "@/utils/axios/abstract";
const path = "/api";
/**
* 桌面/常用应用三级默认(used_app:BASE 平台 / SCHOOL 本校 / USER 个人)。
* 后端 UsedAppController + UsedAppServiceImpl.findById 已实现「用户 > 学校 > 系统」级联与覆盖式保存,
* 本封装只服务设置中心「桌面应用」pane(S6),不改后端接口签名。
*/
class UsedAppApi extends Abstract {
/**
* 取某角色生效的常用应用(BoaApp 详情,按 appIds 顺序)。
* @param roleType 角色(1 校管理员 / 2 教师 / 3 学生)
* @param schId 学校ID;0 时后端按登录人主学校→归属组推断
* @param isSch 学校级读取:true 且非超管时后端令 uid=schId,于是只回本校 SCHOOL 那一行;
* 超管传 true 也会被后端强制回 false(走级联,实际取到 BASE 平台行)
*/
getUsedApp(roleType: number, schId: number, isSch: boolean) {
const url = path + "/usedapp/getUsedApp";
return this.getRequest<any[]>({ url, params: { roleType, schId, isSch } });
}
/**
* 覆盖式保存某角色本级默认桌面(同 setId+type+roleType+schId 存在则更新)。
* 数量上限 ≤8 由前端控制(后端注释口径);超管传任何 type 都会被后端强制为 BASE(0)。
*/
saveUsedApp(params: { appIds: string; type: number; roleType: number; schId?: number }) {
const url = path + "/usedapp/saveUsedApp";
return this.postRequest({ url, data: params });
}
}
export default new UsedAppApi();