feat(avatar): 默认头像轮前端集成——设置页两级样式 + 登录写学校默认键 + 顶栏三态头像
build / build (push) Successful in 5m35s

- BaseApi:schAvatarStyle/saveSchAvatarStyle/clearSchAvatarStyle 三端点(后端 SchSettingsController 配套,本仓 service 仓随轮提交)
- App.vue:登录后 loadSchAvatarDefault()(与 loadSchThemeDefault 同构:失败/404/空→不写键不报错不阻塞),写 localStorage[yh-avatar-sch-default]
- Settings.vue:新增 avatar pane(我的头像样式人人可见 + 本校默认管理员可配,watch 进 pane 拉取)
- AppHeader/UserInfoModal:头像展示位换 UserAvatar 三态组件
- ThemePreview:预览页头像形态联动
运行时联调与部署验证待人工(后端端点须随 service 发版)
This commit is contained in:
chenxing
2026-10-06 20:20:44 +08:00
parent 4d9da5e3a6
commit e2c937f424
6 changed files with 390 additions and 37 deletions
+23
View File
@@ -213,6 +213,29 @@ class Base extends Abstract {
return this.postRequest({ url });
}
// ===== 学校默认头像样式(默认头像轮 2026-09-30;后端契约见 SchSettingsController#schAvatarStyle)=====
/**
* 读本校默认头像样式(已登录可读):{avatarStyle: "text"|"silhouette"|null}——
* null 表示未配置(前端"不写键、不报错"),登录后调一次写 localStorage["yh-avatar-sch-default"]
*/
getSchAvatarStyle() {
const url = path + "/schAvatarStyle";
return this.getRequest<{ avatarStyle: string | null; schId: number }>({ url });
}
/** 保存本校默认头像样式(仅学校管理员):avatarStyle = "text" | "silhouette" */
saveSchAvatarStyle(avatarStyle: string) {
const url = path + "/saveSchAvatarStyle";
return this.postRequest({ url, params: { avatarStyle } });
}
/** 清空本校默认头像样式(仅学校管理员;置空后读侧返回 null) */
clearSchAvatarStyle() {
const url = path + "/clearSchAvatarStyle";
return this.postRequest({ url });
}
savUserRole(info: any) {
const url = path + "/user/savUserRole";
return this.postRequest({ url, data: info as any });