diff --git a/src/api/BaseApi.ts b/src/api/BaseApi.ts index 83082dd..afab11b 100644 --- a/src/api/BaseApi.ts +++ b/src/api/BaseApi.ts @@ -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; diff --git a/src/api/SysSettingApi.ts b/src/api/SysSettingApi.ts index 7b5c50e..55180e0 100644 --- a/src/api/SysSettingApi.ts +++ b/src/api/SysSettingApi.ts @@ -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({ url }); - } - /** 壁纸管理列表(系统 + 目标学校,不含个人壁纸) */ getSchWallpaperManageList(schId?: number) { const url = path + "/getSchWallpaperManageList"; diff --git a/src/api/UsedAppApi.ts b/src/api/UsedAppApi.ts new file mode 100644 index 0000000..308af3a --- /dev/null +++ b/src/api/UsedAppApi.ts @@ -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({ 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(); diff --git a/src/assets/styles/header.scss b/src/assets/styles/header.scss index 62e1a98..17debcb 100644 --- a/src/assets/styles/header.scss +++ b/src/assets/styles/header.scss @@ -154,7 +154,9 @@ .app-cmdk-layer.is-open & { opacity: 1; transform: none; - transition-delay: calc(0.14s + var(--i) * 0.035s), calc(0.14s + var(--i) * 0.035s), 0s; + /* --i 封顶 20:应用多时(100+)末尾条目延迟不再线性膨胀到数秒,滚动空白窗上限 ≈0.84s */ + transition-delay: calc(0.14s + min(var(--i), 20) * 0.035s), + calc(0.14s + min(var(--i), 20) * 0.035s), 0s; } &.is-hl, &:hover { diff --git a/src/assets/styles/utils/_utils.scss b/src/assets/styles/utils/_utils.scss index b364dc3..3ec7ac8 100644 --- a/src/assets/styles/utils/_utils.scss +++ b/src/assets/styles/utils/_utils.scss @@ -152,6 +152,33 @@ div.dib { } } +// 分段 Tab(设置中心「桌面应用」角色分段 / 系统设置「应用管理」角色分段共用,替代 iView Tabs 观感) +.seg-tabs { + display: inline-flex; + background: #f0f2f6; + border-radius: 9px; + padding: 3px; + gap: 2px; + .sg { + padding: 6px 16px; + font-size: 13px; + border-radius: 7px; + color: #7a8088; + cursor: pointer; + transition: all 0.15s; + user-select: none; + &:hover { + color: #5979ea; + } + &.active { + background: #fff; + color: #5979ea; + font-weight: 600; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); + } + } +} + // .chart-box { // height: 50px; // width: 100%; diff --git a/src/components/Header.vue b/src/components/Header.vue index 6cdfb70..fb39cf2 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -170,7 +170,6 @@ - - - - - -
- - - 全部 - - - {{ item.v }} - - - - - - - - - - -
- -
-
- - -
-
-
- - - - - - - {{ item.v }} - - -
- -
- - - - - diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 9aa68bd..a219ae1 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -6,7 +6,7 @@ @@ -42,10 +41,9 @@

个人信息

-

查看与维护你的基础账号资料,姓名与工号由学校统一维护,如需变更请联系管理员。

+

查看与维护你的基础账号资料,姓名与账号由管理员统一维护,如需变更请联系管理员。

-

基础资料

头像
@@ -57,14 +55,14 @@ 姓名
- 由学校统一维护 + 由管理员统一维护
- 工号 + 账号
- 由学校统一维护 + 由管理员统一维护
@@ -125,109 +123,111 @@
- +
-
-

头像设置

-

支持 JPG / PNG,建议 1:1 正方形,大小不超过 2MB。

-
-
-

当前头像

-
-
- -
-
- - - - - - + + +
- -
+ +
-

我的主题

-

选择你的管理端主题档,各管理端(通知/用户中心等)同浏览器自动同步;当前来源:{{ myOriginLabel }}({{ myEffective.theme }})

+

主题{{ LAYER_LABEL[curLayer] }}

+

选择你的管理端主题档,各管理端(通知/用户中心等)同浏览器自动同步;当前来源:{{ myOriginLabel }}({{ myEffective.theme }})

+

设定{{ curLayer === 'platform' ? '全平台' : '本校' }}未自设主题的用户的默认主题档与侧栏样式; + 当前来源:{{ layerFromLabel }}

@@ -235,161 +235,258 @@
{{ t.name }} - ✓ + ✓
- +

侧栏样式

+

预览仅呈现主题档/侧栏深浅/渐变(YschTheme 通道只接受 ?yh-theme、?yh-side、?yh-grad);「侧栏跟随顶栏色」保存后在实际管理端生效。

- - + + +
- +
- -
-
-

我的壁纸

-

选择桌面背景壁纸:系统与校区壁纸直接选用,也可上传个人壁纸;点击缩略图即保存生效。

-
-
-

系统壁纸 平台内置

-
-
暂无壁纸
-
- ✓ -
+ +
+ +
- + +
+ + +
+ +
-

LOGO 设置

-

设置顶部导航栏与登录页展示的站点 LOGO,全站生效。

+

LOGO 设置{{ LAYER_LABEL[curLayer] }}

+

选择{{ curLayer === 'platform' ? '平台(schId=0)' : '本校' }}在顶部导航栏与登录页展示的站点 LOGO; + 上传、删除维护本级池,点选后保存为本级默认。

-

当前 LOGO

+

{{ curLayer === 'platform' ? '平台 LOGO 池' : '本校 LOGO 池' }} 本级可维护

-
暂无 LOGO,请先上传
+
暂无 LOGO,请先上传
- × + ×
@@ -404,46 +501,22 @@
-
- -
-
- - -
-
-

壁纸设置

-

选择桌面背景壁纸,可上传自定义图片并删除历史壁纸。

-
-
-

系统壁纸

-
-
暂无壁纸,请先上传
+ +
+

平台 LOGO 只读参考

+
- × - ✓ -
-
-
- 上传壁纸 -
- - - - 建议 1920×1080 以上,≤ 5MB +
- - +
@@ -473,43 +546,29 @@
- +

统计设置

-

选择「统计」页面需要展示的图表与指标。

+

配置「统计」页面展示的图表入口的名称、图标、可见角色与排序;保存后用户下次进入统计页生效。

-

展示指标

-
-
- ✓{{ c.name }} -
+

统计模块列表

+
+
-
-
- -
-
- - -
-
-

后台管理

-

本项不属于设置中心内的页面,点击下方按钮在新标签页打开后台管理系统。

-
-
- ↗ - 跳转地址:{{ $conf.baseHost }}/userbase/front/index.html(window.open 新标签页) -
-
后台管理系统由 userbase 独立承载,此处仅保留跳转入口
-
- + + + + +
@@ -579,6 +638,54 @@ + + + +
+ + + 全部 + + + {{ item.v }} + + + + + + + + + + + + + + + + + + + + {{ item.v }} + + +
+ +
diff --git a/src/views/SysSetting.vue b/src/views/SysSetting.vue index 1174f1a..ba390c2 100644 --- a/src/views/SysSetting.vue +++ b/src/views/SysSetting.vue @@ -1,185 +1,102 @@