Commit 8f42e769 by fengshuonan

更新概览页面

parent c0c76c86
......@@ -33,7 +33,7 @@ import java.util.Map;
*/
@Controller
@RequestMapping("/blackboard")
public class BlackboardController extends BaseController {
public class DashboardController extends BaseController {
@Autowired
private INoticeService noticeService;
......@@ -45,6 +45,6 @@ public class BlackboardController extends BaseController {
public String blackboard(Model model) {
List<Map<String, Object>> notices = noticeService.list(null);
model.addAttribute("noticeList", notices);
return "/blackboard.html";
return "/dashboard.html";
}
}
<!DOCTYPE html>
<html lang="en">
@/**
@ * 本页面所用的模板变量
@ *
@ * otherCss : 引用这个layout的其他加载css
@ * otherJs : 引用这个layout的其他加载js
@ * title : 页面的标题
@ * layoutContent : 主页面的html内容
@ **/
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--Tell the browser to be responsive to screen width -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>${title!"Guns管理系统"}</title>
<meta name="description" content="Guns管理系统">
<meta name="author" content="stylefeng">
<!-- Favicon icon -->
<link rel="icon" type="image/png" sizes="16x16" href="${ctxPath}/assets/favicon.png">
<!-- ============================================================== -->
<!-- css资源文件 -->
<!-- ============================================================== -->
<!-- Bootstrap Core CSS -->
<link href="${ctxPath}/assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- toast提示框 CSS -->
<link href="${ctxPath}/assets/plugins/toast-master/css/jquery.toast.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="${ctxPath}/assets/static/css/style.css" rel="stylesheet">
<!-- You can change the theme colors from here -->
<link href="${ctxPath}/assets/static/css/colors/blue.css" id="theme" rel="stylesheet">
<!--其他css-->
${otherCss!}
</head>
<body class="fix-header fix-sidebar card-no-border">
<!-- ============================================================== -->
<!-- Preloader加载层 - style you can find in spinners.css -->
<!-- ============================================================== -->
<div class="preloader">
<svg class="circular" viewBox="25 25 50 50">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10"/>
</svg>
</div>
<!-- ============================================================== -->
<!-- Main wrapper - style you can find in pages.scss -->
<!-- ============================================================== -->
<div id="main-wrapper">
<!-- 顶部导航栏 - style you can find in pages.scss -->
@include("/common/_top_header.html"){}
<!-- 左侧菜单列表 - style you can find in sidebar.scss -->
@include("/common/_sidebar.html"){}
<!-- 主页正式内容开始 -->
@include("/common/_content.html",{layoutContent:layoutContent}){}
</div>
<!-- jquery -->
<script src="${ctxPath}/assets/plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap tether Core JavaScript -->
<script src="${ctxPath}/assets/plugins/bootstrap/js/tether.min.js"></script>
<script src="${ctxPath}/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
<!-- slimscrollbar scrollbar JavaScript(滚动条插件) -->
<script src="${ctxPath}/assets/static/js/jquery.slimscroll.js"></script>
<!--Wave Effects(点击按钮的波浪效果) -->
<script src="${ctxPath}/assets/static/js/waves.js"></script>
<!--Menu sidebar (左侧菜单切换插件) -->
<script src="${ctxPath}/assets/static/js/sidebarmenu.js"></script>
<!--stickey kit(页面头部工具栏固定) -->
<script src="${ctxPath}/assets/plugins/sticky-kit-master/dist/sticky-kit.min.js"></script>
<!--Guns JavaScript -->
<script src="${ctxPath}/assets/static/js/Feng.js"></script>
<!--Custom JavaScript -->
<script src="${ctxPath}/assets/static/js/custom.min.js"></script>
<!-- 右侧主题设置 -->
<script src="${ctxPath}/assets/plugins/styleswitcher/jQuery.style.switcher.js"></script>
<!-- 加入contextPath属性和session超时的配置 -->
<script type="text/javascript">
Feng.addCtx("${ctxPath}");
Feng.sessionTimeoutRegistry();
</script>
<!--其他js-->
${otherJs!}
</body>
</html>
<div class="page-wrapper">
<div class="container-fluid">
<!--面包屑和右侧边栏切换-->
<div class="row page-titles">
<div class="col-md-6 col-8 align-self-center">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="javascript:void(0)">主页</a></li>
<li class="breadcrumb-item active">${title}</li>
</ol>
</div>
<div class="col-md-6 col-4 align-self-center">
<button class="right-side-toggle waves-effect waves-light btn-info btn-circle btn-sm pull-right m-l-10"><i class="ti-settings text-white"></i></button>
</div>
</div>
<!--开始主页的内容-->
${layoutContent}
<!-- 右侧的边栏 配置主题等等 -->
<div class="right-sidebar">
<div class="slimscrollright">
<div class="rpanel-title"> Service Panel <span><i class="ti-close right-side-toggle"></i></span></div>
<div class="r-panel-body">
<ul id="themecolors" class="m-t-20">
<li><b>With Light sidebar</b></li>
<li><a href="javascript:void(0)" data-theme="default" class="default-theme">1</a></li>
<li><a href="javascript:void(0)" data-theme="green" class="green-theme">2</a></li>
<li><a href="javascript:void(0)" data-theme="red" class="red-theme">3</a></li>
<li><a href="javascript:void(0)" data-theme="blue" class="blue-theme working">4</a></li>
<li><a href="javascript:void(0)" data-theme="purple" class="purple-theme">5</a></li>
<li><a href="javascript:void(0)" data-theme="megna" class="megna-theme">6</a></li>
</ul>
</div>
</div>
</div>
</div>
<footer class="footer">
© 2018 Guns by stylefeng (https://gitee.com/stylefeng/guns)
</footer>
</div>
<aside class="left-sidebar">
<div class="scroll-sidebar">
<nav class="sidebar-nav">
<ul id="sidebarnav">
<li>
<a href="/blackboard"><i class="mdi mdi-access-point"></i>通知</a>
</li>
<li>
<a class="has-arrow" href="#" aria-expanded="false"><i class="mdi mdi-account-circle"></i><span class="hide-menu">系统管理</span></a>
<ul aria-expanded="false" class="collapse">
<li><a href="index.html">用户管理</a></li>
<li><a href="index2.html">角色管理</a></li>
<li><a href="index3.html">部门管理</a></li>
<li><a href="index4.html">字典管理</a></li>
</ul>
</li>
<li>
<a class="has-arrow " href="#" aria-expanded="false"><i class="mdi mdi-apps"></i><span class="hide-menu">后台管理 </span></a>
<ul aria-expanded="false" class="collapse">
<li><a href="index2.html">菜单管理</a></li>
<li>
<a class="has-arrow" href="#" aria-expanded="false">日志管理</a>
<ul aria-expanded="false" class="collapse">
<li><a href="log1.html">登录日志</a></li>
<li><a href="log2.html">业务日志</a></li>
</ul>
</li>
<li><a href="index3.html">监控管理</a></li>
<li><a href="index5.html">通知管理</a></li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="sidebar-footer">
<a href="" class="link" data-toggle="tooltip" title="编辑资料"><i class="mdi mdi-account"></i></a>
<a href="" class="link" data-toggle="tooltip" title="修改密码"><i class="ti-settings"></i></a>
<a href="" class="link" data-toggle="tooltip" title="退出登录"><i class="mdi mdi-power"></i></a>
</div>
</aside>
<header class="topbar">
<nav class="navbar top-navbar navbar-toggleable-sm navbar-light">
<!--页面左上角的logo部分-->
<div class="navbar-header">
<a class="navbar-brand" href="${ctxPath}/">
<b>
<i class=" wi wi-solar-eclipse"></i>
</b>
<span>
Guns管理系统
</span>
</a>
</div>
<!--页面顶部的导航条-->
<div class="navbar-collapse">
<!--顶部导航条左侧(收缩菜单按钮和站内消息通知)-->
<ul class="navbar-nav mr-auto mt-md-0 ">
<li class="nav-item"><a class="nav-link nav-toggler hidden-md-up text-muted waves-effect waves-dark" href="javascript:void(0)"><i class="ti-menu"></i></a></li>
<li class="nav-item"><a class="nav-link sidebartoggler hidden-sm-down text-muted waves-effect waves-dark" href="javascript:void(0)"><i class="icon-arrow-left-circle"></i></a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-muted waves-effect waves-dark" href="" id="2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i
class="mdi mdi-email"></i>
<div class="notify"><span class="heartbit"></span> <span class="point"></span></div>
</a>
<div class="dropdown-menu mailbox animated bounceInDown" aria-labelledby="2">
<ul>
<li>
<div class="drop-title">您有1条通知</div>
</li>
<li>
<div class="message-center">
<a href="https://gitee.com/stylefeng/guns" target="_blank">
<div class="mail-contnet">
<h5>Hi!Guns v5.2发布了!</h5>
</div>
</a>
</div>
</li>
</ul>
</div>
</li>
</ul>
<!--顶部导航条右侧(profile和多语言按钮) -->
<ul class="navbar-nav my-lg-0">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-muted waves-effect waves-dark" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><img
src="../assets/images/users/1.jpg" alt="user" class="profile-pic"/></a>
<div class="dropdown-menu dropdown-menu-right animated flipInY">
<ul class="dropdown-user">
<li>
<div class="dw-user-box">
<div class="u-img"><img src="../assets/images/users/1.jpg" alt="user"></div>
<div class="u-text">
<h4>stylefeng</h4>
<p class="text-muted">sn93\@qq.com</p><a href="profile.html" class="btn btn-rounded btn-danger btn-sm">个人信息</a></div>
</div>
</li>
<li role="separator" class="divider"></li>
<li><a href="#"><i class="ti-user"></i> 编辑资料</a></li>
<li role="separator" class="divider"></li>
<li><a href="#"><i class="ti-settings"></i> 修改密码</a></li>
<li role="separator" class="divider"></li>
<li><a href="#"><i class="fa fa-power-off"></i> 退出</a></li>
</ul>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-muted waves-effect waves-dark" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i
class="flag-icon flag-icon-us"></i></a>
<div class="dropdown-menu dropdown-menu-right animated bounceInDown">
<a class="dropdown-item" href="#"><i class="flag-icon flag-icon-cn"></i> Chinese</a>
<a class="dropdown-item" href="#"><i class="flag-icon flag-icon-us"></i> English</a>
</div>
</li>
</ul>
</div>
</nav>
</header>
@layout("/common/_container.html",{title:"概览页面"}){
<div class="row">
<div class="col-12">
@for(notice in noticeList){
<div class="alert alert-info" role="alert">
${notice.content}
</div>
@}
</div>
</div>
@}
......@@ -21,7 +21,7 @@
</div>
<section id="wrapper">
<div class="login-register" style="background-image:url(../assets/images/background/login-register.jpg);">
<div class="login-register" style="background-image:url(../assets/images/login-register.jpg);">
<div class="login-box card">
<div class="card-block">
<form class="form-horizontal form-material" id="loginform" action="index.html">
......
......@@ -47,7 +47,8 @@
width:100px;
table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */
}
td{
td {
width:100%;
word-break:keep-all;/* 不换行 */
white-space:nowrap;/* 不换行 */
......
// Theme color settings
$(document).ready(function () {
function store(name, val) {
if (typeof (Storage) !== "undefined") {
localStorage.setItem(name, val);
} else {
window.alert('Please use a modern browser to properly view this template!');
}
}
$("*[data-theme]").click(function (e) {
e.preventDefault();
var currentStyle = $(this).attr('data-theme');
store('theme', currentStyle);
$('#theme').attr({href: Feng.ctxPath + '/assets/static/css/colors/' + currentStyle + '.css'})
});
var currentTheme = get('theme');
if (currentTheme) {
$('#theme').attr({href: Feng.ctxPath + '/assets/static/css/colors/' + currentTheme + '.css'});
}
// color selector
$('#themecolors').on('click', 'a', function () {
$('#themecolors li a').removeClass('working');
$(this).addClass('working')
});
});
function get(name) {
}
$(document).ready(function () {
$("*[data-theme]").click(function (e) {
e.preventDefault();
var currentStyle = $(this).attr('data-theme');
store('theme', currentStyle);
$('#theme').attr({href: Feng.ctxPath + '/assets/static/css/colors/' + currentStyle + '.css'})
});
var currentTheme = get('theme');
if (currentTheme) {
$('#theme').attr({href: Feng.ctxPath + '/assets/static/css/colors/' + currentTheme + '.css'});
}
// color selector
$('#themecolors').on('click', 'a', function () {
$('#themecolors li a').removeClass('working');
$(this).addClass('working')
});
});
/**
* jQuery toast plugin created by Kamran Ahmed copyright MIT license 2014
*/
.jq-toast-wrap { display: block; position: fixed; width: 250px; pointer-events: none !important; margin: 0; padding: 0; letter-spacing: normal; z-index: 9000 !important; }
.jq-toast-wrap * { margin: 0; padding: 0; }
.jq-toast-wrap.bottom-left { bottom: 20px; left: 20px; }
.jq-toast-wrap.bottom-right { bottom: 20px; right: 40px; }
.jq-toast-wrap.top-left { top: 20px; left: 20px; }
.jq-toast-wrap.top-right { top: 20px; right: 40px; }
.jq-toast-single { display: block; box-shadow: 1px 0px 30px rgba(0, 0, 0, 0.1); width: 100%; padding: 15px; margin: 0px 0px 5px; font-size: 12px; font-family: arial, sans-serif; line-height: 17px; position: relative; pointer-events: all !important; background-color: #fff; color: #2b2b2b; }
.jq-toast-single h2 { font-family: arial, sans-serif; font-size: 14px; margin: 0px 0px 7px; background: none; color: inherit; line-height: inherit; letter-spacing: normal; }
.jq-toast-single a { color: #eee; text-decoration: none; font-weight: bold; border-bottom: 1px solid white; padding-bottom: 3px; font-size: 12px; }
.jq-toast-single ul { margin: 0px 0px 0px 15px; background: none; padding:0px; }
.jq-toast-single ul li { list-style-type: disc !important; line-height: 17px; background: none; margin: 0; padding: 0; letter-spacing: normal; }
.close-jq-toast-single { position: absolute; top: 3px; right: 7px; font-size: 14px; cursor: pointer; }
.jq-toast-loader { display: block; position: absolute; bottom: -3px; height: 5px; width: 0%; left: 0; border-radius: 5px; background: red; }
.jq-toast-loaded { width: 100%; }
.jq-has-icon { padding: 10px 10px 10px 50px; background-repeat: no-repeat; background-position: 10px; }
.jq-icon-info { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII='); background-color: #31708f; color: #000; border-color: #bce8f1; }
.jq-icon-warning { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII='); background-color: #8a6d3b; color: #fcf8e3; border-color: #faebcc; }
.jq-icon-error { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII='); background-color: #a94442; color: #f2dede; border-color: #ebccd1; }
.jq-icon-success { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg=='); color: #dff0d8; background-color: #3c763d; border-color: #d6e9c6; }
\ No newline at end of file
;
// jQuery toast plugin created by Kamran Ahmed copyright MIT license 2015
if ( typeof Object.create !== 'function' ) {
Object.create = function( obj ) {
function F() {}
F.prototype = obj;
return new F();
};
}
(function( $, window, document, undefined ) {
"use strict";
var Toast = {
_positionClasses : ['bottom-left', 'bottom-right', 'top-right', 'top-left', 'bottom-center', 'top-center', 'mid-center'],
_defaultIcons : ['success', 'error', 'info', 'warning'],
init: function (options, elem) {
this.prepareOptions(options, $.toast.options);
this.process();
},
prepareOptions: function(options, options_to_extend) {
var _options = {};
if ( ( typeof options === 'string' ) || ( options instanceof Array ) ) {
_options.text = options;
} else {
_options = options;
}
this.options = $.extend( {}, options_to_extend, _options );
},
process: function () {
this.setup();
this.addToDom();
this.position();
this.bindToast();
this.animate();
},
setup: function () {
var _toastContent = '';
this._toastEl = this._toastEl || $('<div></div>', {
class : 'jq-toast-single'
});
// For the loader on top
_toastContent += '<span class="jq-toast-loader"></span>';
if ( this.options.allowToastClose ) {
_toastContent += '<span class="close-jq-toast-single">&times;</span>';
};
if ( this.options.text instanceof Array ) {
if ( this.options.heading ) {
_toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>';
};
_toastContent += '<ul class="jq-toast-ul">';
for (var i = 0; i < this.options.text.length; i++) {
_toastContent += '<li class="jq-toast-li" id="jq-toast-item-' + i + '">' + this.options.text[i] + '</li>';
}
_toastContent += '</ul>';
} else {
if ( this.options.heading ) {
_toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>';
};
_toastContent += this.options.text;
}
this._toastEl.html( _toastContent );
if ( this.options.bgColor !== false ) {
this._toastEl.css("background-color", this.options.bgColor);
};
if ( this.options.textColor !== false ) {
this._toastEl.css("color", this.options.textColor);
};
if ( this.options.textAlign ) {
this._toastEl.css('text-align', this.options.textAlign);
}
if ( this.options.icon !== false ) {
this._toastEl.addClass('jq-has-icon');
if ( $.inArray(this.options.icon, this._defaultIcons) !== -1 ) {
this._toastEl.addClass('jq-icon-' + this.options.icon);
};
};
},
position: function () {
if ( ( typeof this.options.position === 'string' ) && ( $.inArray( this.options.position, this._positionClasses) !== -1 ) ) {
if ( this.options.position === 'bottom-center' ) {
this._container.css({
left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2,
bottom: 20
});
} else if ( this.options.position === 'top-center' ) {
this._container.css({
left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2,
top: 20
});
} else if ( this.options.position === 'mid-center' ) {
this._container.css({
left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2,
top: ( $(window).outerHeight() / 2 ) - this._container.outerHeight()/2
});
} else {
this._container.addClass( this.options.position );
}
} else if ( typeof this.options.position === 'object' ) {
this._container.css({
top : this.options.position.top ? this.options.position.top : 'auto',
bottom : this.options.position.bottom ? this.options.position.bottom : 'auto',
left : this.options.position.left ? this.options.position.left : 'auto',
right : this.options.position.right ? this.options.position.right : 'auto'
});
} else {
this._container.addClass( 'bottom-left' );
}
},
bindToast: function () {
var that = this;
this._toastEl.on('afterShown', function () {
that.processLoader();
});
this._toastEl.find('.close-jq-toast-single').on('click', function ( e ) {
e.preventDefault();
if( that.options.showHideTransition === 'fade') {
that._toastEl.trigger('beforeHide');
that._toastEl.fadeOut(function () {
that._toastEl.trigger('afterHidden');
});
} else if ( that.options.showHideTransition === 'slide' ) {
that._toastEl.trigger('beforeHide');
that._toastEl.slideUp(function () {
that._toastEl.trigger('afterHidden');
});
} else {
that._toastEl.trigger('beforeHide');
that._toastEl.hide(function () {
that._toastEl.trigger('afterHidden');
});
}
});
if ( typeof this.options.beforeShow == 'function' ) {
this._toastEl.on('beforeShow', function () {
that.options.beforeShow();
});
};
if ( typeof this.options.afterShown == 'function' ) {
this._toastEl.on('afterShown', function () {
that.options.afterShown();
});
};
if ( typeof this.options.beforeHide == 'function' ) {
this._toastEl.on('beforeHide', function () {
that.options.beforeHide();
});
};
if ( typeof this.options.afterHidden == 'function' ) {
this._toastEl.on('afterHidden', function () {
that.options.afterHidden();
});
};
},
addToDom: function () {
var _container = $('.jq-toast-wrap');
if ( _container.length === 0 ) {
_container = $('<div></div>',{
class: "jq-toast-wrap"
});
$('body').append( _container );
} else if ( !this.options.stack || isNaN( parseInt(this.options.stack, 10) ) ) {
_container.empty();
}
_container.find('.jq-toast-single:hidden').remove();
_container.append( this._toastEl );
if ( this.options.stack && !isNaN( parseInt( this.options.stack ), 10 ) ) {
var _prevToastCount = _container.find('.jq-toast-single').length,
_extToastCount = _prevToastCount - this.options.stack;
if ( _extToastCount > 0 ) {
$('.jq-toast-wrap').find('.jq-toast-single').slice(0, _extToastCount).remove();
};
}
this._container = _container;
},
canAutoHide: function () {
return ( this.options.hideAfter !== false ) && !isNaN( parseInt( this.options.hideAfter, 10 ) );
},
processLoader: function () {
// Show the loader only, if auto-hide is on and loader is demanded
if (!this.canAutoHide() || this.options.loader === false) {
return false;
}
var loader = this._toastEl.find('.jq-toast-loader');
// 400 is the default time that jquery uses for fade/slide
// Divide by 1000 for milliseconds to seconds conversion
var transitionTime = (this.options.hideAfter - 400) / 1000 + 's';
var loaderBg = this.options.loaderBg;
var style = loader.attr('style') || '';
style = style.substring(0, style.indexOf('-webkit-transition')); // Remove the last transition definition
style += '-webkit-transition: width ' + transitionTime + ' ease-in; \
-o-transition: width ' + transitionTime + ' ease-in; \
transition: width ' + transitionTime + ' ease-in; \
background-color: ' + loaderBg + ';';
loader.attr('style', style).addClass('jq-toast-loaded');
},
animate: function () {
var that = this;
this._toastEl.hide();
this._toastEl.trigger('beforeShow');
if ( this.options.showHideTransition.toLowerCase() === 'fade' ) {
this._toastEl.fadeIn(function ( ){
that._toastEl.trigger('afterShown');
});
} else if ( this.options.showHideTransition.toLowerCase() === 'slide' ) {
this._toastEl.slideDown(function ( ){
that._toastEl.trigger('afterShown');
});
} else {
this._toastEl.show(function ( ){
that._toastEl.trigger('afterShown');
});
}
if (this.canAutoHide()) {
var that = this;
window.setTimeout(function(){
if ( that.options.showHideTransition.toLowerCase() === 'fade' ) {
that._toastEl.trigger('beforeHide');
that._toastEl.fadeOut(function () {
that._toastEl.trigger('afterHidden');
});
} else if ( that.options.showHideTransition.toLowerCase() === 'slide' ) {
that._toastEl.trigger('beforeHide');
that._toastEl.slideUp(function () {
that._toastEl.trigger('afterHidden');
});
} else {
that._toastEl.trigger('beforeHide');
that._toastEl.hide(function () {
that._toastEl.trigger('afterHidden');
});
}
}, this.options.hideAfter);
};
},
reset: function ( resetWhat ) {
if ( resetWhat === 'all' ) {
$('.jq-toast-wrap').remove();
} else {
this._toastEl.remove();
}
},
update: function(options) {
this.prepareOptions(options, this.options);
this.setup();
this.bindToast();
}
};
$.toast = function(options) {
var toast = Object.create(Toast);
toast.init(options, this);
return {
reset: function ( what ) {
toast.reset( what );
},
update: function( options ) {
toast.update( options );
}
}
};
$.toast.options = {
text: '',
heading: '',
showHideTransition: 'fade',
allowToastClose: true,
hideAfter: 3000,
loader: true,
loaderBg: '#9EC600',
stack: 5,
position: 'bottom-left',
bgColor: false,
textColor: false,
textAlign: 'left',
icon: false,
beforeShow: function () {},
afterShown: function () {},
beforeHide: function () {},
afterHidden: function () {}
};
})( jQuery, window, document );
var Feng = {
ctxPath: "",
addCtx: function (ctx) {
if (this.ctxPath == "") {
this.ctxPath = ctx;
}
},
confirm: function (tip, ensure) {//询问框
parent.layer.confirm(tip, {
btn: ['确定', '取消']
}, function (index) {
ensure();
parent.layer.close(index);
}, function (index) {
parent.layer.close(index);
});
},
log: function (info) {
console.log(info);
},
alert: function (info, iconIndex) {
parent.layer.msg(info, {
icon: iconIndex
});
},
info: function (info) {
Feng.alert(info, 0);
},
success: function (info) {
Feng.alert(info, 1);
},
error: function (info) {
Feng.alert(info, 2);
},
infoDetail: function (title, info) {
var display = "";
if (typeof info == "string") {
display = info;
} else {
if (info instanceof Array) {
for (var x in info) {
display = display + info[x] + "<br/>";
}
} else {
display = info;
}
}
parent.layer.open({
title: title,
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['950px', '600px'], //宽高
content: '<div style="padding: 20px;">' + display + '</div>'
});
},
writeObj: function (obj) {
var description = "";
for (var i in obj) {
var property = obj[i];
description += i + " = " + property + ",";
}
layer.alert(description, {
skin: 'layui-layer-molv',
closeBtn: 0
});
},
showInputTree: function (inputId, inputTreeContentId, leftOffset, rightOffset) {
var onBodyDown = function (event) {
if (!(event.target.id == "menuBtn" || event.target.id == inputTreeContentId || $(event.target).parents("#" + inputTreeContentId).length > 0)) {
$("#" + inputTreeContentId).fadeOut("fast");
$("body").unbind("mousedown", onBodyDown);// mousedown当鼠标按下就可以触发,不用弹起
}
};
if (leftOffset == undefined && rightOffset == undefined) {
var inputDiv = $("#" + inputId);
var inputDivOffset = $("#" + inputId).offset();
$("#" + inputTreeContentId).css({
left: inputDivOffset.left + "px",
top: inputDivOffset.top + inputDiv.outerHeight() + "px"
}).slideDown("fast");
} else {
$("#" + inputTreeContentId).css({
left: leftOffset + "px",
top: rightOffset + "px"
}).slideDown("fast");
}
$("body").bind("mousedown", onBodyDown);
},
baseAjax: function (url, tip) {
var ajax = new $ax(Feng.ctxPath + url, function (data) {
Feng.success(tip + "成功!");
}, function (data) {
Feng.error(tip + "失败!" + data.responseJSON.message + "!");
});
return ajax;
},
changeAjax: function (url) {
return Feng.baseAjax(url, "修改");
},
zTreeCheckedNodes: function (zTreeId) {
var zTree = $.fn.zTree.getZTreeObj(zTreeId);
var nodes = zTree.getCheckedNodes();
var ids = "";
for (var i = 0, l = nodes.length; i < l; i++) {
ids += "," + nodes[i].id;
}
return ids.substring(1);
},
eventParseObject: function (event) {//获取点击事件的源对象
event = event ? event : window.event;
var obj = event.srcElement ? event.srcElement : event.target;
return $(obj);
},
sessionTimeoutRegistry: function () {
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded;charset=utf-8",
complete: function (XMLHttpRequest, textStatus) {
//通过XMLHttpRequest取得响应头,sessionstatus,
var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
if (sessionstatus == "timeout") {
//如果超时就处理 ,指定要跳转的页面
window.location = Feng.ctxPath + "/global/sessionError";
}
}
});
},
initValidator: function (formId, fields) {
$('#' + formId).bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: fields,
live: 'enabled',
message: '该字段不能为空'
});
},
underLineToCamel: function (str) {
var strArr = str.split('_');
for (var i = 1; i < strArr.length; i++) {
strArr[i] = strArr[i].charAt(0).toUpperCase() + strArr[i].substring(1);
}
var result = strArr.join('');
return result.charAt(0).toUpperCase() + result.substring(1);
},
randomNum: function (minNum, maxNum) {
switch (arguments.length) {
case 1:
return parseInt(Math.random() * minNum + 1, 10);
break;
case 2:
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
break;
default:
return 0;
break;
}
},
newCrontab: function (href, menuName) {
var dataUrl = href;
var needCreateCrontab = true;
// 轮询已有的标签,判断是否已经存在标签
parent.$('.J_menuTab').each(function () {
if ($(this).data('id') == dataUrl) {
if (!$(this).hasClass('active')) {
$(this).addClass('active').siblings('.J_menuTab').removeClass('active');
parent.MyCrontab.scrollToTab(this);
parent.MyCrontab.$('.J_mainContent .J_iframe').each(function () {
if ($(this).data('id') == dataUrl) {
$(this).show().siblings('.J_iframe').hide();
$(this).attr('src', $(this).attr('src'));
return false;
}
});
}
needCreateCrontab = false;
return false;
}
});
//创建标签
if (needCreateCrontab) {
var tabLink = '<a href="javascript:;" class="active J_menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
parent.$('.J_menuTab').removeClass('active');
parent.$('.J_menuTabs .page-tabs-content').append(tabLink);
var iframeContent = '<iframe class="J_iframe" name="iframe' + Feng.randomNum(100, 999) + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
parent.$('.J_mainContent').find('iframe.J_iframe').hide().parents('.J_mainContent').append(iframeContent);
parent.MyCrontab.scrollToTab($('.J_menuTab.active'));
}
}
};
!function(e){e.fn.extend({slimScroll:function(i){var o={width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},s=e.extend(o,i);return this.each(function(){function o(t){if(h){var t=t||window.event,i=0;t.wheelDelta&&(i=-t.wheelDelta/120),t.detail&&(i=t.detail/3);var o=t.target||t.srcTarget||t.srcElement;e(o).closest("."+s.wrapperClass).is(x.parent())&&r(i,!0),t.preventDefault&&!y&&t.preventDefault(),y||(t.returnValue=!1)}}function r(e,t,i){y=!1;var o=e,r=x.outerHeight()-R.outerHeight();if(t&&(o=parseInt(R.css("top"))+e*parseInt(s.wheelStep)/100*R.outerHeight(),o=Math.min(Math.max(o,0),r),o=e>0?Math.ceil(o):Math.floor(o),R.css({top:o+"px"})),v=parseInt(R.css("top"))/(x.outerHeight()-R.outerHeight()),o=v*(x[0].scrollHeight-x.outerHeight()),i){o=e;var a=o/x[0].scrollHeight*x.outerHeight();a=Math.min(Math.max(a,0),r),R.css({top:a+"px"})}x.scrollTop(o),x.trigger("slimscrolling",~~o),n(),c()}function a(e){window.addEventListener?(e.addEventListener("DOMMouseScroll",o,!1),e.addEventListener("mousewheel",o,!1)):document.attachEvent("onmousewheel",o)}function l(){f=Math.max(x.outerHeight()/x[0].scrollHeight*x.outerHeight(),m),R.css({height:f+"px"});var e=f==x.outerHeight()?"none":"block";R.css({display:e})}function n(){if(l(),clearTimeout(p),v==~~v){if(y=s.allowPageScroll,b!=v){var e=0==~~v?"top":"bottom";x.trigger("slimscroll",e)}}else y=!1;return b=v,f>=x.outerHeight()?void(y=!0):(R.stop(!0,!0).fadeIn("fast"),void(s.railVisible&&E.stop(!0,!0).fadeIn("fast")))}function c(){s.alwaysVisible||(p=setTimeout(function(){s.disableFadeOut&&h||u||d||(R.fadeOut("slow"),E.fadeOut("slow"))},1e3))}var h,u,d,p,g,f,v,b,w="<div></div>",m=30,y=!1,x=e(this);if(x.parent().hasClass(s.wrapperClass)){var C=x.scrollTop();if(R=x.closest("."+s.barClass),E=x.closest("."+s.railClass),l(),e.isPlainObject(i)){if("height"in i&&"auto"==i.height){x.parent().css("height","auto"),x.css("height","auto");var H=x.parent().parent().height();x.parent().css("height",H),x.css("height",H)}if("scrollTo"in i)C=parseInt(s.scrollTo);else if("scrollBy"in i)C+=parseInt(s.scrollBy);else if("destroy"in i)return R.remove(),E.remove(),void x.unwrap();r(C,!1,!0)}}else if(!(e.isPlainObject(i)&&"destroy"in i)){s.height="auto"==s.height?x.parent().height():s.height;var S=e(w).addClass(s.wrapperClass).css({position:"relative",overflow:"hidden",width:s.width,height:s.height});x.css({overflow:"hidden",width:s.width,height:s.height});var E=e(w).addClass(s.railClass).css({width:s.size,height:"100%",position:"absolute",top:0,display:s.alwaysVisible&&s.railVisible?"block":"none","border-radius":s.railBorderRadius,background:s.railColor,opacity:s.railOpacity,zIndex:90}),R=e(w).addClass(s.barClass).css({background:s.color,width:s.size,position:"absolute",top:0,opacity:s.opacity,display:s.alwaysVisible?"block":"none","border-radius":s.borderRadius,BorderRadius:s.borderRadius,MozBorderRadius:s.borderRadius,WebkitBorderRadius:s.borderRadius,zIndex:99}),D="right"==s.position?{right:s.distance}:{left:s.distance};E.css(D),R.css(D),x.wrap(S),x.parent().append(R),x.parent().append(E),s.railDraggable&&R.bind("mousedown",function(i){var o=e(document);return d=!0,t=parseFloat(R.css("top")),pageY=i.pageY,o.bind("mousemove.slimscroll",function(e){currTop=t+e.pageY-pageY,R.css("top",currTop),r(0,R.position().top,!1)}),o.bind("mouseup.slimscroll",function(e){d=!1,c(),o.unbind(".slimscroll")}),!1}).bind("selectstart.slimscroll",function(e){return e.stopPropagation(),e.preventDefault(),!1}),E.hover(function(){n()},function(){c()}),R.hover(function(){u=!0},function(){u=!1}),x.hover(function(){h=!0,n(),c()},function(){h=!1,c()}),x.bind("touchstart",function(e,t){e.originalEvent.touches.length&&(g=e.originalEvent.touches[0].pageY)}),x.bind("touchmove",function(e){if(y||e.originalEvent.preventDefault(),e.originalEvent.touches.length){var t=(g-e.originalEvent.touches[0].pageY)/s.touchScrollStep;r(t,!0),g=e.originalEvent.touches[0].pageY}}),l(),"bottom"===s.start?(R.css({top:x.outerHeight()-R.outerHeight()}),r(0,!0)):"top"!==s.start&&(r(e(s.start).position().top,null,!0),s.alwaysVisible||R.hide()),a(this)}}),this}}),e.fn.extend({slimscroll:e.fn.slimScroll})}(jQuery);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment