fix: idleTimeout 过早引入 signalR 导致在线用户不生效问题
This commit is contained in:
parent
3fba4b5cd6
commit
fe1f081caa
@ -39,7 +39,7 @@ public class SysConfigSeedData : ISqlSugarEntitySeedData<SysConfig>
|
||||
new SysConfig{ Id=1300000000261, Name="密码历史记录验证", Code=ConfigConst.SysPasswordRecord, Value="False", SysFlag=YesNoEnum.Y, Remark="是否验证历史密码禁止再次使用", OrderNo=210, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2024-12-17 00:00:00") },
|
||||
new SysConfig{ Id=1300000000271, Name="显示系统更新日志", Code=ConfigConst.SysUpgrade, Value="True", SysFlag=YesNoEnum.Y, Remark="是否显示系统更新日志", OrderNo=220, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2024-12-20 00:00:00") },
|
||||
new SysConfig{ Id=1300000000281, Name="多语言切换", Code=ConfigConst.SysI18NSwitch, Value="True", SysFlag=YesNoEnum.Y, Remark="是否显示多语言切换按钮", OrderNo=230, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2024-12-20 00:00:00") },
|
||||
new SysConfig{ Id=1300000000291, Name="闲置超时时间", Code=ConfigConst.SysIdleTimeout, Value="0", SysFlag=YesNoEnum.Y, Remark="闲置超时时间(分钟),超时强制退出,0 表示不限制", OrderNo=240, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2024-12-20 00:00:00") },
|
||||
new SysConfig{ Id=1300000000291, Name="闲置超时时间", Code=ConfigConst.SysIdleTimeout, Value="0", SysFlag=YesNoEnum.Y, Remark="闲置超时时间(秒),超时强制退出,0 表示不限制", OrderNo=240, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2024-12-20 00:00:00") },
|
||||
|
||||
new SysConfig{ Id=1300000000999, Name="系统版本号", Code=ConfigConst.SysVersion, Value="0", SysFlag=YesNoEnum.Y, Remark= "系统版本号,用于自动升级,请勿手动填写", OrderNo=1000, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2025-04-10 00:00:00") },
|
||||
];
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import { debounce } from 'lodash-es';
|
||||
import { Local, Session } from '/@/utils/storage';
|
||||
// import { signalR } from '/@/views/system/onlineUser/signalR';
|
||||
import { ElMessageBox } from 'element-plus';
|
||||
import { accessTokenKey, refreshAccessTokenKey } from '/@/utils/axios-utils';
|
||||
import { i18n } from '/@/i18n';
|
||||
@ -16,6 +15,18 @@ type IdleTimeoutConfig = {
|
||||
debounceInterval?: number;
|
||||
};
|
||||
|
||||
// 动态导入 signalR
|
||||
let signalR: any;
|
||||
|
||||
/** 动态导入 signalR */
|
||||
async function loadSignalR() {
|
||||
if (!signalR) {
|
||||
const module = await import('/@/views/system/onlineUser/signalR');
|
||||
signalR = module.signalR;
|
||||
}
|
||||
return signalR;
|
||||
}
|
||||
|
||||
class IdleTimeoutManager {
|
||||
private timerId: number | null = null;
|
||||
private readonly config: Required<IdleTimeoutConfig>;
|
||||
@ -112,10 +123,11 @@ class IdleTimeoutManager {
|
||||
// 移除 app 元素,即清空主界面
|
||||
const appEl = document.getElementById('app')!;
|
||||
appEl?.remove();
|
||||
// 关闭连接
|
||||
// signalR.stop();
|
||||
|
||||
// TODO: 如果要改成调用 logout 登出接口,需要调整 clearAccessTokens 会 reload 页面的问题
|
||||
// 动态加载 signalR 并调用 stop 方法
|
||||
loadSignalR().then((signalR) => {
|
||||
signalR.stop();
|
||||
});
|
||||
|
||||
// 清除 token
|
||||
Local.remove(accessTokenKey);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user