delete ruoyi 1.1.6
This commit is contained in:
@ -1,117 +0,0 @@
|
||||
/*!
|
||||
* ruoyi.css
|
||||
* Author: Ruoyi
|
||||
*/
|
||||
|
||||
/** <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD> */
|
||||
|
||||
.box {
|
||||
position: relative;
|
||||
border-radius: 3px;
|
||||
background: #ffffff;
|
||||
border-top: 3px solid #d2d6de;
|
||||
margin-bottom: 20px;
|
||||
width: 100%;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,0.1)
|
||||
}
|
||||
|
||||
.box-header:before,.box-body:before,.box-footer:before,.box-header:after,.box-body:after,.box-footer:after {
|
||||
content: " ";
|
||||
display: table
|
||||
}
|
||||
|
||||
.box-header:after,.box-body:after,.box-footer:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.btn-box-tool {
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
background: transparent;
|
||||
color: #97a0b3;
|
||||
}
|
||||
.open .btn-box-tool,
|
||||
.btn-box-tool:hover {
|
||||
color: #606c84;
|
||||
}
|
||||
|
||||
.box-main {
|
||||
margin: 0;
|
||||
border: 0;
|
||||
padding-top: 2px;
|
||||
border-radius: 0;
|
||||
box-shadow: none
|
||||
}
|
||||
|
||||
.box-main>.box-header {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 12px 10px 2px 15px
|
||||
}
|
||||
|
||||
.box-header .box-title {
|
||||
display: inline-block;
|
||||
font-size: 18px;
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.box-main>.box-header .box-title {
|
||||
font-size: 16px;
|
||||
margin-bottom: 13px;
|
||||
float: left
|
||||
}
|
||||
|
||||
.box-main>.box-header .box-title .fa {
|
||||
font-size: 14px;
|
||||
padding-right: 3px;
|
||||
margin-top: -2px
|
||||
}
|
||||
|
||||
.box-main>.box-header .box-tools {
|
||||
position: relative;
|
||||
top: -5px;
|
||||
right: 0
|
||||
}
|
||||
|
||||
.box-main>.box-header .box-tools .btn {
|
||||
padding: 3px 10px 5px 10px;
|
||||
font-size: 14px;
|
||||
margin-bottom: 2px
|
||||
}
|
||||
|
||||
.box-main>.box-header .box-tools .btn-box-tool {
|
||||
padding: 4px 2px
|
||||
}
|
||||
|
||||
.box-main form>.box-footer,.nav-main form>.box-footer {
|
||||
background: #fafafa
|
||||
}
|
||||
|
||||
.box-main form>.box-footer .row,.nav-main form>.box-footer .row {
|
||||
margin: 5px 0 5px -25px
|
||||
}
|
||||
|
||||
|
||||
/** select2 <20><>ʽ<EFBFBD><EFBFBD> */
|
||||
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
||||
background-color: #1AB394;
|
||||
border-color: #1AB394;
|
||||
padding: 1px 10px;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
||||
margin-right: 5px;
|
||||
color: rgba(255,255,255,0.7)
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.select2-container .select2-selection--single .select2-selection__rendered {
|
||||
padding-right: 10px
|
||||
}
|
||||
|
||||
|
@ -1,388 +0,0 @@
|
||||
/**
|
||||
* 菜单处理
|
||||
*/
|
||||
$(function() {
|
||||
// MetsiMenu
|
||||
$('#side-menu').metisMenu();
|
||||
|
||||
//固定菜单栏
|
||||
$(function() {
|
||||
$('.sidebar-collapse').slimScroll({
|
||||
height: '100%',
|
||||
railOpacity: 0.9,
|
||||
alwaysVisible: false
|
||||
});
|
||||
});
|
||||
|
||||
// 菜单切换
|
||||
$('.navbar-minimalize').click(function() {
|
||||
$("body").toggleClass("mini-navbar");
|
||||
SmoothlyMenu();
|
||||
});
|
||||
|
||||
$('#side-menu>li').click(function() {
|
||||
if ($('body').hasClass('mini-navbar')) {
|
||||
NavToggle();
|
||||
}
|
||||
});
|
||||
$('#side-menu>li li a').click(function() {
|
||||
if ($(window).width() < 769) {
|
||||
NavToggle();
|
||||
}
|
||||
});
|
||||
|
||||
$('.nav-close').click(NavToggle);
|
||||
|
||||
//ios浏览器兼容性处理
|
||||
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
|
||||
$('#content-main').css('overflow-y', 'auto');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$(window).bind("load resize",
|
||||
function() {
|
||||
if ($(this).width() < 769) {
|
||||
$('body').addClass('mini-navbar');
|
||||
$('.navbar-static-side').fadeIn();
|
||||
}
|
||||
});
|
||||
|
||||
function NavToggle() {
|
||||
$('.navbar-minimalize').trigger('click');
|
||||
}
|
||||
|
||||
function SmoothlyMenu() {
|
||||
if (!$('body').hasClass('mini-navbar')) {
|
||||
$('#side-menu').hide();
|
||||
setTimeout(function() {
|
||||
$('#side-menu').fadeIn(500);
|
||||
},
|
||||
100);
|
||||
} else if ($('body').hasClass('fixed-sidebar')) {
|
||||
$('#side-menu').hide();
|
||||
setTimeout(function() {
|
||||
$('#side-menu').fadeIn(500);
|
||||
},
|
||||
300);
|
||||
} else {
|
||||
$('#side-menu').removeAttr('style');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* iframe处理
|
||||
*/
|
||||
$(function() {
|
||||
//计算元素集合的总宽度
|
||||
function calSumWidth(elements) {
|
||||
var width = 0;
|
||||
$(elements).each(function() {
|
||||
width += $(this).outerWidth(true);
|
||||
});
|
||||
return width;
|
||||
}
|
||||
|
||||
//滚动到指定选项卡
|
||||
function scrollToTab(element) {
|
||||
var marginLeftVal = calSumWidth($(element).prevAll()),
|
||||
marginRightVal = calSumWidth($(element).nextAll());
|
||||
// 可视区域非tab宽度
|
||||
var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".menuTabs"));
|
||||
//可视区域tab宽度
|
||||
var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
|
||||
//实际滚动宽度
|
||||
var scrollVal = 0;
|
||||
if ($(".page-tabs-content").outerWidth() < visibleWidth) {
|
||||
scrollVal = 0;
|
||||
} else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
|
||||
if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
|
||||
scrollVal = marginLeftVal;
|
||||
var tabElement = element;
|
||||
while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content").outerWidth() - visibleWidth)) {
|
||||
scrollVal -= $(tabElement).prev().outerWidth();
|
||||
tabElement = $(tabElement).prev();
|
||||
}
|
||||
}
|
||||
} else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
|
||||
scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
|
||||
}
|
||||
$('.page-tabs-content').animate({
|
||||
marginLeft: 0 - scrollVal + 'px'
|
||||
},
|
||||
"fast");
|
||||
}
|
||||
|
||||
//查看左侧隐藏的选项卡
|
||||
function scrollTabLeft() {
|
||||
var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
|
||||
// 可视区域非tab宽度
|
||||
var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".menuTabs"));
|
||||
//可视区域tab宽度
|
||||
var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
|
||||
//实际滚动宽度
|
||||
var scrollVal = 0;
|
||||
if ($(".page-tabs-content").width() < visibleWidth) {
|
||||
return false;
|
||||
} else {
|
||||
var tabElement = $(".menuTab:first");
|
||||
var offsetVal = 0;
|
||||
while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) { //找到离当前tab最近的元素
|
||||
offsetVal += $(tabElement).outerWidth(true);
|
||||
tabElement = $(tabElement).next();
|
||||
}
|
||||
offsetVal = 0;
|
||||
if (calSumWidth($(tabElement).prevAll()) > visibleWidth) {
|
||||
while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
|
||||
offsetVal += $(tabElement).outerWidth(true);
|
||||
tabElement = $(tabElement).prev();
|
||||
}
|
||||
scrollVal = calSumWidth($(tabElement).prevAll());
|
||||
}
|
||||
}
|
||||
$('.page-tabs-content').animate({
|
||||
marginLeft: 0 - scrollVal + 'px'
|
||||
},
|
||||
"fast");
|
||||
}
|
||||
|
||||
//查看右侧隐藏的选项卡
|
||||
function scrollTabRight() {
|
||||
var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
|
||||
// 可视区域非tab宽度
|
||||
var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".menuTabs"));
|
||||
//可视区域tab宽度
|
||||
var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
|
||||
//实际滚动宽度
|
||||
var scrollVal = 0;
|
||||
if ($(".page-tabs-content").width() < visibleWidth) {
|
||||
return false;
|
||||
} else {
|
||||
var tabElement = $(".menuTab:first");
|
||||
var offsetVal = 0;
|
||||
while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) { //找到离当前tab最近的元素
|
||||
offsetVal += $(tabElement).outerWidth(true);
|
||||
tabElement = $(tabElement).next();
|
||||
}
|
||||
offsetVal = 0;
|
||||
while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
|
||||
offsetVal += $(tabElement).outerWidth(true);
|
||||
tabElement = $(tabElement).next();
|
||||
}
|
||||
scrollVal = calSumWidth($(tabElement).prevAll());
|
||||
if (scrollVal > 0) {
|
||||
$('.page-tabs-content').animate({
|
||||
marginLeft: 0 - scrollVal + 'px'
|
||||
},
|
||||
"fast");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//通过遍历给菜单项加上data-index属性
|
||||
$(".menuItem").each(function(index) {
|
||||
if (!$(this).attr('data-index')) {
|
||||
$(this).attr('data-index', index);
|
||||
}
|
||||
});
|
||||
|
||||
function menuItem() {
|
||||
// 获取标识数据
|
||||
var dataUrl = $(this).attr('href'),
|
||||
dataIndex = $(this).data('index'),
|
||||
menuName = $.trim($(this).text()),
|
||||
flag = true;
|
||||
if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
|
||||
|
||||
// 选项卡菜单已存在
|
||||
$('.menuTab').each(function() {
|
||||
if ($(this).data('id') == dataUrl) {
|
||||
if (!$(this).hasClass('active')) {
|
||||
$(this).addClass('active').siblings('.menuTab').removeClass('active');
|
||||
scrollToTab(this);
|
||||
// 显示tab对应的内容区
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == dataUrl) {
|
||||
$(this).show().siblings('.RuoYi_iframe').hide();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
// 选项卡菜单不存在
|
||||
if (flag) {
|
||||
var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
|
||||
$('.menuTab').removeClass('active');
|
||||
|
||||
// 添加选项卡对应的iframe
|
||||
var str1 = '<iframe class="RuoYi_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
|
||||
$('.mainContent').find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1);
|
||||
|
||||
// 添加选项卡
|
||||
$('.menuTabs .page-tabs-content').append(str);
|
||||
scrollToTab($('.menuTab.active'));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
$('.menuItem').on('click', menuItem);
|
||||
|
||||
// 关闭选项卡菜单
|
||||
function closeTab() {
|
||||
var closeTabId = $(this).parents('.menuTab').data('id');
|
||||
var currentWidth = $(this).parents('.menuTab').width();
|
||||
|
||||
// 当前元素处于活动状态
|
||||
if ($(this).parents('.menuTab').hasClass('active')) {
|
||||
|
||||
// 当前元素后面有同辈元素,使后面的一个元素处于活动状态
|
||||
if ($(this).parents('.menuTab').next('.menuTab').size()) {
|
||||
|
||||
var activeId = $(this).parents('.menuTab').next('.menuTab:eq(0)').data('id');
|
||||
$(this).parents('.menuTab').next('.menuTab:eq(0)').addClass('active');
|
||||
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == activeId) {
|
||||
$(this).show().siblings('.RuoYi_iframe').hide();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
var marginLeftVal = parseInt($('.page-tabs-content').css('margin-left'));
|
||||
if (marginLeftVal < 0) {
|
||||
$('.page-tabs-content').animate({
|
||||
marginLeft: (marginLeftVal + currentWidth) + 'px'
|
||||
},
|
||||
"fast");
|
||||
}
|
||||
|
||||
// 移除当前选项卡
|
||||
$(this).parents('.menuTab').remove();
|
||||
|
||||
// 移除tab对应的内容区
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == closeTabId) {
|
||||
$(this).remove();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 当前元素后面没有同辈元素,使当前元素的上一个元素处于活动状态
|
||||
if ($(this).parents('.menuTab').prev('.menuTab').size()) {
|
||||
var activeId = $(this).parents('.menuTab').prev('.menuTab:last').data('id');
|
||||
$(this).parents('.menuTab').prev('.menuTab:last').addClass('active');
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == activeId) {
|
||||
$(this).show().siblings('.RuoYi_iframe').hide();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// 移除当前选项卡
|
||||
$(this).parents('.menuTab').remove();
|
||||
|
||||
// 移除tab对应的内容区
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == closeTabId) {
|
||||
$(this).remove();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
// 当前元素不处于活动状态
|
||||
else {
|
||||
// 移除当前选项卡
|
||||
$(this).parents('.menuTab').remove();
|
||||
|
||||
// 移除相应tab对应的内容区
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == closeTabId) {
|
||||
$(this).remove();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
scrollToTab($('.menuTab.active'));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
$('.menuTabs').on('click', '.menuTab i', closeTab);
|
||||
|
||||
//关闭其他选项卡
|
||||
function closeOtherTabs() {
|
||||
$('.page-tabs-content').children("[data-id]").not(":first").not(".active").each(function() {
|
||||
$('.RuoYi_iframe[data-id="' + $(this).data('id') + '"]').remove();
|
||||
$(this).remove();
|
||||
});
|
||||
$('.page-tabs-content').css("margin-left", "0");
|
||||
}
|
||||
$('.tabCloseOther').on('click', closeOtherTabs);
|
||||
|
||||
//滚动到已激活的选项卡
|
||||
function showActiveTab() {
|
||||
scrollToTab($('.menuTab.active'));
|
||||
}
|
||||
$('.tabShowActive').on('click', showActiveTab);
|
||||
|
||||
// 点击选项卡菜单
|
||||
function activeTab() {
|
||||
if (!$(this).hasClass('active')) {
|
||||
var currentId = $(this).data('id');
|
||||
// 显示tab对应的内容区
|
||||
$('.mainContent .RuoYi_iframe').each(function() {
|
||||
if ($(this).data('id') == currentId) {
|
||||
$(this).show().siblings('.RuoYi_iframe').hide();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
$(this).addClass('active').siblings('.menuTab').removeClass('active');
|
||||
scrollToTab(this);
|
||||
}
|
||||
}
|
||||
|
||||
// 点击选项卡菜单
|
||||
$('.menuTabs').on('click', '.menuTab', activeTab);
|
||||
|
||||
//刷新iframe
|
||||
function refreshTab() {
|
||||
var currentId = $('.page-tabs-content').find('.active').attr('data-id');
|
||||
var target = $('.RuoYi_iframe[data-id="' + currentId + '"]');
|
||||
var url = target.attr('src');
|
||||
target.attr('src', url).ready();
|
||||
}
|
||||
|
||||
// 刷新按钮
|
||||
$('.tabReload').on('click', refreshTab);
|
||||
|
||||
$('.menuTabs').on('dblclick', '.menuTab', refreshTab);
|
||||
|
||||
// 左移按扭
|
||||
$('.tabLeft').on('click', scrollTabLeft);
|
||||
|
||||
// 右移按扭
|
||||
$('.tabRight').on('click', scrollTabRight);
|
||||
|
||||
// 关闭当前
|
||||
$('.tabCloseCurrent').on('click', function () {
|
||||
$('.page-tabs-content').find('.active i').trigger("click");
|
||||
});
|
||||
|
||||
// 关闭全部
|
||||
$('.tabCloseAll').on('click', function() {
|
||||
$('.page-tabs-content').children("[data-id]").not(":first").each(function() {
|
||||
$('.RuoYi_iframe[data-id="' + $(this).data('id') + '"]').remove();
|
||||
$(this).remove();
|
||||
});
|
||||
$('.page-tabs-content').children("[data-id]:first").each(function() {
|
||||
$('.RuoYi_iframe[data-id="' + $(this).data('id') + '"]').show();
|
||||
$(this).addClass("active");
|
||||
});
|
||||
$('.page-tabs-content').css("margin-left", "0");
|
||||
});
|
||||
|
||||
});
|
@ -1,183 +0,0 @@
|
||||
/**
|
||||
* 通用方法封装处理
|
||||
* Copyright (c) 2018 ruoyi
|
||||
*/
|
||||
|
||||
/** 消息状态码 */
|
||||
web_status = {
|
||||
SUCCESS: 0,
|
||||
FAIL: 500
|
||||
};
|
||||
|
||||
/** 弹窗状态码 */
|
||||
modal_status = {
|
||||
SUCCESS: "success",
|
||||
FAIL: "error",
|
||||
WARNING: "warning"
|
||||
};
|
||||
|
||||
/** 弹出层指定宽度 */
|
||||
function layer_show(title, url, w, h) {
|
||||
if (title == null || title == '') {
|
||||
title = false;
|
||||
};
|
||||
if (url == null || url == '') {
|
||||
url = "404.html";
|
||||
};
|
||||
if (w == null || w == '') {
|
||||
w = 800;
|
||||
};
|
||||
if (h == null || h == '') {
|
||||
h = ($(window).height() - 50);
|
||||
};
|
||||
layer.open({
|
||||
type: 2,
|
||||
area: [w + 'px', h + 'px'],
|
||||
fix: false,
|
||||
//不固定
|
||||
maxmin: true,
|
||||
shade: 0.4,
|
||||
title: title,
|
||||
content: url
|
||||
});
|
||||
}
|
||||
|
||||
/** 弹出层自动宽高 */
|
||||
function layer_showAuto(title, url) {
|
||||
layer_show(title, url, '', '');
|
||||
}
|
||||
|
||||
/** 关闭弹出框口 */
|
||||
function layer_close() {
|
||||
var index = parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(index);
|
||||
}
|
||||
|
||||
/** 对ajax的post方法再次封装 */
|
||||
_ajax_save = function(url, data) {
|
||||
var config = {
|
||||
url: url,
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: data,
|
||||
success: function(result) {
|
||||
handleSuccess(result);
|
||||
}
|
||||
};
|
||||
$.ajax(config)
|
||||
};
|
||||
|
||||
/** 对jquery的ajax方法再次封装 */
|
||||
_ajax = function(url, data, type) {
|
||||
var config = {
|
||||
url: url,
|
||||
type: type,
|
||||
dataType: "json",
|
||||
data: data,
|
||||
success: function(result) {
|
||||
simpleSuccess(result);
|
||||
}
|
||||
};
|
||||
$.ajax(config)
|
||||
};
|
||||
|
||||
/** 返回结果处理 */
|
||||
function simpleSuccess(result) {
|
||||
if (result.code == web_status.SUCCESS) {
|
||||
$.modalMsg(result.msg, modal_status.SUCCESS);
|
||||
$.refreshTable();
|
||||
} else {
|
||||
$.modalAlert(result.msg, modal_status.FAIL);
|
||||
}
|
||||
}
|
||||
|
||||
/** 操作结果处理 */
|
||||
function handleSuccess(result) {
|
||||
if (result.code == web_status.SUCCESS) {
|
||||
parent.layer.msg("新增成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
|
||||
$.parentReload();
|
||||
});
|
||||
} else {
|
||||
$.modalAlert(result.msg, modal_status.FAIL);
|
||||
}
|
||||
}
|
||||
|
||||
/** 时间格式化 */
|
||||
function formatDate(_date, _pattern) {
|
||||
var date = new Date(_date);
|
||||
var newDate = date.format(_pattern);
|
||||
return newDate;
|
||||
}
|
||||
|
||||
Date.prototype.format = function(format) {
|
||||
var date = {
|
||||
"M+" : this.getMonth() + 1,
|
||||
"d+" : this.getDate(),
|
||||
"h+" : this.getHours(),
|
||||
"m+" : this.getMinutes(),
|
||||
"s+" : this.getSeconds(),
|
||||
"q+" : Math.floor((this.getMonth() + 3) / 3),
|
||||
"S+" : this.getMilliseconds()
|
||||
};
|
||||
if (/(y+)/i.test(format)) {
|
||||
format = format.replace(RegExp.$1, (this.getFullYear() + '')
|
||||
.substr(4 - RegExp.$1.length));
|
||||
}
|
||||
for ( var k in date) {
|
||||
if (new RegExp("(" + k + ")").test(format)) {
|
||||
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k]
|
||||
: ("00" + date[k]).substr(("" + date[k]).length));
|
||||
}
|
||||
}
|
||||
return format;
|
||||
}
|
||||
|
||||
/** 创建选项卡 */
|
||||
function createMenuItem(dataUrl, menuName) {
|
||||
dataIndex = Math.floor(Math.random()*100),
|
||||
flag = true;
|
||||
if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
|
||||
var topWindow = $(window.parent.document);
|
||||
// 选项卡菜单已存在
|
||||
$('.menuTab', topWindow).each(function() {
|
||||
if ($(this).data('id') == dataUrl) {
|
||||
if (!$(this).hasClass('active')) {
|
||||
$(this).addClass('active').siblings('.menuTab').removeClass('active');
|
||||
$('.page-tabs-content').animate({ marginLeft: ""}, "fast");
|
||||
// 显示tab对应的内容区
|
||||
$('.mainContent .RuoYi_iframe', topWindow).each(function() {
|
||||
if ($(this).data('id') == dataUrl) {
|
||||
$(this).show().siblings('.RuoYi_iframe').hide();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
// 选项卡菜单不存在
|
||||
if (flag) {
|
||||
var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
|
||||
$('.menuTab', topWindow).removeClass('active');
|
||||
|
||||
// 添加选项卡对应的iframe
|
||||
var str1 = '<iframe class="RuoYi_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
|
||||
$('.mainContent', topWindow).find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1);
|
||||
|
||||
// 添加选项卡
|
||||
$('.menuTabs .page-tabs-content', topWindow).append(str);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** 设置全局ajax超时处理 */
|
||||
$.ajaxSetup({
|
||||
complete: function(XMLHttpRequest, textStatus) {
|
||||
if (textStatus == "parsererror") {
|
||||
$.modalConfirm("登陆超时!请重新登陆!", function() {
|
||||
window.location.href = ctx + "login";
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
@ -1,48 +0,0 @@
|
||||
/**
|
||||
* 表格通用方法封装处理
|
||||
* Copyright (c) 2018 ruoyi
|
||||
*/
|
||||
(function($) {
|
||||
$.extend({
|
||||
table: {
|
||||
_option: {},
|
||||
_params: {},
|
||||
init: function(options) {
|
||||
$.table._option = options;
|
||||
$.table._params = options.queryParams == null ? $.table.queryParams : options.queryParams;
|
||||
$('.bootstrap-table').bootstrapTable({
|
||||
url: options.url, // 请求后台的URL(*)
|
||||
contentType: "application/x-www-form-urlencoded", // 编码类型
|
||||
method: 'post', // 请求方式(*)
|
||||
toolbar: '#toolbar', // 工具按钮用哪个容器
|
||||
cache: false, // 是否使用缓存
|
||||
sortable: false, // 是否启用排序
|
||||
sortOrder: "asc", // 排序方式
|
||||
sortStable: true, // 设置为 true 将获得稳定的排序
|
||||
pagination: true, // 是否显示分页(*)
|
||||
sidePagination: "server", // 启用服务端分页
|
||||
pageNumber: 1, // 初始化加载第一页,默认第一页
|
||||
pageSize: 10, // 每页的记录行数(*)
|
||||
pageList: [10, 25, 50], // 可供选择的每页的行数(*)
|
||||
queryParams: $.table._params, // 传递参数(*)
|
||||
columns: options.columns // 显示列信息(*)
|
||||
});
|
||||
},
|
||||
queryParams: function(params) {
|
||||
return {
|
||||
// 传递参数查询参数
|
||||
pageSize: params.limit,
|
||||
pageNum: params.offset / params.limit + 1,
|
||||
searchValue: params.search,
|
||||
orderByColumn: params.sort,
|
||||
isAsc: params.order
|
||||
};
|
||||
},
|
||||
refresh: function() {
|
||||
$(".bootstrap-table").bootstrapTable('refresh', {
|
||||
url: $.table._option.url
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
@ -1,197 +0,0 @@
|
||||
/**
|
||||
* 通用方法封装处理
|
||||
* Copyright (c) 2018 ruoyi
|
||||
*/
|
||||
$(function(){
|
||||
// 消息窗体
|
||||
$.modalMsg = function(content, type) {
|
||||
if (type != undefined) {
|
||||
var icon = "";
|
||||
if (type == modal_status.WARNING) {
|
||||
icon = 0;
|
||||
}
|
||||
else if (type == modal_status.SUCCESS) {
|
||||
icon = 1;
|
||||
}
|
||||
else if (type == modal_status.FAIL) {
|
||||
icon = 2;
|
||||
}
|
||||
layer.msg(content, { icon: icon, time: 2000, shift: 0 });
|
||||
$(".layui-layer-msg").find('i.' + icon).parents('.layui-layer-msg').addClass('layui-layer-msg-' + type);
|
||||
} else {
|
||||
layer.msg(content);
|
||||
}
|
||||
}
|
||||
// 弹出窗体
|
||||
$.modalAlert = function(content, type) {
|
||||
var icon = "";
|
||||
if (type == modal_status.WARNING) {
|
||||
icon = 0;
|
||||
} else if (type == modal_status.SUCCESS) {
|
||||
icon = 1;
|
||||
} else if (type == modal_status.FAIL) {
|
||||
icon = 2;
|
||||
} else {
|
||||
icon = 3;
|
||||
}
|
||||
layer.alert(content, {
|
||||
icon: icon,
|
||||
title: "系统提示",
|
||||
btn: ['确认'],
|
||||
btnclass: ['btn btn-primary'],
|
||||
});
|
||||
}
|
||||
// 确认窗体
|
||||
$.modalConfirm = function (content, callBack) {
|
||||
layer.confirm(content, {
|
||||
icon: 3,
|
||||
title: "系统提示",
|
||||
btn: ['确认', '取消'],
|
||||
btnclass: ['btn btn-primary', 'btn btn-danger'],
|
||||
}, function () {
|
||||
callBack(true);
|
||||
}, function () {
|
||||
// callBack(false)
|
||||
});
|
||||
}
|
||||
// 关闭窗体
|
||||
$.modalClose = function () {
|
||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
||||
var $IsdialogClose = top.$("#layui-layer" + index).find('.layui-layer-btn').find("#IsdialogClose");
|
||||
var IsClose = $IsdialogClose.is(":checked");
|
||||
if ($IsdialogClose.length == 0) {
|
||||
IsClose = true;
|
||||
}
|
||||
if (IsClose) {
|
||||
parent.layer.close(index);
|
||||
} else {
|
||||
parent.location.reload();
|
||||
}
|
||||
}
|
||||
// 刷新父窗体
|
||||
$.parentReload = function () {
|
||||
parent.location.reload();
|
||||
return false;
|
||||
}
|
||||
// 初始bootstrap table数据
|
||||
$.initTable = function (_columns, _url) {
|
||||
$('.bootstrap-table').bootstrapTable({
|
||||
method: 'post', // 请求方式(*)
|
||||
dataType: "json", // 返回格式(*)
|
||||
url: _url, // 请求后台的URL(*)
|
||||
pagination: true, // 是否显示分页(*)
|
||||
pageSize: 10, // 每页的记录行数(*)
|
||||
pageNumber: 1, // 初始化加载第一页,默认第一页
|
||||
pageList: [10, 25, 50], // 可供选择的每页的行数(*)
|
||||
search: true, // 是否显示搜索框功能
|
||||
singleSelect: false, // 是否禁止多选
|
||||
iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
|
||||
toolbar: '#toolbar', // 指定工作栏
|
||||
sidePagination: "server", // 启用服务端分页
|
||||
showRefresh: true, // 是否显示刷新按钮
|
||||
showColumns: true, // 是否显示隐藏某列下拉框
|
||||
showToggle: true, // 是否显示详细视图和列表视图的切换按钮
|
||||
cache: false, // 是否使用缓存
|
||||
showExport: true, // 是否支持导出文件
|
||||
contentType: "application/x-www-form-urlencoded", // 编码类型
|
||||
queryParams: function(params) {
|
||||
return {
|
||||
// 传递参数查询参数
|
||||
pageSize: params.limit,
|
||||
pageNum: params.offset / params.limit + 1,
|
||||
searchValue: params.search,
|
||||
orderByColumn: params.sort,
|
||||
isAsc: params.order
|
||||
};
|
||||
},
|
||||
columns: _columns
|
||||
});
|
||||
}
|
||||
// 初始bootstrap table 自定义参数
|
||||
$.initTableParams = function (_columns, _url, _queryParams) {
|
||||
$('.bootstrap-table').bootstrapTable({
|
||||
method: 'post', // 请求方式(*)
|
||||
dataType: "json", // 返回格式(*)
|
||||
url: _url, // 请求后台的URL(*)
|
||||
pagination: true, // 是否显示分页(*)
|
||||
pageSize: 10, // 每页的记录行数(*)
|
||||
pageNumber: 1, // 初始化加载第一页,默认第一页
|
||||
pageList: [10, 25, 50], // 可供选择的每页的行数(*)
|
||||
search: true, // 是否显示搜索框功能
|
||||
singleSelect: false, // 是否禁止多选
|
||||
iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
|
||||
toolbar: '#toolbar', // 指定工作栏
|
||||
sidePagination: "server", // 启用服务端分页
|
||||
showRefresh: true, // 是否显示刷新按钮
|
||||
showColumns: true, // 是否显示隐藏某列下拉框
|
||||
showToggle: true, // 是否显示详细视图和列表视图的切换按钮
|
||||
cache: false, // 是否使用缓存
|
||||
showExport: true, // 是否支持导出文件
|
||||
contentType: "application/x-www-form-urlencoded", // 编码类型
|
||||
queryParams: _queryParams,
|
||||
columns: _columns
|
||||
});
|
||||
}
|
||||
//初始化表格树,并展开树
|
||||
$.initTreeTable = function (_id, _parentId, _columns, _url) {
|
||||
$.initTreeTable(_id, _parentId, _columns, _url, true);
|
||||
}
|
||||
//初始化表格树,_expandAll true展开 false 不展开
|
||||
$.initTreeTable = function (_id, _parentId, _columns, _url, _expandAll) {
|
||||
$('.bootstrap-table').bootstrapTreeTable({
|
||||
code : _id, // 用于设置父子关系
|
||||
parentCode : _parentId, // 用于设置父子关系
|
||||
type: 'get', // 请求方式(*)
|
||||
url: _url, // 请求后台的URL(*)
|
||||
ajaxParams : {}, // 请求数据的ajax的data属性
|
||||
expandColumn : '0', // 在哪一列上面显示展开按钮
|
||||
striped : false, // 是否各行渐变色
|
||||
bordered : true, // 是否显示边框
|
||||
expandAll : _expandAll, // 是否全部展开
|
||||
showRefresh: true, // 是否显示刷新按钮
|
||||
columns: _columns
|
||||
});
|
||||
}
|
||||
// 刷新bootstrap table数据
|
||||
$.refreshTable = function () {
|
||||
$('.bootstrap-table').bootstrapTable('refresh');
|
||||
}
|
||||
// 获取bootstrap table选中项
|
||||
$.getSelections = function (_id) {
|
||||
return $.map($('.bootstrap-table').bootstrapTable('getSelections'), function (row) {
|
||||
return row[_id];
|
||||
});
|
||||
}
|
||||
// 获取选中复选框项
|
||||
$.getCheckeds = function (_name) {
|
||||
var checkeds = "";
|
||||
$('input:checkbox[name="' + _name + '"]:checked').each(function(i) {
|
||||
if (0 == i) {
|
||||
checkeds = $(this).val();
|
||||
} else {
|
||||
checkeds += ("," + $(this).val());
|
||||
}
|
||||
});
|
||||
return checkeds;
|
||||
}
|
||||
// 获取选中复选框项
|
||||
$.getSelects = function (_name) {
|
||||
var selects = "";
|
||||
$('#' + _name + ' option:selected').each(function (i) {
|
||||
if (0 == i) {
|
||||
selects = $(this).val();
|
||||
} else {
|
||||
selects += ("," + $(this).val());
|
||||
}
|
||||
});
|
||||
return selects;
|
||||
}
|
||||
// 复选框事件绑定
|
||||
if ($.fn.select2 !== undefined) {
|
||||
$("select.form-control:not(.noselect2)").each(function () {
|
||||
$(this).select2().on("change", function () {
|
||||
$(this).valid();
|
||||
})
|
||||
})
|
||||
}
|
||||
});
|
@ -1,62 +0,0 @@
|
||||
|
||||
$(function() {
|
||||
validateRule();
|
||||
$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green-login"});
|
||||
$('.imgcode').click(function() {
|
||||
var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random();
|
||||
$(".imgcode").attr("src", url);
|
||||
});
|
||||
});
|
||||
|
||||
$.validator.setDefaults({
|
||||
submitHandler: function() {
|
||||
login();
|
||||
}
|
||||
});
|
||||
|
||||
function login() {
|
||||
var username = $("input[name='username']").val().trim();
|
||||
var password = $("input[name='password']").val().trim();
|
||||
var validateCode = $("input[name='validateCode']").val();
|
||||
var rememberMe = $("input[name='rememberme']").is(':checked');
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ctx + "login",
|
||||
data: {
|
||||
"username": username,
|
||||
"password": password,
|
||||
"validateCode" : validateCode,
|
||||
"rememberMe": rememberMe
|
||||
},
|
||||
success: function(r) {
|
||||
if (r.code == 0) {
|
||||
parent.location.href = ctx + 'index';
|
||||
} else {
|
||||
$('.imgcode').click();
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function validateRule() {
|
||||
var icon = "<i class='fa fa-times-circle'></i> ";
|
||||
$("#signupForm").validate({
|
||||
rules: {
|
||||
username: {
|
||||
required: true
|
||||
},
|
||||
password: {
|
||||
required: true
|
||||
}
|
||||
},
|
||||
messages: {
|
||||
username: {
|
||||
required: icon + "请输入您的用户名",
|
||||
},
|
||||
password: {
|
||||
required: icon + "请输入您的密码",
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
$("#form-job-add").validate({
|
||||
rules:{
|
||||
jobName:{
|
||||
required:true,
|
||||
},
|
||||
jobGroup:{
|
||||
required:true,
|
||||
},
|
||||
cronExpression:{
|
||||
required:true,
|
||||
},
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
_ajax_save(ctx + "monitor/job/save", $("#form-job-add").serialize());
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
$("#form-job-edit").validate({
|
||||
rules:{
|
||||
jobName:{
|
||||
required:true,
|
||||
},
|
||||
jobGroup:{
|
||||
required:true,
|
||||
},
|
||||
cronExpression:{
|
||||
required:true,
|
||||
},
|
||||
},
|
||||
submitHandler:function(form){
|
||||
edit();
|
||||
}
|
||||
});
|
||||
|
||||
function edit() {
|
||||
_ajax_save(ctx + "monitor/job/save", $("#form-job-edit").serialize());
|
||||
}
|
@ -1,119 +0,0 @@
|
||||
var prefix = ctx + "monitor/job"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'jobId',
|
||||
title: '任务编号'
|
||||
},
|
||||
{
|
||||
field: 'jobName',
|
||||
title: '任务名称'
|
||||
},
|
||||
{
|
||||
field: 'jobGroup',
|
||||
title: '任务组名'
|
||||
},
|
||||
{
|
||||
field: 'methodName',
|
||||
title: '方法名称'
|
||||
},
|
||||
{
|
||||
field: 'params',
|
||||
title: '方法参数'
|
||||
},
|
||||
{
|
||||
field: 'cronExpression',
|
||||
title: '执行表达式'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">暂停</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push(statusTools(row));
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.jobId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.jobId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
function statusTools(row) {
|
||||
if (row.status == 1) {
|
||||
return '<a class="btn btn-info btn-xs ' + statusFlag + '" href="#" onclick="start(this,\'' + row.jobId + '\')"><i class="fa fa-play"></i>启用</a> ';
|
||||
} else {
|
||||
return '<a class="btn btn-warning btn-xs ' + statusFlag + '" href="#" onclick="stop(this,\'' + row.jobId + '\')"><i class="fa fa-pause"></i>暂停</a> ';
|
||||
}
|
||||
}
|
||||
|
||||
/*调度任务-停用*/
|
||||
function stop(obj, jobId) {
|
||||
$.modalConfirm("确认要停用吗?", function() {
|
||||
_ajax(prefix + "/changeStatus/", { "jobId": jobId, "status": 1 }, "post");
|
||||
})
|
||||
}
|
||||
|
||||
/*调度任务-启用*/
|
||||
function start(obj, jobId) {
|
||||
$.modalConfirm("确认要启用吗?", function() {
|
||||
_ajax(prefix + "/changeStatus/", { "jobId": jobId, "status": 0 }, "post");
|
||||
})
|
||||
}
|
||||
|
||||
/*调度任务-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add';
|
||||
layer_showAuto("新增调度任务", url);
|
||||
}
|
||||
|
||||
/*调度任务-修改*/
|
||||
function edit(jobId) {
|
||||
var url = prefix + '/edit/' + jobId;
|
||||
layer_showAuto("修改调度任务", url);
|
||||
}
|
||||
|
||||
// 单条删除
|
||||
function remove(id) {
|
||||
$.modalConfirm("确定要删除选中调度任务吗?", function() {
|
||||
_ajax(prefix + "/remove/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("jobId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
||||
|
||||
//调度日志查询
|
||||
function jobLog(id) {
|
||||
var url = ctx + 'monitor/jobLog';
|
||||
createMenuItem(url, "调度日志");
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
var prefix = ctx + "monitor/jobLog"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'jobLogId',
|
||||
title: '任务日志编号'
|
||||
},
|
||||
{
|
||||
field: 'jobName',
|
||||
title: '任务名称'
|
||||
},
|
||||
{
|
||||
field: 'jobGroup',
|
||||
title: '任务组名'
|
||||
},
|
||||
{
|
||||
field: 'methodName',
|
||||
title: '方法名称'
|
||||
},
|
||||
{
|
||||
field: 'params',
|
||||
title: '方法参数'
|
||||
},
|
||||
{
|
||||
field: 'jobMessage',
|
||||
title: '日志信息'
|
||||
},
|
||||
{
|
||||
field: 'isException',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">异常</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.jobLogId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
// 单条删除
|
||||
function remove(jobLogId) {
|
||||
$.modalConfirm("确定要删除选中岗位吗?", function() {
|
||||
_ajax(prefix + "/remove/" + jobLogId, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("jobLogId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
var prefix = ctx + "monitor/logininfor"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'infoId',
|
||||
title: '访问编号'
|
||||
},
|
||||
{
|
||||
field: 'loginName',
|
||||
title: '登录名称'
|
||||
},
|
||||
{
|
||||
field: 'ipaddr',
|
||||
title: '主机'
|
||||
},
|
||||
{
|
||||
field: 'loginLocation',
|
||||
title: '登录地点'
|
||||
},
|
||||
{
|
||||
field: 'browser',
|
||||
title: '浏览器'
|
||||
},
|
||||
{
|
||||
field: 'os',
|
||||
title: '操作系统'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">成功</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">失败</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'msg',
|
||||
title: '操作信息'
|
||||
},
|
||||
{
|
||||
field: 'loginTime',
|
||||
title: '登录时间'
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("infoId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,84 +0,0 @@
|
||||
var prefix = ctx + "monitor/online"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'sessionId',
|
||||
title: '会话编号'
|
||||
},
|
||||
{
|
||||
field: 'loginName',
|
||||
title: '登录名称'
|
||||
},
|
||||
{
|
||||
field: 'deptName',
|
||||
title: '部门名称'
|
||||
},
|
||||
{
|
||||
field: 'ipaddr',
|
||||
title: '主机'
|
||||
},
|
||||
{
|
||||
field: 'longinLocation',
|
||||
title: '登录地点'
|
||||
},
|
||||
{
|
||||
field: 'browser',
|
||||
title: '浏览器'
|
||||
},
|
||||
{
|
||||
field: 'os',
|
||||
title: '操作系统'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 'on_line') {
|
||||
return '<span class="badge badge-primary">在线</span>';
|
||||
} else if (value == 'off_line') {
|
||||
return '<span class="badge badge-danger">离线</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'startTimestamp',
|
||||
title: '登录时间'
|
||||
},
|
||||
{
|
||||
field: 'lastAccessTime',
|
||||
title: '最后访问时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var msg = '<a class="btn btn-danger btn-xs ' + forceFlag + '" href="#" onclick="forceLogout(\'' + row.sessionId + '\')"><i class="fa fa-sign-out"></i>强退</a> ';
|
||||
return msg;
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
// 单条强退
|
||||
function forceLogout(id) {
|
||||
$.modalConfirm("确定要强制选中用户下线吗?", function() {
|
||||
_ajax(prefix + "/forceLogout/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量强退
|
||||
function batchForceLogout() {
|
||||
var rows = $.getSelections("sessionId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchForceLogout', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
var prefix = ctx + "monitor/operlog"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'operId',
|
||||
title: '日志编号'
|
||||
},
|
||||
{
|
||||
field: 'title',
|
||||
title: '模块'
|
||||
},
|
||||
{
|
||||
field: 'action',
|
||||
title: '功能'
|
||||
},
|
||||
{
|
||||
field: 'loginName',
|
||||
title: '登录名称'
|
||||
},
|
||||
{
|
||||
field: 'deptName',
|
||||
title: '部门名称'
|
||||
},
|
||||
{
|
||||
field: 'operIp',
|
||||
title: '主机'
|
||||
},
|
||||
{
|
||||
field: 'operLocation',
|
||||
title: '操作地点'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '操作状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">成功</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">异常</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'operTime',
|
||||
title: '操作时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="#" onclick="detail(\'' + row.operId + '\')"><i class="fa fa-search"></i>详细</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
/*操作日志-详细*/
|
||||
function detail(id) {
|
||||
var url = prefix + '/detail/' + id;
|
||||
layer_showAuto("操作日志详细", url);
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("operId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
$("#form-config-add").validate({
|
||||
rules:{
|
||||
configKey:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/config/checkConfigKeyUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"configKey" : function() {
|
||||
return $("input[name='configKey']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
configName:{
|
||||
required:true
|
||||
},
|
||||
configValue:{
|
||||
required:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"configKey": {
|
||||
remote: "参数键名已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
_ajax_save(ctx + "system/config/save", $('#form-config-add').serialize());
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
var prefix = ctx + "system/config"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field : 'configId',
|
||||
title : '参数主键'
|
||||
},
|
||||
{
|
||||
field : 'configName',
|
||||
title : '参数名称'
|
||||
},
|
||||
{
|
||||
field : 'configKey',
|
||||
title : '参数键名'
|
||||
},
|
||||
{
|
||||
field : 'configValue',
|
||||
title : '参数键值'
|
||||
},
|
||||
{
|
||||
field: 'configType',
|
||||
title: '系统内置',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 'Y') {
|
||||
return '<span class="badge badge-primary">是</span>';
|
||||
} else if (value == 'N') {
|
||||
return '<span class="badge badge-danger">否</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field : 'createDateTimeStr',
|
||||
title : '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.configId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.configId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
/*参数配置-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add';
|
||||
layer_showAuto("新增参数", url);
|
||||
}
|
||||
|
||||
/*参数配置-修改*/
|
||||
function edit(configId) {
|
||||
var url = prefix + '/edit/' + configId;
|
||||
layer_showAuto("修改参数", url);
|
||||
}
|
||||
|
||||
// 单条删除
|
||||
function remove(id) {
|
||||
$.modalConfirm("确定要删除选中参数配置吗?", function() {
|
||||
_ajax(prefix + "/remove/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("configId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
$("#form-config-edit").validate({
|
||||
rules:{
|
||||
configKey:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/config/checkConfigKeyUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"configId": function() {
|
||||
return $("input[name='configId']").val();
|
||||
},
|
||||
"configKey" : function() {
|
||||
return $("input[name='configKey']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
configName:{
|
||||
required:true
|
||||
},
|
||||
configValue:{
|
||||
required:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"configKey": {
|
||||
remote: "参数键名已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
function update() {
|
||||
_ajax_save(ctx + "system/config/save", $('#form-config-edit').serialize());
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
$("#form-dept-add").validate({
|
||||
rules:{
|
||||
deptName:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/dept/checkDeptNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"deptName" : function() {
|
||||
return $("input[name='deptName']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
orderNum:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"deptName": {
|
||||
remote: "部门已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
_ajax_save(ctx + "system/dept/save", $("#form-dept-add").serialize());
|
||||
}
|
||||
|
||||
/*部门管理-新增-选择父部门树*/
|
||||
function selectDeptTree() {
|
||||
var deptId = $("#treeId").val();
|
||||
var url = ctx + "system/dept/selectDeptTree/" + deptId;
|
||||
layer_show("选择部门", url, '380', '380');
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
var prefix = ctx + "system/dept"
|
||||
|
||||
window.onload = function() {
|
||||
loading();
|
||||
};
|
||||
|
||||
function loading() {
|
||||
var columns = [{
|
||||
field : 'deptName',
|
||||
title : '部门名称',
|
||||
},
|
||||
{
|
||||
field : 'orderNum',
|
||||
title : '排序',
|
||||
align : "center"
|
||||
},
|
||||
{
|
||||
field : 'status',
|
||||
title : '状态',
|
||||
align : "center",
|
||||
formatter : function(item, index) {
|
||||
if (item.status == '0') {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (item.status == '1') {
|
||||
return '<span class="badge badge-danger">停用</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createTimeStr',
|
||||
title : '创建时间',
|
||||
align : "center"
|
||||
},
|
||||
{
|
||||
title : '操作',
|
||||
align : 'center',
|
||||
formatter : function(row, index) {
|
||||
if(row.parentId != 0) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.deptId + '\')"><i class="fa fa-edit">编辑</i></a> ');
|
||||
actions.push('<a class="btn btn-info btn-xs ' + addFlag + '" href="#" onclick="add(\'' + row.deptId + '\')"><i class="fa fa-plus">新增</i></a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.deptId + '\')"><i class="fa fa-remove">删除</i></a>');
|
||||
return actions.join('');
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTreeTable('deptId', 'parentId', columns, url);
|
||||
}
|
||||
|
||||
/*部门管理-新增*/
|
||||
function add(deptId) {
|
||||
var url = prefix + '/add/' + deptId;
|
||||
layer_showAuto("新增部门", url);
|
||||
}
|
||||
|
||||
/*部门管理-修改*/
|
||||
function edit(deptId) {
|
||||
var url = prefix + '/edit/' + deptId;
|
||||
layer_showAuto("修改部门", url);
|
||||
}
|
||||
|
||||
/*部门管理-删除*/
|
||||
function remove(deptId) {
|
||||
layer.confirm("确定要删除部门吗?",{icon: 3, title:'提示'},function(index){
|
||||
$.ajax({
|
||||
type : 'get',
|
||||
url: prefix + "/remove/" + deptId,
|
||||
success : function(r) {
|
||||
if (r.code == 0) {
|
||||
layer.msg(r.msg, { icon: 1, time: 1000 });
|
||||
loading();
|
||||
} else {
|
||||
layer.alert(r.msg, { icon: 2, title: "系统提示" });
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
$("#form-dept-edit").validate({
|
||||
rules:{
|
||||
deptName:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/dept/checkDeptNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"deptId": function() {
|
||||
return $("input[name='deptId']").val();
|
||||
},
|
||||
"deptName": function() {
|
||||
return $("input[name='deptName']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
orderNum:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"deptName": {
|
||||
remote: "部门已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
function update() {
|
||||
_ajax_save(ctx + "system/dept/save", $("#form-dept-edit").serialize());
|
||||
}
|
||||
|
||||
/*部门管理-修改-选择部门树*/
|
||||
function selectDeptTree() {
|
||||
var deptId = $("#treeId").val();
|
||||
var url = ctx + "system/dept/selectDeptTree/" + deptId;
|
||||
layer_show("选择部门", url, '380', '380');
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
// 树结构初始化加载
|
||||
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
|
||||
callback:{onClick:function(event, treeId, treeNode){
|
||||
var treeId = treeNode.id;
|
||||
var treeName = treeNode.name;
|
||||
$("#treeId").val(treeId);
|
||||
$("#treeName").val(treeName);
|
||||
}}
|
||||
}, tree, loadTree = function(){
|
||||
$.get(ctx + "system/dept/treeData", function(data) {
|
||||
var treeName = $("#treeName").val();
|
||||
tree = $.fn.zTree.init($("#tree"), setting, data);
|
||||
// 展开第一级节点
|
||||
var nodes = tree.getNodesByParam("level", 0);
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
tree.expandNode(nodes[i], true, false, false);
|
||||
selectCheckNode(treeName,nodes[i]);
|
||||
}
|
||||
// 展开第二级节点
|
||||
nodes = tree.getNodesByParam("level", 1);
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
tree.expandNode(nodes[i], true, false, false);
|
||||
selectCheckNode(treeName,nodes[i]);
|
||||
}
|
||||
// 展开第二级节点
|
||||
nodes = tree.getNodesByParam("level", 2);
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
tree.expandNode(nodes[i], true, false, false);
|
||||
selectCheckNode(treeName,nodes[i]);
|
||||
}
|
||||
}, null, null, "正在加载,请稍后...");
|
||||
};
|
||||
|
||||
$(function() {
|
||||
loadTree();
|
||||
});
|
||||
|
||||
function selectCheckNode(treeName, node) {
|
||||
if(treeName == node.name){
|
||||
tree.selectNode(node, true);
|
||||
}
|
||||
}
|
||||
|
||||
$('#btnExpand').click(function() {
|
||||
tree.expandAll(true);
|
||||
});
|
||||
$('#btnCollapse').click(function() {
|
||||
tree.expandAll(false);
|
||||
});
|
||||
|
||||
function loadUser(){
|
||||
var treeId = $("#treeId").val();
|
||||
var treeName = $("#treeName").val();
|
||||
parent.$("#treeId").val(treeId);
|
||||
parent.$("#treeName").val(treeName);
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||
parent.layer.close(index);
|
||||
}
|
||||
|
||||
var lastValue = "", nodeList = [], key = $("#keyword");
|
||||
key.bind("focus", focusKey).bind("blur", blurKey).bind("change cut input propertychange", searchNode);
|
||||
key.bind("keydown", function (e){if(e.which == 13){searchNode();}});
|
||||
|
||||
function focusKey(e) {
|
||||
if (key.hasClass("empty")) {
|
||||
key.removeClass("empty");
|
||||
}
|
||||
}
|
||||
|
||||
function blurKey(e) {
|
||||
if (key.get(0).value === "") {
|
||||
key.addClass("empty");
|
||||
}
|
||||
searchNode(e);
|
||||
}
|
||||
|
||||
function searchNode() {
|
||||
var value = $.trim(key.get(0).value);
|
||||
var keyType = "name";
|
||||
if (lastValue === value) {
|
||||
return;
|
||||
}
|
||||
lastValue = value;
|
||||
var nodes = tree.getNodes();
|
||||
if (value == "") {
|
||||
showAllNode(nodes);
|
||||
return;
|
||||
}
|
||||
hideAllNode(nodes);
|
||||
nodeList = tree.getNodesByParamFuzzy(keyType, value);
|
||||
updateNodes(nodeList);
|
||||
}
|
||||
|
||||
function hideAllNode(nodes){
|
||||
var tree = $.fn.zTree.getZTreeObj("tree");
|
||||
nodes = tree.transformToArray(nodes);
|
||||
for(var i=nodes.length-1; i>=0; i--) {
|
||||
tree.hideNode(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function showAllNode(nodes){
|
||||
nodes = tree.transformToArray(nodes);
|
||||
for(var i=nodes.length-1; i>=0; i--) {
|
||||
if(nodes[i].getParentNode()!=null){
|
||||
tree.expandNode(nodes[i],false,false,false,false);
|
||||
}else{
|
||||
tree.expandNode(nodes[i],true,true,false,false);
|
||||
}
|
||||
tree.showNode(nodes[i]);
|
||||
showAllNode(nodes[i].children);
|
||||
}
|
||||
}
|
||||
|
||||
function updateNodes(nodeList) {
|
||||
tree.showNodes(nodeList);
|
||||
for(var i=0, l=nodeList.length; i<l; i++) {
|
||||
var treeNode = nodeList[i];
|
||||
showChildren(treeNode);
|
||||
showParent(treeNode)
|
||||
}
|
||||
}
|
||||
|
||||
function showChildren(treeNode){
|
||||
if (treeNode.isParent){
|
||||
for(var idx in treeNode.children){
|
||||
var node = treeNode.children[idx];
|
||||
tree.showNode(node);
|
||||
showChildren(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
function showParent(treeNode){
|
||||
var parentNode;
|
||||
while((parentNode = treeNode.getParentNode()) != null){
|
||||
tree.showNode(parentNode);
|
||||
tree.expandNode(parentNode, true, false, false);
|
||||
treeNode = parentNode;
|
||||
}
|
||||
}
|
||||
|
||||
function search($this) {
|
||||
$('#search').slideToggle(200);
|
||||
$('#btnShow').toggle();
|
||||
$('#btnHide').toggle();
|
||||
$('#keyword').focus();
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
$("#form-dict-add").validate({
|
||||
rules:{
|
||||
dictLabel:{
|
||||
required:true,
|
||||
},
|
||||
dictValue:{
|
||||
required:true,
|
||||
},
|
||||
dictSort:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
_ajax_save(ctx + "system/dict/data/save", $("#form-dict-add").serialize());
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
var prefix = ctx + "system/dict/data"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'dictCode',
|
||||
title: '字典编码'
|
||||
},
|
||||
{
|
||||
field: 'dictLabel',
|
||||
title: '字典标签'
|
||||
},
|
||||
{
|
||||
field: 'dictValue',
|
||||
title: '字典键值'
|
||||
},
|
||||
{
|
||||
field: 'dictSort',
|
||||
title: '字典排序'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">停用</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'remark',
|
||||
title: '备注'
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.dictCode + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.dictCode + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list?dictType=" + $("#dictType").val();
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
/*字典管理-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add/' + $("#dictType").val();
|
||||
layer_showAuto("新增字典类型", url);
|
||||
}
|
||||
|
||||
/*角色管理-修改*/
|
||||
function edit(dictCode) {
|
||||
var url = prefix + '/edit/' + dictCode;
|
||||
layer_showAuto("修改字典类型", url);
|
||||
}
|
||||
|
||||
/*字典列表-详细*/
|
||||
function detail(id) {
|
||||
createMenuItem(prefix + '/detail', "字典数据");
|
||||
}
|
||||
|
||||
//单条删除
|
||||
function remove(id) {
|
||||
$.modalConfirm("确定要删除选中字典数据吗?", function() {
|
||||
_ajax(prefix + "/remove/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("dictCode");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
$("#form-dict-edit").validate({
|
||||
rules:{
|
||||
dictLabel:{
|
||||
required:true,
|
||||
},
|
||||
dictValue:{
|
||||
required:true,
|
||||
},
|
||||
dictSort:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
function update() {
|
||||
_ajax_save(ctx + "system/dict/data/save", $("#form-dict-edit").serialize());
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
$("#form-dict-add").validate({
|
||||
rules:{
|
||||
dictName:{
|
||||
required:true,
|
||||
},
|
||||
dictType:{
|
||||
required:true,
|
||||
minlength: 5,
|
||||
remote: {
|
||||
url: ctx + "system/dict/checkDictTypeUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
name : function() {
|
||||
return $.trim($("#dictType").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"dictType": {
|
||||
remote: "该字典类型已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
_ajax_save(ctx + "system/dict/save", $("#form-dict-add").serialize());
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
$("#form-dict-edit").validate({
|
||||
rules:{
|
||||
dictName:{
|
||||
required:true,
|
||||
},
|
||||
dictType:{
|
||||
required:true,
|
||||
minlength: 5,
|
||||
remote: {
|
||||
url: ctx + "system/dict/checkDictTypeUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
dictId : function() {
|
||||
return $.trim($("#dictId").val());
|
||||
},
|
||||
dictType : function() {
|
||||
return $.trim($("#dictType").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"dictType": {
|
||||
remote: "该字典类型已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
function update() {
|
||||
_ajax_save(ctx + "system/dict/save", $("#form-dict-edit").serialize());
|
||||
}
|
@ -1,92 +0,0 @@
|
||||
var prefix = ctx + "system/dict"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'dictId',
|
||||
title: '字典主键'
|
||||
},
|
||||
{
|
||||
field: 'dictName',
|
||||
title: '字典名称'
|
||||
},
|
||||
{
|
||||
field: 'dictType',
|
||||
title: '字典类型',
|
||||
formatter: function(value, row, index) {
|
||||
return '<a href="#" onclick="detail(\'' + row.dictId + '\')">' + value +'</a>';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">停用</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'remark',
|
||||
title: '备注'
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.dictId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-info btn-xs ' + listFlag + '" href="#" onclick="detail(\'' + row.dictId + '\')"><i class="fa fa-list-ul"></i>列表</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.dictId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
/*字典管理-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add';
|
||||
layer_showAuto("新增字典类型", url);
|
||||
}
|
||||
|
||||
/*角色管理-修改*/
|
||||
function edit(dictId) {
|
||||
var url = prefix + '/edit/' + dictId;
|
||||
layer_showAuto("修改字典类型", url);
|
||||
}
|
||||
|
||||
/*字典列表-详细*/
|
||||
function detail(dictId) {
|
||||
var url = prefix + '/detail/' + dictId;
|
||||
createMenuItem(url, "字典数据");
|
||||
}
|
||||
|
||||
//单条删除
|
||||
function remove(id) {
|
||||
$.modalConfirm("确定要删除选中字典吗?", function() {
|
||||
_ajax(prefix + "/remove/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("dictId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
$("#form-menu-add").validate({
|
||||
rules:{
|
||||
menuName:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/menu/checkMenuNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"menuName" : function() {
|
||||
return $.trim($("#menuName").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
orderNum:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"menuName": {
|
||||
remote: "菜单已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
$(function() {
|
||||
$("input[name='icon']").focus(function() {
|
||||
$(".icon-drop").show();
|
||||
});
|
||||
$("#form-menu-add").click(function(event) {
|
||||
var obj = event.srcElement || event.target;
|
||||
if (!$(obj).is("input[name='icon']")) {
|
||||
$(".icon-drop").hide();
|
||||
}
|
||||
});
|
||||
$(".icon-drop").find(".ico-list i").on("click", function() {
|
||||
$('#icon').val($(this).attr('class'));
|
||||
});
|
||||
$('input').on('ifChecked', function(event){
|
||||
var menuType = $(event.target).val();
|
||||
if (menuType == "M") {
|
||||
$("#url").parents(".form-group").hide();
|
||||
$("#perms").parents(".form-group").hide();
|
||||
$("#icon").parents(".form-group").show();
|
||||
} else if (menuType == "C") {
|
||||
$("#url").parents(".form-group").show();
|
||||
$("#perms").parents(".form-group").show();
|
||||
$("#icon").parents(".form-group").hide();
|
||||
} else if (menuType == "F") {
|
||||
$("#url").parents(".form-group").hide();
|
||||
$("#perms").parents(".form-group").show();
|
||||
$("#icon").parents(".form-group").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function add() {
|
||||
_ajax_save(ctx + "system/menu/save", $("#form-menu-add").serialize());
|
||||
}
|
||||
|
||||
/*菜单管理-新增-选择菜单树*/
|
||||
function selectMenuTree() {
|
||||
var menuId = $("#treeId").val();
|
||||
if(menuId > 0)
|
||||
{
|
||||
var url = ctx + "system/menu/selectMenuTree/" + menuId;
|
||||
layer_show("选择菜单", url, '380', '380');
|
||||
}
|
||||
else
|
||||
{
|
||||
var url = ctx + "system/menu/selectMenuTree/1";
|
||||
layer_show("选择菜单", url, '380', '380');
|
||||
}
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
var menuType = $('input[name="menuType"]:checked').val();
|
||||
menuVisible(menuType);
|
||||
});
|
||||
|
||||
$("#form-menu-edit").validate({
|
||||
rules:{
|
||||
menuName:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/menu/checkMenuNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"menuId": function() {
|
||||
return $("input[name='menuId']").val();
|
||||
},
|
||||
"menuName": function() {
|
||||
return $("input[name='menuName']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
orderNum:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"menuName": {
|
||||
remote: "菜单已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
$(function() {
|
||||
$("input[name='icon']").focus(function() {
|
||||
$(".icon-drop").show();
|
||||
});
|
||||
$("#form-menu-edit").click(function(event) {
|
||||
var obj = event.srcElement || event.target;
|
||||
if (!$(obj).is("input[name='icon']")) {
|
||||
$(".icon-drop").hide();
|
||||
}
|
||||
});
|
||||
$(".icon-drop").find(".ico-list i").on("click",
|
||||
function() {
|
||||
$('#icon').val($(this).attr('class'));
|
||||
});
|
||||
$('input').on('ifChecked',
|
||||
function(event) {
|
||||
var menuType = $(event.target).val();
|
||||
menuVisible(menuType);
|
||||
});
|
||||
});
|
||||
|
||||
function menuVisible(menuType) {
|
||||
if (menuType == "M") {
|
||||
$("#url").parents(".form-group").hide();
|
||||
$("#perms").parents(".form-group").hide();
|
||||
$("#icon").parents(".form-group").show();
|
||||
} else if (menuType == "C") {
|
||||
$("#url").parents(".form-group").show();
|
||||
$("#perms").parents(".form-group").show();
|
||||
$("#icon").parents(".form-group").hide();
|
||||
} else if (menuType == "F") {
|
||||
$("#url").parents(".form-group").hide();
|
||||
$("#perms").parents(".form-group").show();
|
||||
$("#icon").parents(".form-group").hide();
|
||||
}
|
||||
}
|
||||
|
||||
function update() {
|
||||
_ajax_save(ctx + "system/menu/save", $("#form-menu-edit").serialize());
|
||||
}
|
||||
|
||||
/*菜单管理-修改-选择菜单树*/
|
||||
function selectMenuTree() {
|
||||
var menuId = $("#treeId").val();
|
||||
if(menuId > 0)
|
||||
{
|
||||
var url = ctx + "system/menu/selectMenuTree/" + menuId;
|
||||
layer_show("选择菜单", url, '380', '380');
|
||||
}
|
||||
else
|
||||
{
|
||||
$.modalAlert("主菜单不能选择", modal_status.FAIL);
|
||||
}
|
||||
}
|
@ -1,113 +0,0 @@
|
||||
var prefix = ctx + "system/menu"
|
||||
|
||||
window.onload = function() {
|
||||
loading();
|
||||
};
|
||||
|
||||
function loading() {
|
||||
var columns = [
|
||||
{
|
||||
title : '菜单名称',
|
||||
field : 'menuName',
|
||||
width : '20%',
|
||||
formatter : function(row, index) {
|
||||
if(row.icon == null || row == "") {
|
||||
return row.menuName;
|
||||
} else {
|
||||
return '<i class="' + row.icon + '"></i> <span class="nav-label">' + row.menuName + '</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field : 'orderNum',
|
||||
title : '排序',
|
||||
width : '10%',
|
||||
align : "center"
|
||||
},
|
||||
{
|
||||
field : 'url',
|
||||
title : '请求地址',
|
||||
width : '15%',
|
||||
align : "center"
|
||||
},
|
||||
{
|
||||
title : '类型',
|
||||
field : 'menuType',
|
||||
width : '10%',
|
||||
align : "center",
|
||||
formatter : function(item, index) {
|
||||
if (item.menuType == 'M') {
|
||||
return '<span class="label label-success">目录</span>';
|
||||
}
|
||||
if (item.menuType == 'C') {
|
||||
return '<span class="label label-primary">菜单</span>';
|
||||
}
|
||||
if (item.menuType == 'F') {
|
||||
return '<span class="label label-warning">按钮</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'visible',
|
||||
title: '可见',
|
||||
width : '10%',
|
||||
align : "center",
|
||||
formatter: function(row, index) {
|
||||
if (row.visible == 0) {
|
||||
return '<span class="badge badge-primary">显示</span>';
|
||||
} else if (row.visible == 1) {
|
||||
return '<span class="badge badge-danger">隐藏</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field : 'perms',
|
||||
title : '权限标识',
|
||||
width : '15%',
|
||||
align : "center",
|
||||
},
|
||||
{
|
||||
title : '操作',
|
||||
width : '20%',
|
||||
align : "center",
|
||||
formatter : function(row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" mce_href="#" onclick="edit(\'' + row.menuId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-info btn-xs ' + addFlag + '" href="#" onclick="add(\'' + row.menuId + '\')"><i class="fa fa-plus"></i>新增</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.menuId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTreeTable('menuId', 'parentId', columns, url, false);
|
||||
}
|
||||
|
||||
/*菜单管理-新增*/
|
||||
function add(menuId) {
|
||||
var url = prefix + '/add/' + menuId;
|
||||
layer_showAuto("新增菜单", url);
|
||||
}
|
||||
|
||||
/*菜单管理-修改*/
|
||||
function edit(menuId) {
|
||||
var url = prefix + '/edit/' + menuId;
|
||||
layer_showAuto("修改菜单", url);
|
||||
}
|
||||
|
||||
/*菜单管理-删除*/
|
||||
function remove(menuId) {
|
||||
layer.confirm("确定要删除菜单吗?",{icon: 3, title:'提示'},function(index){
|
||||
$.ajax({
|
||||
type : 'get',
|
||||
url: prefix + "/remove/" + menuId,
|
||||
success : function(r) {
|
||||
if (r.code == 0) {
|
||||
layer.msg(r.msg, { icon: 1, time: 1000 });
|
||||
loading();
|
||||
} else {
|
||||
layer.alert(r.msg, { icon: 2, title: "系统提示" });
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
@ -1,135 +0,0 @@
|
||||
// 树结构初始化加载
|
||||
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
|
||||
callback:{onClick:function(event, treeId, treeNode){
|
||||
var treeId = treeNode.id;
|
||||
var treeName = treeNode.name;
|
||||
$("#treeId").val(treeId);
|
||||
$("#treeName").val(treeName);
|
||||
}}
|
||||
}, tree, loadTree = function(){
|
||||
$.get(ctx + "system/menu/menuTreeData", function(data) {
|
||||
var treeName = $("#treeName").val();
|
||||
tree = $.fn.zTree.init($("#tree"), setting, data);
|
||||
// 展开第一级节点
|
||||
var nodes = tree.getNodesByParam("level", 0);
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
tree.expandNode(nodes[i], false, false, false);
|
||||
selectCheckNode(treeName,nodes[i]);
|
||||
}
|
||||
}, null, null, "正在加载,请稍后...");
|
||||
};
|
||||
|
||||
$(function() {
|
||||
loadTree();
|
||||
});
|
||||
|
||||
function selectCheckNode(treeName, node) {
|
||||
if(treeName == node.name){
|
||||
tree.selectNode(node, true);
|
||||
}
|
||||
}
|
||||
|
||||
$('#btnExpand').click(function() {
|
||||
tree.expandAll(true);
|
||||
});
|
||||
$('#btnCollapse').click(function() {
|
||||
tree.expandAll(false);
|
||||
});
|
||||
|
||||
function loadMenu(){
|
||||
var treeId = $("#treeId").val();
|
||||
var treeName = $("#treeName").val();
|
||||
parent.$("#treeId").val(treeId);
|
||||
parent.$("#treeName").val(treeName);
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||
parent.layer.close(index);
|
||||
}
|
||||
|
||||
var lastValue = "", nodeList = [], key = $("#keyword");
|
||||
key.bind("focus", focusKey).bind("blur", blurKey).bind("change cut input propertychange", searchNode);
|
||||
key.bind("keydown", function (e){if(e.which == 13){searchNode();}});
|
||||
|
||||
function focusKey(e) {
|
||||
if (key.hasClass("empty")) {
|
||||
key.removeClass("empty");
|
||||
}
|
||||
}
|
||||
|
||||
function blurKey(e) {
|
||||
if (key.get(0).value === "") {
|
||||
key.addClass("empty");
|
||||
}
|
||||
searchNode(e);
|
||||
}
|
||||
|
||||
function searchNode() {
|
||||
var value = $.trim(key.get(0).value);
|
||||
var keyType = "name";
|
||||
if (lastValue === value) {
|
||||
return;
|
||||
}
|
||||
lastValue = value;
|
||||
var nodes = tree.getNodes();
|
||||
if (value == "") {
|
||||
showAllNode(nodes);
|
||||
return;
|
||||
}
|
||||
hideAllNode(nodes);
|
||||
nodeList = tree.getNodesByParamFuzzy(keyType, value);
|
||||
updateNodes(nodeList);
|
||||
}
|
||||
|
||||
function hideAllNode(nodes){
|
||||
var tree = $.fn.zTree.getZTreeObj("tree");
|
||||
nodes = tree.transformToArray(nodes);
|
||||
for(var i=nodes.length-1; i>=0; i--) {
|
||||
tree.hideNode(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function showAllNode(nodes){
|
||||
nodes = tree.transformToArray(nodes);
|
||||
for(var i=nodes.length-1; i>=0; i--) {
|
||||
if(nodes[i].getParentNode()!=null){
|
||||
tree.expandNode(nodes[i],false,false,false,false);
|
||||
}else{
|
||||
tree.expandNode(nodes[i],true,true,false,false);
|
||||
}
|
||||
tree.showNode(nodes[i]);
|
||||
showAllNode(nodes[i].children);
|
||||
}
|
||||
}
|
||||
|
||||
function updateNodes(nodeList) {
|
||||
tree.showNodes(nodeList);
|
||||
for(var i=0, l=nodeList.length; i<l; i++) {
|
||||
var treeNode = nodeList[i];
|
||||
showChildren(treeNode);
|
||||
showParent(treeNode)
|
||||
}
|
||||
}
|
||||
|
||||
function showChildren(treeNode){
|
||||
if (treeNode.isParent){
|
||||
for(var idx in treeNode.children){
|
||||
var node = treeNode.children[idx];
|
||||
tree.showNode(node);
|
||||
showChildren(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
function showParent(treeNode){
|
||||
var parentNode;
|
||||
while((parentNode = treeNode.getParentNode()) != null){
|
||||
tree.showNode(parentNode);
|
||||
tree.expandNode(parentNode, true, false, false);
|
||||
treeNode = parentNode;
|
||||
}
|
||||
}
|
||||
|
||||
function search($this) {
|
||||
$('#search').slideToggle(200);
|
||||
$('#btnShow').toggle();
|
||||
$('#btnHide').toggle();
|
||||
$('#keyword').focus();
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
$("#form-post-add").validate({
|
||||
rules:{
|
||||
postCode:{
|
||||
required:true,
|
||||
},
|
||||
postName:{
|
||||
required:true,
|
||||
},
|
||||
postSort:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
/** 岗位管理-新增岗位 */
|
||||
function add() {
|
||||
_ajax_save(ctx + "system/post/save", $("#form-post-add").serialize());
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
$("#form-post-edit").validate({
|
||||
rules:{
|
||||
postCode:{
|
||||
required:true,
|
||||
},
|
||||
postName:{
|
||||
required:true,
|
||||
},
|
||||
postSort:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
submitHandler:function(form){
|
||||
edit();
|
||||
}
|
||||
});
|
||||
|
||||
/** 岗位管理-修改岗位 */
|
||||
function edit() {
|
||||
_ajax_save(ctx + "system/post/save", $("#form-post-edit").serialize());
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
var prefix = ctx + "system/post"
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'postId',
|
||||
title: '岗位编号'
|
||||
},
|
||||
{
|
||||
field: 'postCode',
|
||||
title: '岗位编码'
|
||||
},
|
||||
{
|
||||
field: 'postName',
|
||||
title: '岗位名称'
|
||||
},
|
||||
{
|
||||
field: 'postSort',
|
||||
title: '显示顺序'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">停用</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.postId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.postId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
/*岗位管理-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add';
|
||||
layer_showAuto("新增岗位", url);
|
||||
}
|
||||
|
||||
/*岗位管理-修改*/
|
||||
function edit(postId) {
|
||||
var url = prefix + '/edit/' + postId;
|
||||
layer_showAuto("修改岗位", url);
|
||||
}
|
||||
|
||||
// 单条删除
|
||||
function remove(id) {
|
||||
$.modalConfirm("确定要删除选中岗位吗?", function() {
|
||||
_ajax(prefix + "/remove/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("postId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,103 +0,0 @@
|
||||
// 树结构初始化加载
|
||||
var setting = {
|
||||
check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}},
|
||||
view:{selectedMulti:false,nameIsHTML: true},
|
||||
data:{simpleData:{enable:true},key:{title:"title"}},
|
||||
callback:{
|
||||
beforeClick: function (treeId, treeNode, clickFlag) {
|
||||
var menuTrees = $.fn.zTree.getZTreeObj(treeId);
|
||||
menuTrees.checkNode(treeNode, !treeNode.checked, true, true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}, menuTrees, loadTree = function(){
|
||||
$.get(ctx + "system/menu/roleMenuTreeData", function(data) {
|
||||
menuTrees = $.fn.zTree.init($("#menuTrees"), setting, data); //.expandAll(true);
|
||||
}, null, null, "正在加载,请稍后...");
|
||||
};loadTree();
|
||||
|
||||
$("#form-role-add").validate({
|
||||
rules:{
|
||||
roleName:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/role/checkRoleNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"roleName" : function() {
|
||||
return $.trim($("#roleName").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
roleKey:{
|
||||
required:true,
|
||||
},
|
||||
roleSort:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"roleName": {
|
||||
remote: "角色已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function getCheckeds() {
|
||||
var menuIds = "";
|
||||
var treeNodes = menuTrees.getCheckedNodes(true);
|
||||
for (var i = 0; i < treeNodes.length; i++) {
|
||||
if (0 == i) {
|
||||
menuIds = treeNodes[i].id;
|
||||
} else {
|
||||
menuIds += ("," + treeNodes[i].id);
|
||||
}
|
||||
}
|
||||
return menuIds;
|
||||
}
|
||||
|
||||
function add() {
|
||||
var roleName = $("input[name='roleName']").val();
|
||||
var roleKey = $("input[name='roleKey']").val();
|
||||
var roleSort = $("input[name='roleSort']").val();
|
||||
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
|
||||
var remark = $("input[name='remark']").val();
|
||||
var menuIds = getCheckeds();
|
||||
$.ajax({
|
||||
cache : true,
|
||||
type : "POST",
|
||||
url : ctx + "system/role/save",
|
||||
data : {
|
||||
"roleName": roleName,
|
||||
"roleKey": roleKey,
|
||||
"roleSort": roleSort,
|
||||
"status": status,
|
||||
"remark": remark,
|
||||
"menuIds": menuIds
|
||||
},
|
||||
async : false,
|
||||
error : function(request) {
|
||||
$.modalAlert("系统错误", modal_status.FAIL);
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg("新增成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
|
||||
$.parentReload();
|
||||
});
|
||||
} else {
|
||||
$.modalAlert(data.msg, modal_status.FAIL);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
// 树结构初始化加载
|
||||
var setting = {
|
||||
check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}},
|
||||
view:{selectedMulti:false,nameIsHTML: true},
|
||||
data:{simpleData:{enable:true},key:{title:"title"}},
|
||||
callback:{
|
||||
beforeClick: function (treeId, treeNode, clickFlag) {
|
||||
var menuTrees = $.fn.zTree.getZTreeObj(treeId);
|
||||
menuTrees.checkNode(treeNode, !treeNode.checked, true, true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}, menuTrees, loadTree = function(){
|
||||
$.get(ctx + "system/menu/roleMenuTreeData?roleId=" + $("#roleId").val(), function(data) {
|
||||
menuTrees = $.fn.zTree.init($("#menuTrees"), setting, data); //.expandAll(true);
|
||||
}, null, null, "正在加载,请稍后...");
|
||||
};loadTree();
|
||||
|
||||
$("#form-role-edit").validate({
|
||||
rules:{
|
||||
roleName:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/role/checkRoleNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"roleId": function() {
|
||||
return $("input[name='roleId']").val();
|
||||
},
|
||||
"roleName": function() {
|
||||
return $("input[name='roleName']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
roleKey:{
|
||||
required:true,
|
||||
},
|
||||
roleSort:{
|
||||
required:true,
|
||||
digits:true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"roleName": {
|
||||
remote: "角色已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
function getCheckeds() {
|
||||
var menuIds = "";
|
||||
var treeNodes = menuTrees.getCheckedNodes(true);
|
||||
for (var i = 0; i < treeNodes.length; i++) {
|
||||
if (0 == i) {
|
||||
menuIds = treeNodes[i].id;
|
||||
} else {
|
||||
menuIds += ("," + treeNodes[i].id);
|
||||
}
|
||||
}
|
||||
return menuIds;
|
||||
}
|
||||
|
||||
function update() {
|
||||
var roleId = $("input[name='roleId']").val();
|
||||
var roleName = $("input[name='roleName']").val();
|
||||
var roleKey = $("input[name='roleKey']").val();
|
||||
var roleSort = $("input[name='roleSort']").val();
|
||||
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
|
||||
var remark = $("input[name='remark']").val();
|
||||
var menuIds = getCheckeds();
|
||||
$.ajax({
|
||||
cache : true,
|
||||
type : "POST",
|
||||
url : ctx + "system/role/save",
|
||||
data : {
|
||||
"roleId": roleId,
|
||||
"roleName": roleName,
|
||||
"roleKey": roleKey,
|
||||
"roleSort": roleSort,
|
||||
"status": status,
|
||||
"remark": remark,
|
||||
"menuIds": menuIds
|
||||
},
|
||||
async : false,
|
||||
error : function(request) {
|
||||
$.modalAlert("系统错误", modal_status.FAIL);
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg("修改成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
|
||||
$.parentReload();
|
||||
});
|
||||
} else {
|
||||
$.modalAlert(data.msg, modal_status.FAIL);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
@ -1,101 +0,0 @@
|
||||
var prefix = ctx + "system/role"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'roleId',
|
||||
title: '角色编号'
|
||||
},
|
||||
{
|
||||
field: 'roleName',
|
||||
title: '角色名称'
|
||||
},
|
||||
{
|
||||
field: 'roleKey',
|
||||
title: '权限字符'
|
||||
},
|
||||
{
|
||||
field: 'roleSort',
|
||||
title: '显示顺序'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == 0) {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == 1) {
|
||||
return '<span class="badge badge-danger">禁用</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.roleId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.roleId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
/*角色管理-搜索*/
|
||||
function search() {
|
||||
$('.bootstrap-table').bootstrapTable('refresh', queryParams);
|
||||
}
|
||||
|
||||
function queryParams(params) {
|
||||
return {
|
||||
// 传递参数查询参数
|
||||
pageSize: params.limit,
|
||||
pageNum: params.offset / params.limit + 1,
|
||||
searchValue: params.search,
|
||||
orderByColumn: params.sort,
|
||||
isAsc: params.order,
|
||||
roleName: $("#roleName").val(),
|
||||
roleKey: $("#roleKey").val(),
|
||||
status: $("#status option:selected").val()
|
||||
};
|
||||
}
|
||||
|
||||
/*角色管理-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add';
|
||||
layer_showAuto("新增角色", url);
|
||||
}
|
||||
|
||||
/*角色管理-修改*/
|
||||
function edit(roleId) {
|
||||
var url = prefix + '/edit/' + roleId;
|
||||
layer_showAuto("修改角色", url);
|
||||
}
|
||||
|
||||
// 单条删除
|
||||
function remove(id) {
|
||||
$.modalConfirm("确定要删除选中角色吗?", function() {
|
||||
_ajax(prefix + "/remove/" + id, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("roleId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,138 +0,0 @@
|
||||
$("#form-user-add").validate({
|
||||
rules:{
|
||||
loginName:{
|
||||
required:true,
|
||||
minlength: 2,
|
||||
maxlength: 20,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkLoginNameUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
name : function() {
|
||||
return $.trim($("#loginName").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function(data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
userName:{
|
||||
required:true,
|
||||
},
|
||||
deptName:{
|
||||
required:true,
|
||||
},
|
||||
password:{
|
||||
required:true,
|
||||
minlength: 5,
|
||||
maxlength: 20
|
||||
},
|
||||
email:{
|
||||
required:true,
|
||||
email:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkEmailUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
name: function () {
|
||||
return $.trim($("#email").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function (data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
phonenumber:{
|
||||
required:true,
|
||||
isPhone:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkPhoneUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
name: function () {
|
||||
return $.trim($("#phonenumber").val());
|
||||
}
|
||||
},
|
||||
dataFilter: function (data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"loginName": {
|
||||
remote: "用户已经存在"
|
||||
},
|
||||
"email": {
|
||||
remote: "Email已经存在"
|
||||
},
|
||||
"phonenumber":{
|
||||
remote: "手机号码已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
add();
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
var userId = $("input[name='userId']").val();
|
||||
var deptId = $("input[name='deptId']").val();
|
||||
var loginName = $("input[name='loginName']").val();
|
||||
var userName = $("input[name='userName']").val();
|
||||
var password = $("input[name='password']").val();
|
||||
var email = $("input[name='email']").val();
|
||||
var phonenumber = $("input[name='phonenumber']").val();
|
||||
var sex = $("#sex option:selected").val();
|
||||
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
|
||||
var roleIds = $.getCheckeds("role");
|
||||
var postIds = $.getSelects("post");
|
||||
$.ajax({
|
||||
cache : true,
|
||||
type : "POST",
|
||||
url : ctx + "system/user/save",
|
||||
data : {
|
||||
"userId": userId,
|
||||
"deptId": deptId,
|
||||
"loginName": loginName,
|
||||
"userName": userName,
|
||||
"password": password,
|
||||
"email": email,
|
||||
"phonenumber": phonenumber,
|
||||
"sex": sex,
|
||||
"status": status,
|
||||
"roleIds": roleIds,
|
||||
"postIds": postIds
|
||||
},
|
||||
async : false,
|
||||
error : function(request) {
|
||||
$.modalAlert("系统错误", modal_status.FAIL);
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg("新增成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
|
||||
$.parentReload();
|
||||
});
|
||||
} else {
|
||||
$.modalAlert(data.msg, modal_status.FAIL);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*用户管理-新增-选择部门树*/
|
||||
function selectDeptTree() {
|
||||
var treeId = $("#treeId").val();
|
||||
var deptId = treeId == null || treeId == "" ? "100" : treeId;
|
||||
var url = ctx + "system/dept/selectDeptTree/" + deptId;
|
||||
layer_show("选择部门", url, '380', '380');
|
||||
}
|
@ -1,111 +0,0 @@
|
||||
$("#form-user-edit").validate({
|
||||
rules:{
|
||||
userName:{
|
||||
required:true,
|
||||
},
|
||||
deptName:{
|
||||
required:true,
|
||||
},
|
||||
email:{
|
||||
required:true,
|
||||
email:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkEmailUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"userId": function() {
|
||||
return $("input[name='userId']").val();
|
||||
},
|
||||
"email": function() {
|
||||
return $("input[name='email']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function (data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
phonenumber:{
|
||||
required:true,
|
||||
isPhone:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkPhoneUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"userId": function() {
|
||||
return $("input[name='userId']").val();
|
||||
},
|
||||
"phonenumber": function() {
|
||||
return $("input[name='phonenumber']").val();
|
||||
}
|
||||
},
|
||||
dataFilter: function (data, type) {
|
||||
if (data == "0") return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"email": {
|
||||
remote: "Email已经存在"
|
||||
},
|
||||
"phonenumber":{
|
||||
remote: "手机号码已经存在"
|
||||
}
|
||||
},
|
||||
submitHandler:function(form){
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
function update() {
|
||||
var userId = $("input[name='userId']").val();
|
||||
var deptId = $("input[name='deptId']").val();
|
||||
var userName = $("input[name='userName']").val();
|
||||
var email = $("input[name='email']").val();
|
||||
var phonenumber = $("input[name='phonenumber']").val();
|
||||
var sex = $("#sex option:selected").val();
|
||||
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
|
||||
var roleIds = $.getCheckeds("role");
|
||||
var postIds = $.getSelects("post");
|
||||
$.ajax({
|
||||
cache : true,
|
||||
type : "POST",
|
||||
url : ctx + "system/user/save",
|
||||
data : {
|
||||
"userId": userId,
|
||||
"deptId": deptId,
|
||||
"userName": userName,
|
||||
"email": email,
|
||||
"phonenumber": phonenumber,
|
||||
"sex": sex,
|
||||
"status": status,
|
||||
"roleIds": roleIds,
|
||||
"postIds": postIds
|
||||
},
|
||||
async : false,
|
||||
error : function(request) {
|
||||
$.modalAlert("系统错误", modal_status.FAIL);
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg("修改成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
|
||||
$.parentReload();
|
||||
});
|
||||
} else {
|
||||
$.modalAlert(data.msg, modal_status.FAIL);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*用户管理-修改-选择部门树*/
|
||||
function selectDeptTree() {
|
||||
var deptId = $("#treeId").val();
|
||||
var url = ctx + "system/dept/selectDeptTree/" + deptId;
|
||||
layer_show("选择部门", url, '380', '380');
|
||||
}
|
@ -1,221 +0,0 @@
|
||||
var prefix = ctx + "system/user"
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
$('body').layout({ west__size: 185 });
|
||||
queryUserList();
|
||||
queryDeptTreeDaTa();
|
||||
//加载文件输入框
|
||||
fileinputlist();
|
||||
});
|
||||
|
||||
|
||||
function queryUserList() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'userId',
|
||||
title: '用户ID'
|
||||
},
|
||||
{
|
||||
field: 'loginName',
|
||||
title: '登录名称'
|
||||
},
|
||||
{
|
||||
field: 'userName',
|
||||
title: '用户名称'
|
||||
},
|
||||
{
|
||||
field: 'dept.deptName',
|
||||
title: '部门'
|
||||
},
|
||||
{
|
||||
field: 'email',
|
||||
title: '邮箱'
|
||||
},
|
||||
{
|
||||
field: 'phonenumber',
|
||||
title: '手机'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
if (value == '0') {
|
||||
return '<span class="badge badge-primary">正常</span>';
|
||||
} else if (value == '1') {
|
||||
return '<span class="badge badge-danger">禁用</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.userId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.userId + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||
actions.push('<a class="btn btn-info btn-xs ' + resetPwdFlag + '" href="#" onclick="resetPwd(\'' + row.userId + '\')"><i class="fa fa-key"></i>重置</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTableParams(columns, url, queryParams);
|
||||
}
|
||||
|
||||
function queryParams(params) {
|
||||
return {
|
||||
// 传递参数查询参数
|
||||
pageSize: params.limit,
|
||||
pageNum: params.offset / params.limit + 1,
|
||||
searchValue: params.search,
|
||||
orderByColumn: params.sort,
|
||||
isAsc: params.order,
|
||||
deptId: $("#deptId").val(),
|
||||
parentId: $("#parentId").val()
|
||||
};
|
||||
}
|
||||
|
||||
function queryDeptTreeDaTa()
|
||||
{
|
||||
// 树结构初始化加载
|
||||
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
|
||||
callback:{onClick:function(event, treeId, treeNode){
|
||||
tree.expandNode(treeNode);
|
||||
$("#deptId").val(treeNode.id);
|
||||
$("#parentId").val(treeNode.pId);
|
||||
$('.bootstrap-table').bootstrapTable('refresh', queryParams);
|
||||
}}
|
||||
}, tree, loadTree = function(){
|
||||
$.get(ctx + "system/dept/treeData", function(data) {
|
||||
tree = $.fn.zTree.init($("#tree"), setting, data); //.expandAll(true);
|
||||
// 展开第一级节点
|
||||
var nodes = tree.getNodesByParam("level", 0);
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
tree.expandNode(nodes[i], true, false, false);
|
||||
}
|
||||
// 展开第二级节点
|
||||
nodes = tree.getNodesByParam("level", 1);
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
tree.expandNode(nodes[i], true, false, false);
|
||||
}
|
||||
}, null, null, "正在加载,请稍后...");
|
||||
};loadTree();
|
||||
|
||||
$('#btnExpand').click(function() {
|
||||
tree.expandAll(true);
|
||||
$(this).hide();
|
||||
$('#btnCollapse').show();
|
||||
});
|
||||
$('#btnCollapse').click(function() {
|
||||
tree.expandAll(false);
|
||||
$(this).hide();
|
||||
$('#btnExpand').show();
|
||||
});
|
||||
$('#btnRefresh').click(function() {
|
||||
loadTree();
|
||||
});
|
||||
}
|
||||
/** 初始化文件框*/
|
||||
function fileinputlist(){
|
||||
$('#uploadfile').fileinput({
|
||||
language: 'zh', //设置语言
|
||||
showPreview: false,//是否显示预览,不写默认为true
|
||||
showUpload: false, //是否显示上传按钮,跟随文本框的那个
|
||||
showRemove : true, //显示移除按钮,跟随文本框的那个
|
||||
showCaption: true,//是否显示标题,就是那个文本框
|
||||
uploadAsync : false, //默认异步上传
|
||||
elErrorContainer: '#upload-file-errors',
|
||||
maxFileCount: 1, //表示允许同时上传的最大文件个数
|
||||
maxFileSize: 102400, //单位为kb,如果为0表示不限制文件大小
|
||||
enctype: 'multipart/form-data',
|
||||
dropZoneTitle: '拖拽文件到这里 …<br>仅仅支持单个文件同时上传',//重新定义提示
|
||||
msgFilesTooMany: '选择上传的文件数量({n}) 超过允许的最大数值{m}!',
|
||||
allowedFileExtensions: ["xls", "xlsx"],
|
||||
uploadUrl: prefix+'/batchAdd'
|
||||
});
|
||||
}
|
||||
/*用户管理-部门*/
|
||||
function dept() {
|
||||
var url = ctx + "system/dept";
|
||||
createMenuItem(url, "部门管理");
|
||||
}
|
||||
|
||||
/*用户管理-删除*/
|
||||
function remove(userId) {
|
||||
$.modalConfirm("确定要删除选中用户吗?", function() {
|
||||
_ajax(prefix + "/remove/" + userId, "", "post");
|
||||
})
|
||||
}
|
||||
|
||||
/*用户管理-修改*/
|
||||
function edit(userId) {
|
||||
var url = prefix + '/edit/' + userId;
|
||||
layer_showAuto("修改用户", url);
|
||||
}
|
||||
|
||||
/*用户管理-新增*/
|
||||
function add() {
|
||||
var url = prefix + '/add';
|
||||
layer_showAuto("新增用户", url);
|
||||
}
|
||||
/*用户管理-批量新增*/
|
||||
function batchAdd() {
|
||||
//文件默认上传方法,传ID:uploadfile
|
||||
$('#uploadfile').fileinput("upload");
|
||||
//同步上传错误处理
|
||||
$('#uploadfile').on('filebatchuploaderror', function(event, data, msg) {
|
||||
// get message
|
||||
$.modalAlert(msg, "error");
|
||||
//重置
|
||||
$('#uploadfile').fileinput("clear");
|
||||
$('#uploadfile').fileinput("reset");
|
||||
$('#uploadfile').fileinput('refresh');
|
||||
$('#uploadfile').fileinput('enable');
|
||||
});
|
||||
//同步上传后从后台返回结果
|
||||
$('#uploadfile').on('filebatchuploadsuccess', function(event, data, previewId, index) {
|
||||
var result = data.response;
|
||||
if (result.code == 0) {
|
||||
//刷新数据表格
|
||||
$('.bootstrap-table').bootstrapTable('refresh');
|
||||
var count = result.msg;
|
||||
$.modalAlert("成功导入" +count+ "条数据","success");
|
||||
$('#uploadfile').fileinput('reset');
|
||||
$('#exampleModal').modal('hide');
|
||||
|
||||
} else {
|
||||
$.modalAlert(result.msg, "error");
|
||||
//重置
|
||||
$('#uploadfile').fileinput("clear");
|
||||
$('#uploadfile').fileinput("reset");
|
||||
$('#uploadfile').fileinput('refresh');
|
||||
$('#uploadfile').fileinput('enable');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/*用户管理-重置密码*/
|
||||
function resetPwd(userId) {
|
||||
var url = prefix + '/resetPwd/' + userId;
|
||||
layer_show("重置密码", url, '800', '300');
|
||||
}
|
||||
|
||||
// 批量删除用户
|
||||
function batchRemove() {
|
||||
var rows = $.getSelections("userId");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要删除的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||
_ajax(prefix + '/batchRemove', { "ids": rows }, "post");
|
||||
});
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
var prefix = ctx + "tool/gen"
|
||||
|
||||
$(function() {
|
||||
var columns = [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'tableName',
|
||||
title: '表名称'
|
||||
},
|
||||
{
|
||||
field: 'tableComment',
|
||||
title: '表描述'
|
||||
},
|
||||
{
|
||||
field: 'createDateTimeStr',
|
||||
title: '创建时间'
|
||||
},
|
||||
{
|
||||
field: 'updateDateTimeStr',
|
||||
title: '更新时间'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var msg = '<a class="btn btn-primary btn-xs" href="#" onclick="genCode(\'' + row.tableName + '\')"><i class="fa fa-bug"></i>生成代码</a> ';
|
||||
return msg;
|
||||
}
|
||||
}];
|
||||
var url = prefix + "/list";
|
||||
$.initTable(columns, url);
|
||||
});
|
||||
|
||||
// 生成代码
|
||||
function genCode(tableName) {
|
||||
$.modalConfirm("确定要生成" + tableName + "表代码吗?", function() {
|
||||
location.href = prefix + "/genCode/" + tableName;
|
||||
layer.msg('执行成功,正在生成代码请稍后…', {icon: 1});
|
||||
})
|
||||
}
|
||||
|
||||
//批量生成代码
|
||||
function batchGenCode() {
|
||||
var rows = $.getSelections("tableName");
|
||||
if (rows.length == 0) {
|
||||
$.modalMsg("请选择要生成的数据", modal_status.WARNING);
|
||||
return;
|
||||
}
|
||||
$.modalConfirm("确认要生成选中的" + rows.length + "条数据吗?", function() {
|
||||
location.href = prefix + "/batchGenCode?tables=" + JSON.stringify(rows);
|
||||
layer.msg('执行成功,正在生成代码请稍后…', {icon: 1});
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user