428 lines
15 KiB
HTML
428 lines
15 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="renderer" content="webkit">
|
||
<title>WMS仓储管理系统首页</title>
|
||
<!-- 避免IE使用兼容模式 -->
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<link th:href="@{favicon.ico}" rel="shortcut icon"/>
|
||
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
|
||
<link th:href="@{/css/jquery.contextMenu.min.css}" rel="stylesheet"/>
|
||
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
||
<link th:href="@{/css/animate.min.css}" rel="stylesheet"/>
|
||
<link th:href="@{/css/style.min.css}" rel="stylesheet"/>
|
||
<link th:href="@{/css/skins.css?v=20200902}" rel="stylesheet"/>
|
||
<link th:href="@{/ruoyi/css/ry-ui.css?v=4.7.3}" rel="stylesheet"/>
|
||
</head>
|
||
<body class="fixed-sidebar full-height-layout gray-bg" th:classappend="${isMobile} ? 'canvas-menu'" style="overflow: hidden">
|
||
<div id="wrapper">
|
||
|
||
<!--左侧导航开始-->
|
||
<nav class="navbar-default navbar-static-side" role="navigation">
|
||
<div class="nav-close">
|
||
<i class="fa fa-times-circle"></i>
|
||
</div>
|
||
<a th:href="@{/index}">
|
||
<li class="logo hidden-xs">
|
||
<span class="logo-lg">深南WMS</span>
|
||
</li>
|
||
</a>
|
||
<div class="sidebar-collapse tab-content" id="side-menu">
|
||
<div class="user-panel">
|
||
<a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
|
||
<div class="hide" th:text="个人中心"></div>
|
||
<div class="pull-left image">
|
||
<img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="img-circle" alt="User Image">
|
||
</div>
|
||
</a>
|
||
<div class="pull-left info">
|
||
<p>[[${user.userName}]]</p>
|
||
<a href="#"><i class="fa fa-circle text-success"></i> 在线</a>
|
||
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 左侧菜单 -->
|
||
<th:block th:each="menu : ${menus}">
|
||
<div class="tab-pane fade height-full" th:id="|menu_${menu.menuId}|">
|
||
<ul class="nav">
|
||
<li th:each="cmenu : ${menu.children}">
|
||
<a class="menu-content" th:if="${#lists.isEmpty(cmenu.children)}" th:href="@{${cmenu.url}}" th:classappend="${#strings.isEmpty(cmenu.target)} ? |menuItem| : ${cmenu.target}" th:data-refresh="${cmenu.isRefresh == '0'}">
|
||
<i th:class="${cmenu.icon} + ' fa-fw'"></i> <span class="nav-label">[[${cmenu.menuName}]]</span>
|
||
</a>
|
||
<a class="menu-content" th:if="${not #lists.isEmpty(cmenu.children)}" href="#">
|
||
<i th:class="${cmenu.icon} + ' fa-fw'"></i>
|
||
<span class="nav-label">[[${cmenu.menuName}]]</span>
|
||
<span class="fa arrow"></span>
|
||
</a>
|
||
<ul th:if="${not #lists.isEmpty(cmenu.children)}" class="nav nav-second-level collapse">
|
||
<li th:each="emenu : ${cmenu.children}">
|
||
<a th:if="${#lists.isEmpty(emenu.children)}" th:href="@{${emenu.url}}" th:class="${#strings.isEmpty(emenu.target)} ? |menuItem| : ${emenu.target}" th:data-refresh="${emenu.isRefresh == '0'}">
|
||
<i th:class="${emenu.icon} + ' fa-fw'"></i>
|
||
[[${emenu.menuName}]]
|
||
</a>
|
||
<a th:if="${not #lists.isEmpty(emenu.children)}" href="#">
|
||
<i th:class="${emenu.icon} + ' fa-fw'"></i>
|
||
[[${emenu.menuName}]]
|
||
<span class="fa arrow"></span>
|
||
</a>
|
||
<ul th:if="${not #lists.isEmpty(emenu.children)}" class="nav nav-third-level collapse">
|
||
<li th:each="fmenu : ${emenu.children}"><a th:if="${#lists.isEmpty(fmenu.children)}" th:class="${#strings.isEmpty(fmenu.target)} ? |menuItem| : ${fmenu.target}" th:href="@{${fmenu.url}}" th:data-refresh="${fmenu.isRefresh == '0'}">[[${fmenu.menuName}]]</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</th:block>
|
||
|
||
<!-- 首页菜单 -->
|
||
<div class="tab-pane fade height-full" id="index">
|
||
<ul class="nav">
|
||
<li>
|
||
<a class="menuItem" th:href="@{/system/main}">
|
||
<i class="fa fa-home"></i> <span class="nav-label">首页</span></a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
<!--左侧导航结束-->
|
||
|
||
<!--右侧部分开始-->
|
||
<div id="page-wrapper" class="gray-bg dashbard-1">
|
||
<div class="row border-bottom">
|
||
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
|
||
<div class="navbar-header">
|
||
<a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="#" title="收起菜单">
|
||
<i class="fa fa-bars"></i>
|
||
</a>
|
||
</div>
|
||
<!-- 顶部栏 -->
|
||
<div id="navMenu">
|
||
<ul class="nav navbar-toolbar nav-tabs navbar-left hidden-xs">
|
||
|
||
<!-- 顶部菜单列表 -->
|
||
<th:block th:each="menu : ${menus}">
|
||
<li role="presentation" th:id="|tab_${menu.menuId}|">
|
||
<a th:if="${#lists.isEmpty(menu.children)}" data-toggle="tab" th:class="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? 'menuBlank' : 'menuItem noactive'}" th:href="@{${menu.url}}">
|
||
<i th:class="${menu.icon}"></i> <span>[[${menu.menuName}]]</span>
|
||
</a>
|
||
<a th:if="${not #lists.isEmpty(menu.children)}" data-toggle="tab" th:class="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? 'menuBlank'}" th:href="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? @{${menu.url}} : |#menu_${menu.menuId}|}">
|
||
<i th:class="${menu.icon}"></i> <span>[[${menu.menuName}]]</span>
|
||
</a>
|
||
</li>
|
||
</th:block>
|
||
|
||
<!--<li role="presentation" id="tab_index">-->
|
||
<!--<a data-toggle="tab" href="#index">-->
|
||
<!--<i class="fa fa-area-chart"></i> <span>统计报表</span>-->
|
||
<!--</a>-->
|
||
<!--</li>-->
|
||
|
||
<li role="presentation" id="tab_demo" th:if="${demoEnabled}">
|
||
<a data-toggle="tab" href="#demo">
|
||
<i class="fa fa-desktop"></i> <span>实例演示</span>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<!-- 右侧栏 -->
|
||
<ul class="nav navbar-top-links navbar-right welcome-message">
|
||
<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="锁定屏幕" href="#" id="lockScreen"><i class="fa fa-lock"></i> 锁屏</a></li>
|
||
<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="全屏显示" href="#" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏</a></li>
|
||
|
||
<li class="dropdown user-menu">
|
||
<a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">
|
||
<img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="user-image">
|
||
<span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>
|
||
</a>
|
||
<ul class="dropdown-menu">
|
||
<li class="mt5">
|
||
<a th:href="@{/system/user/profile}" class="menuItem noactive">
|
||
<i class="fa fa-user"></i> 个人中心</a>
|
||
</li>
|
||
<li>
|
||
<a onclick="resetPwd()">
|
||
<i class="fa fa-key"></i> 修改密码</a>
|
||
</li>
|
||
<li>
|
||
<a onclick="switchSkin()">
|
||
<i class="fa fa-dashboard"></i> 切换主题</a>
|
||
</li>
|
||
<li>
|
||
<a onclick="toggleMenu()">
|
||
<i class="fa fa-toggle-off"></i> 左侧菜单</a>
|
||
</li>
|
||
<li class="divider"></li>
|
||
<li>
|
||
<a th:href="@{logout}">
|
||
<i class="fa fa-sign-out"></i> 退出登录</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
<div class="row content-tabs" th:classappend="${#bools.isFalse(tagsView)} ? |hide|">
|
||
<button class="roll-nav roll-left tabLeft">
|
||
<i class="fa fa-backward"></i>
|
||
</button>
|
||
<nav class="page-tabs menuTabs">
|
||
<div class="page-tabs-content">
|
||
<a href="javascript:;" class="active menuTab" th:data-id="@{/system/main}">首页</a>
|
||
</div>
|
||
</nav>
|
||
<button class="roll-nav roll-right tabRight">
|
||
<i class="fa fa-forward"></i>
|
||
</button>
|
||
<a href="javascript:void(0);" class="roll-nav roll-right tabReload"><i class="fa fa-refresh"></i> 刷新</a>
|
||
</div>
|
||
|
||
<a id="ax_close_max" class="ax_close_max" href="#" title="关闭全屏"> <i class="fa fa-times-circle-o"></i> </a>
|
||
|
||
<div class="row mainContent" id="content-main" th:classappend="${mainClass}">
|
||
<iframe class="RuoYi_iframe" name="iframe0" width="100%" height="100%" th:data-id="@{/system/main}"
|
||
th:src="@{/system/main}" frameborder="0" seamless></iframe>
|
||
</div>
|
||
|
||
<!-- <div th:if="${footer}" class="footer">-->
|
||
<!-- <div class="pull-right">© [[${copyrightYear}]] RuoYi Copyright </div>-->
|
||
<!-- </div>-->
|
||
</div>
|
||
<!--右侧部分结束-->
|
||
</div>
|
||
<!-- 全局js -->
|
||
<script th:src="@{/js/jquery.min.js}"></script>
|
||
<script th:src="@{/js/bootstrap.min.js}"></script>
|
||
<script th:src="@{/js/plugins/metisMenu/jquery.metisMenu.js}"></script>
|
||
<script th:src="@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"></script>
|
||
<script th:src="@{/js/jquery.contextMenu.min.js}"></script>
|
||
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
||
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.7.3}"></script>
|
||
<script th:src="@{/ruoyi/js/common.js?v=4.7.3}"></script>
|
||
<script th:src="@{/ruoyi/index.js?v=20201208}"></script>
|
||
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
|
||
<script th:src="@{/js/resize-tabs.js}"></script>
|
||
<script th:inline="javascript">
|
||
window.history.forward(1);
|
||
var ctx = [[@{/}]];
|
||
var lockscreen = [[${session.lockscreen}]];
|
||
if(lockscreen){window.top.location=ctx+"lockscreen";}
|
||
// 皮肤缓存
|
||
var skin = storage.get("skin");
|
||
// history(表示去掉地址的#)否则地址以"#"形式展示
|
||
var mode = "history";
|
||
// 历史访问路径缓存
|
||
var historyPath = storage.get("historyPath");
|
||
// 是否页签与菜单联动
|
||
var isLinkage = true;
|
||
// 是否锁屏
|
||
var lockMode = false;
|
||
// 解锁卡号
|
||
var codeString = "";
|
||
|
||
// // lockStart
|
||
// var container;
|
||
// function lock() {
|
||
// container = document.createElement('div');
|
||
// container.id = 'bgc';
|
||
// container.style.position = 'absolute';
|
||
// container.style.zIndex = '0';
|
||
// container.style.top = '0px';
|
||
// var bg = document.createElement('img');
|
||
// bg.src = "./img/lock-image.jpg";
|
||
// bg.style.width = '100%';
|
||
// bg.style.height = '100%';
|
||
// container.appendChild(bg);
|
||
//
|
||
// $("#wrapper").before(container);
|
||
// $("#wrapper").hide();
|
||
// window.focus();
|
||
// lockMode = true;
|
||
// };
|
||
//
|
||
// var count = 0;
|
||
// var lockCount = 180;
|
||
// $(document).mousemove(function () {
|
||
// count = 0;
|
||
// })
|
||
// $(document).mousedown(function () {
|
||
// count = 0;
|
||
// })
|
||
// $('.mainContent .RuoYi_iframe').each(function() {
|
||
// $(this).mousemove(function () {
|
||
// count = 0;
|
||
// })
|
||
// })
|
||
// setInterval(function () {
|
||
// if (!lockMode) {
|
||
// count++
|
||
// if (count == lockCount) {
|
||
// console.log("锁屏");
|
||
// $.ajax({
|
||
// type: "GET",
|
||
// url: ctx + "lockscreen",
|
||
// success: function (data) {
|
||
// // window.top.location = ctx + "lockscreen";
|
||
// lock();
|
||
// }
|
||
// });
|
||
// }
|
||
// }
|
||
// },1000);
|
||
//
|
||
// $(document).keydown(function(event) {
|
||
// if (lockMode) {
|
||
// if (event.keyCode == 13) {
|
||
// unlock();
|
||
// } else {
|
||
// codeString += String.fromCharCode(event.keyCode);
|
||
// }
|
||
// }
|
||
// });
|
||
//
|
||
// function unlock() {
|
||
// if ($.common.isEmpty(codeString)) {
|
||
// $.modal.msg("请重新刷卡");
|
||
// return;
|
||
// }
|
||
//
|
||
// var index = "";
|
||
// var config = {
|
||
// url: ctx + "unlockscreen",
|
||
// type: "post",
|
||
// dataType: "json",
|
||
// data: { cardId: codeString },
|
||
// beforeSend: function() {
|
||
// index = layer.load(2, {shade: false});
|
||
// },
|
||
// success: function(result) {
|
||
// if (result.code == web_status.SUCCESS) {
|
||
// // location.href = ctx + 'index';
|
||
// // window.top.location = ctx + 'index';
|
||
// container.remove();
|
||
// $("#wrapper").show();
|
||
// lockMode=false;
|
||
// } else {
|
||
// $.modal.msg(result.msg);
|
||
// }
|
||
// layer.close(index);
|
||
// codeString = "";
|
||
// count = 0;
|
||
// }
|
||
// };
|
||
// $.ajax(config);
|
||
// }
|
||
// // lockEnd
|
||
|
||
// 本地主题优先,未设置取系统配置
|
||
if($.common.isNotEmpty(skin)){
|
||
$("body").addClass(skin.split('|')[0]);
|
||
$("body").addClass(skin.split('|')[1]);
|
||
} else {
|
||
$("body").addClass([[${sideTheme}]]);
|
||
$("body").addClass([[${skinName}]]);
|
||
}
|
||
|
||
/* 用户管理-重置密码 */
|
||
function resetPwd() {
|
||
var url = ctx + 'system/user/profile/resetPwd';
|
||
$.modal.open("重置密码", url, '770', '380');
|
||
}
|
||
/* 切换主题 */
|
||
function switchSkin() {
|
||
layer.open({
|
||
type : 2,
|
||
shadeClose : true,
|
||
title : "切换主题",
|
||
area : ["530px", "386px"],
|
||
content : [ctx + "system/switchSkin", 'no']
|
||
})
|
||
}
|
||
|
||
/* 切换菜单 */
|
||
function toggleMenu() {
|
||
$.modal.confirm("确认要切换成左侧菜单吗?", function() {
|
||
$.get(ctx + 'system/menuStyle/default', function(result) {
|
||
window.location.reload();
|
||
});
|
||
})
|
||
}
|
||
|
||
/** 刷新时访问路径页签 */
|
||
function applyPath(url) {
|
||
var $dataObj = $('a[href$="' + decodeURI(url) + '"]');
|
||
$dataObj.click();
|
||
if (!$dataObj.hasClass("noactive")) {
|
||
$dataObj.parent("li").addClass("selected").parents("li").addClass("active").end().parents("ul").addClass("in");
|
||
}
|
||
// 顶部菜单同步处理
|
||
var tabStr = $dataObj.parents(".tab-pane").attr("id");
|
||
if ($.common.isNotEmpty(tabStr)) {
|
||
var sepIndex = tabStr.lastIndexOf('_');
|
||
var menuId = tabStr.substring(sepIndex + 1, tabStr.length);
|
||
$("#tab_" + menuId + " a").click();
|
||
}
|
||
}
|
||
|
||
$(function() {
|
||
var lockPath = storage.get('lockPath');
|
||
if($.common.equals("history", mode) && window.performance.navigation.type == 1) {
|
||
var url = storage.get('publicPath');
|
||
if ($.common.isNotEmpty(url)) {
|
||
applyPath(url);
|
||
} else {
|
||
$(".navbar-toolbar li a").eq(0).click();
|
||
}
|
||
} else if($.common.isNotEmpty(lockPath)) {
|
||
applyPath(lockPath);
|
||
storage.remove('lockPath');
|
||
} else {
|
||
var hash = location.hash;
|
||
if ($.common.isNotEmpty(hash)) {
|
||
var url = hash.substring(1, hash.length);
|
||
applyPath(url);
|
||
} else {
|
||
if($.common.equals("history", mode)) {
|
||
storage.set('publicPath', "");
|
||
}
|
||
$(".navbar-toolbar li a").eq(0).click();
|
||
}
|
||
}
|
||
|
||
/* 初始密码提示 */
|
||
if([[${isDefaultModifyPwd}]]) {
|
||
layer.confirm("您的密码还是初始密码,请修改密码!", {
|
||
icon: 0,
|
||
title: "安全提示",
|
||
btn: ['确认' , '取消'],
|
||
offset: ['30%']
|
||
}, function (index) {
|
||
resetPwd();
|
||
layer.close(index);
|
||
});
|
||
}
|
||
|
||
/* 过期密码提示 */
|
||
if([[${isPasswordExpired}]]) {
|
||
layer.confirm("您的密码已过期,请尽快修改密码!", {
|
||
icon: 0,
|
||
title: "安全提示",
|
||
btn: ['确认' , '取消'],
|
||
offset: ['30%']
|
||
}, function (index) {
|
||
resetPwd();
|
||
layer.close(index);
|
||
});
|
||
}
|
||
|
||
$("[data-toggle='tooltip']").tooltip();
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|