Слияние кода завершено, страница обновится автоматически
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href="${ctxPath}/assets/expand/images/favicon.ico" rel="icon">
<title>${constants.getSystemName()}</title>
<link rel="stylesheet" href="${ctxPath}/assets/common/libs/layui/css/layui.css?v=${constants.getReleaseVersion()}"/>
<link rel="stylesheet" href="${ctxPath}/assets/common/module/admin.css?v=${constants.getReleaseVersion()}"/>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<!-- 头部 -->
@include("/layout/_header.html"){}
<!-- 侧边栏 -->
@include("/layout/_sidebar.html"){}
<!-- 主体部分 -->
@include("/layout/_body.html"){}
<!-- 底部 -->
@include("/layout/_footer.html"){}
</div>
<!-- 加载动画 -->
@include("/layout/loading.html"){}
<!-- js全局变量 -->
<script type="text/javascript">
var Feng = {
ctxPath: "${ctxPath}",
version: '${constants.getReleaseVersion()}',
wsUrl: '${wsUrl}'
};
</script>
<script type="text/javascript" src="${ctxPath}/assets/common/libs/layui/layui.js?v=${constants.getReleaseVersion()}"></script>
<script type="text/javascript" src="${ctxPath}/assets/common/js/common.js?v=${constants.getReleaseVersion()}"></script>
<script>
var wsInst = null
layui.use(['layer', 'element', 'admin', 'index', 'HttpRequest', 'ws', 'notice', 'i18n'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var admin = layui.admin;
var index = layui.index;
var HttpRequest = layui.HttpRequest;
var ws = layui.ws;
var notice = layui.notice;
var i18n = layui.i18n;
//获取支持的语言列表
let languageTypes = i18n.getLanguageTypes();
for (var i = 0; i < languageTypes.length; i++) {
var code = languageTypes[i].code;
var description = languageTypes[i].name;
$("#languageDiv").append('<dd lay-unselect><a id="tran-' + code + '" href="javascript:;">' + description + '</a></dd>');
//设置监听事件,设置点击按钮切换当前系统语言
(function (code) {
$('#tran-' + code).click(function () {
i18n.changeUserTranslation(code);
});
})(code);
}
// 记载并缓存翻译的字典
i18n.loadAndCacheTranslation();
// 默认加载主页
index.loadHome({
menuPath: $("#firstPageAction").attr('lay-href'),
menuName: '<i class="layui-icon layui-icon-home"></i>'
});
// 修改密码点击事件
$('#setPsw').click(function () {
admin.open({
id: 'pswForm',
type: 2,
title: i18n.translate('TITLE_CHANGE_PASSWORD', '修改密码'),
shade: 0,
content: '${ctxPath}/view/changePassword'
});
});
// 退出登录点击事件
$('#btnLogout').click(function () {
var request = new HttpRequest(Feng.ctxPath + "/logout", 'post', function (data) {
Feng.success("退出成功!");
window.location.href = Feng.ctxPath + "/";
}, function (data) {
layer.msg("退出失败!" + data.message, {icon: 5, anim: 6});
});
request.start();
});
wsInst = ws.render({
wsUrl: Feng.wsUrl, //WebSocket的地址
connectErr: function (event) {
console.log(event)
//如果不支持websocket 回调
},
onWsError: function (event) {
//发生连接错误回调
},
onWsOpen: function (event) {
//连接成功回调
console.log("Socket 已打开");
wsInst.send("消息发送测试(From Client)");
},
onWsMessage: function (event) {
//服务器发送消息回调
let data = event.data;
try {
let msg = JSON.parse(data)
notice.info({
title: '[' + msg.businessTypeValue + ']' + msg.messageTitle,
message: msg.messageContent,
timeout: false
});
$('#messageDot').show();
} catch (e) {
}
},
onWsClose: function (event) {
//关闭连接回调
},
wsSend: function (event) {
//发送成功后的回调
},
})
});
window.unload = function () {
if (wsInst) {
wsInst.close();
}
};
</script>
</body>
</html>
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.