feat(header): 铃铛新消息按当前身份学校过滤(getCurSchId 口径,平台级/超管放行)——消息按学校隔离 批次4前端
This commit is contained in:
@@ -344,6 +344,10 @@ function frameAppName(frame: any) {
|
||||
}
|
||||
|
||||
function onNewMessage(frame: any) {
|
||||
// 他校新消息对当前学校口径无信息量(不计未读、不打扰、也不触发 /msg 页重拉)
|
||||
if (!bellVisibleForCurrentSchool(frame)) {
|
||||
return;
|
||||
}
|
||||
store.incUnread();
|
||||
// /msg 页开着时自刷新(页内监听该事件重拉第一页与摘要)
|
||||
mittBus.emit("msgCenter:newMessage", frame);
|
||||
@@ -354,6 +358,23 @@ function onNewMessage(frame: any) {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 铃铛按校过滤(消息按学校隔离 批次4):口径必须与批次3 服务端列表一致——
|
||||
* 平台级消息(帧无 schId)任何身份都提醒;平台/超管身份(getCurSchId 非正数,含 schId=0
|
||||
* 被 store 归一成 -1 的形态)看全部,一律提醒;其余只认当前激活身份学校。
|
||||
*/
|
||||
function bellVisibleForCurrentSchool(frame: any): boolean {
|
||||
const frameSchId = frame ? frame.schId : null;
|
||||
if (frameSchId === null || frameSchId === undefined) {
|
||||
return true;
|
||||
}
|
||||
const curSchId = store.getCurSchId;
|
||||
if (!curSchId || curSchId <= 0) {
|
||||
return true;
|
||||
}
|
||||
return Number(frameSchId) === Number(curSchId);
|
||||
}
|
||||
|
||||
function closeMsgWs() {
|
||||
msgWsClosed = true;
|
||||
clearTimeout(msgWsReconnectTimer);
|
||||
|
||||
Reference in New Issue
Block a user