mirror of https://gitee.com/y_project/RuoYi.git
若依3.2
parent
04f2607398
commit
57fa243747
|
@ -6,10 +6,17 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.config.Global;
|
import com.ruoyi.common.config.Global;
|
||||||
import com.ruoyi.common.utils.file.FileUtils;
|
import com.ruoyi.common.utils.file.FileUtils;
|
||||||
|
import com.ruoyi.framework.config.ServerConfig;
|
||||||
|
import com.ruoyi.framework.util.FileUploadUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用请求处理
|
* 通用请求处理
|
||||||
|
@ -21,7 +28,21 @@ public class CommonController
|
||||||
{
|
{
|
||||||
private static final Logger log = LoggerFactory.getLogger(CommonController.class);
|
private static final Logger log = LoggerFactory.getLogger(CommonController.class);
|
||||||
|
|
||||||
@RequestMapping("common/download")
|
/**
|
||||||
|
* 文件上传路径
|
||||||
|
*/
|
||||||
|
public static final String UPLOAD_PATH = "/profile/upload/";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ServerConfig serverConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用下载请求
|
||||||
|
*
|
||||||
|
* @param fileName 文件名称
|
||||||
|
* @param delete 是否删除
|
||||||
|
*/
|
||||||
|
@GetMapping("common/download")
|
||||||
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
|
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
|
||||||
{
|
{
|
||||||
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
|
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
|
||||||
|
@ -31,7 +52,8 @@ public class CommonController
|
||||||
|
|
||||||
response.setCharacterEncoding("utf-8");
|
response.setCharacterEncoding("utf-8");
|
||||||
response.setContentType("multipart/form-data");
|
response.setContentType("multipart/form-data");
|
||||||
response.setHeader("Content-Disposition", "attachment;fileName=" + setFileDownloadHeader(request, realFileName));
|
response.setHeader("Content-Disposition",
|
||||||
|
"attachment;fileName=" + setFileDownloadHeader(request, realFileName));
|
||||||
FileUtils.writeBytes(filePath, response.getOutputStream());
|
FileUtils.writeBytes(filePath, response.getOutputStream());
|
||||||
if (delete)
|
if (delete)
|
||||||
{
|
{
|
||||||
|
@ -44,6 +66,31 @@ public class CommonController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用上传请求
|
||||||
|
*/
|
||||||
|
@PostMapping("/common/upload")
|
||||||
|
@ResponseBody
|
||||||
|
public AjaxResult uploadFile(MultipartFile file) throws Exception
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 上传文件路径
|
||||||
|
String filePath = Global.getUploadPath();
|
||||||
|
// 上传并返回新文件名称
|
||||||
|
String fileName = FileUploadUtils.upload(filePath, file);
|
||||||
|
String url = serverConfig.getUrl() + UPLOAD_PATH + fileName;
|
||||||
|
AjaxResult ajax = AjaxResult.success();
|
||||||
|
ajax.put("fileName", fileName);
|
||||||
|
ajax.put("url", url);
|
||||||
|
return ajax;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return AjaxResult.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException
|
public String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException
|
||||||
{
|
{
|
||||||
final String agent = request.getHeader("USER-AGENT");
|
final String agent = request.getHeader("USER-AGENT");
|
||||||
|
|
|
@ -181,4 +181,16 @@ public class SysRoleController extends BaseController
|
||||||
{
|
{
|
||||||
return prefix + "/tree";
|
return prefix + "/tree";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色状态修改
|
||||||
|
*/
|
||||||
|
@Log(title = "角色管理", businessType = BusinessType.UPDATE)
|
||||||
|
@RequiresPermissions("system:role:edit")
|
||||||
|
@PostMapping("/changeStatus")
|
||||||
|
@ResponseBody
|
||||||
|
public AjaxResult changeStatus(SysRole role)
|
||||||
|
{
|
||||||
|
return toAjax(roleService.changeStatus(role));
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -225,4 +225,16 @@ public class SysUserController extends BaseController
|
||||||
{
|
{
|
||||||
return userService.checkEmailUnique(user);
|
return userService.checkEmailUnique(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户状态修改
|
||||||
|
*/
|
||||||
|
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
|
||||||
|
@RequiresPermissions("system:user:edit")
|
||||||
|
@PostMapping("/changeStatus")
|
||||||
|
@ResponseBody
|
||||||
|
public AjaxResult changeStatus(SysUser user)
|
||||||
|
{
|
||||||
|
return toAjax(userService.changeStatus(user));
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -17,32 +17,33 @@ spring:
|
||||||
username:
|
username:
|
||||||
password:
|
password:
|
||||||
# 初始连接数
|
# 初始连接数
|
||||||
initial-size: 10
|
initialSize: 5
|
||||||
# 最大连接池数量
|
|
||||||
max-active: 100
|
|
||||||
# 最小连接池数量
|
# 最小连接池数量
|
||||||
min-idle: 10
|
minIdle: 10
|
||||||
|
# 最大连接池数量
|
||||||
|
maxActive: 20
|
||||||
# 配置获取连接等待超时的时间
|
# 配置获取连接等待超时的时间
|
||||||
max-wait: 60000
|
maxWait: 60000
|
||||||
# 打开PSCache,并且指定每个连接上PSCache的大小
|
|
||||||
pool-prepared-statements: true
|
|
||||||
max-pool-prepared-statement-per-connection-size: 20
|
|
||||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||||
timeBetweenEvictionRunsMillis: 60000
|
timeBetweenEvictionRunsMillis: 60000
|
||||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||||
min-evictable-idle-time-millis: 300000
|
minEvictableIdleTimeMillis: 300000
|
||||||
validation-query: SELECT 1 FROM DUAL
|
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||||
test-while-idle: true
|
maxEvictableIdleTimeMillis: 900000
|
||||||
test-on-borrow: false
|
# 配置检测连接是否有效
|
||||||
test-on-return: false
|
validationQuery: SELECT 1 FROM DUAL
|
||||||
stat-view-servlet:
|
testWhileIdle: true
|
||||||
|
testOnBorrow: false
|
||||||
|
testOnReturn: false
|
||||||
|
statViewServlet:
|
||||||
enabled: true
|
enabled: true
|
||||||
url-pattern: /monitor/druid/*
|
url-pattern: /monitor/druid/*
|
||||||
filter:
|
filter:
|
||||||
stat:
|
stat:
|
||||||
|
# 慢SQL记录
|
||||||
log-slow-sql: true
|
log-slow-sql: true
|
||||||
slow-sql-millis: 1000
|
slow-sql-millis: 1000
|
||||||
merge-sql: false
|
merge-sql: true
|
||||||
wall:
|
wall:
|
||||||
config:
|
config:
|
||||||
multi-statement-allow: true
|
multi-statement-allow: true
|
|
@ -3,9 +3,9 @@ ruoyi:
|
||||||
# 名称
|
# 名称
|
||||||
name: RuoYi
|
name: RuoYi
|
||||||
# 版本
|
# 版本
|
||||||
version: 3.1.0
|
version: 3.2.0
|
||||||
# 版权年份
|
# 版权年份
|
||||||
copyrightYear: 2018
|
copyrightYear: 2019
|
||||||
# 文件上传路径
|
# 文件上传路径
|
||||||
profile: D:/profile/
|
profile: D:/profile/
|
||||||
# 获取ip地址开关
|
# 获取ip地址开关
|
||||||
|
|
|
@ -1,44 +1,35 @@
|
||||||
/**
|
/**
|
||||||
* @author: Dennis Hernández
|
* 基于bootstrap-table-mobile修改
|
||||||
* @webSite: http://djhvscf.github.io/Blog
|
* 修正部分iPhone手机不显示卡片视图
|
||||||
* @version: v1.1.0
|
* Copyright (c) 2019 ruoyi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
!function ($) {
|
!function ($) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var showHideColumns = function (that, checked) {
|
var resetView = function (that) {
|
||||||
if (that.options.columnsHidden.length > 0 ) {
|
if (that.options.height || that.options.showFooter) {
|
||||||
$.each(that.columns, function (i, column) {
|
setTimeout(that.resetView(), 1);
|
||||||
if (that.options.columnsHidden.indexOf(column.field) !== -1) {
|
|
||||||
if (column.visible !== checked) {
|
|
||||||
that.toggleColumn($.fn.bootstrapTable.utils.getFieldIndex(that.columns, column.field), checked, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var resetView = function (that) {
|
// 判断是否 iphone
|
||||||
if (that.options.height || that.options.showFooter) {
|
var isIPhone = function () {
|
||||||
setTimeout(function(){
|
let browserName = navigator.userAgent.toLowerCase();
|
||||||
that.resetView.call(that);
|
return /(iphone)/i.test(browserName);
|
||||||
}, 1);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var changeView = function (that, width, height) {
|
var changeView = function (that, width, height) {
|
||||||
if (that.options.minHeight) {
|
if (that.options.minHeight) {
|
||||||
if ((width <= that.options.minWidth) && (height <= that.options.minHeight)) {
|
if (checkValuesLessEqual(width, that.options.minWidth) && checkValuesLessEqual(height, that.options.minHeight)) {
|
||||||
conditionCardView(that);
|
conditionCardView(that);
|
||||||
} else if ((width > that.options.minWidth) && (height > that.options.minHeight)) {
|
} else if (checkValuesGreater(width, that.options.minWidth) && checkValuesGreater(height, that.options.minHeight)) {
|
||||||
conditionFullView(that);
|
conditionFullView(that);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (width <= that.options.minWidth) {
|
if (checkValuesLessEqual(width, that.options.minWidth) || isIPhone()) {
|
||||||
conditionCardView(that);
|
conditionCardView(that);
|
||||||
} else if (width > that.options.minWidth) {
|
} else if (checkValuesGreater(width, that.options.minWidth)) {
|
||||||
conditionFullView(that);
|
conditionFullView(that);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,14 +37,20 @@
|
||||||
resetView(that);
|
resetView(that);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var checkValuesLessEqual = function (currentValue, targetValue) {
|
||||||
|
return currentValue <= targetValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
var checkValuesGreater = function (currentValue, targetValue) {
|
||||||
|
return currentValue > targetValue;
|
||||||
|
};
|
||||||
|
|
||||||
var conditionCardView = function (that) {
|
var conditionCardView = function (that) {
|
||||||
changeTableView(that, false);
|
changeTableView(that, false);
|
||||||
showHideColumns(that, false);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var conditionFullView = function (that) {
|
var conditionFullView = function (that) {
|
||||||
changeTableView(that, true);
|
changeTableView(that, true);
|
||||||
showHideColumns(that, true);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var changeTableView = function (that, cardViewState) {
|
var changeTableView = function (that, cardViewState) {
|
||||||
|
@ -61,27 +58,12 @@
|
||||||
that.toggleView();
|
that.toggleView();
|
||||||
};
|
};
|
||||||
|
|
||||||
var debounce = function(func,wait) {
|
|
||||||
var timeout;
|
|
||||||
return function() {
|
|
||||||
var context = this,
|
|
||||||
args = arguments;
|
|
||||||
var later = function() {
|
|
||||||
timeout = null;
|
|
||||||
func.apply(context,args);
|
|
||||||
};
|
|
||||||
clearTimeout(timeout);
|
|
||||||
timeout = setTimeout(later, wait);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
$.extend($.fn.bootstrapTable.defaults, {
|
$.extend($.fn.bootstrapTable.defaults, {
|
||||||
mobileResponsive: false,
|
mobileResponsive: false,
|
||||||
minWidth: 562,
|
minWidth: 562,
|
||||||
minHeight: undefined,
|
minHeight: undefined,
|
||||||
heightThreshold: 100, // just slightly larger than mobile chrome's auto-hiding toolbar
|
|
||||||
checkOnInit: true,
|
checkOnInit: true,
|
||||||
columnsHidden: []
|
toggled: false
|
||||||
});
|
});
|
||||||
|
|
||||||
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
||||||
|
@ -98,39 +80,13 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.options.minWidth < 100 && this.options.resizable) {
|
var that = this;
|
||||||
console.log("The minWidth when the resizable extension is active should be greater or equal than 100");
|
$(window).resize(function () {
|
||||||
this.options.minWidth = 100;
|
changeView(that, $(this).width(), $(this).height())
|
||||||
}
|
});
|
||||||
|
|
||||||
var that = this,
|
|
||||||
old = {
|
|
||||||
width: $(window).width(),
|
|
||||||
height: $(window).height()
|
|
||||||
};
|
|
||||||
|
|
||||||
$(window).on('resize orientationchange',debounce(function (evt) {
|
|
||||||
// reset view if height has only changed by at least the threshold.
|
|
||||||
var height = $(this).height(),
|
|
||||||
width = $(this).width();
|
|
||||||
|
|
||||||
if (Math.abs(old.height - height) > that.options.heightThreshold || old.width != width) {
|
|
||||||
changeView(that, width, height);
|
|
||||||
old = {
|
|
||||||
width: width,
|
|
||||||
height: height
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},200));
|
|
||||||
|
|
||||||
if (this.options.checkOnInit) {
|
if (this.options.checkOnInit) {
|
||||||
var height = $(window).height(),
|
changeView(this, $(window).width(), $(window).height());
|
||||||
width = $(window).width();
|
|
||||||
changeView(this, width, height);
|
|
||||||
old = {
|
|
||||||
width: width,
|
|
||||||
height: height
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}(jQuery);
|
}(jQuery);
|
|
@ -1,7 +0,0 @@
|
||||||
/*
|
|
||||||
* bootstrap-table - v1.11.0 - 2016-07-02
|
|
||||||
* https://github.com/wenzhixin/bootstrap-table
|
|
||||||
* Copyright (c) 2016 zhixin wen
|
|
||||||
* Licensed MIT License
|
|
||||||
*/
|
|
||||||
!function(a){"use strict";var b=function(b,c){b.options.columnsHidden.length>0&&a.each(b.columns,function(d,e){-1!==b.options.columnsHidden.indexOf(e.field)&&e.visible!==c&&b.toggleColumn(a.fn.bootstrapTable.utils.getFieldIndex(b.columns,e.field),c,!0)})},c=function(a){(a.options.height||a.options.showFooter)&&setTimeout(function(){a.resetView.call(a)},1)},d=function(a,b,d){a.options.minHeight?b<=a.options.minWidth&&d<=a.options.minHeight?e(a):b>a.options.minWidth&&d>a.options.minHeight&&f(a):b<=a.options.minWidth?e(a):b>a.options.minWidth&&f(a),c(a)},e=function(a){g(a,!1),b(a,!1)},f=function(a){g(a,!0),b(a,!0)},g=function(a,b){a.options.cardView=b,a.toggleView()},h=function(a,b){var c;return function(){var d=this,e=arguments,f=function(){c=null,a.apply(d,e)};clearTimeout(c),c=setTimeout(f,b)}};a.extend(a.fn.bootstrapTable.defaults,{mobileResponsive:!1,minWidth:562,minHeight:void 0,heightThreshold:100,checkOnInit:!0,columnsHidden:[]});var i=a.fn.bootstrapTable.Constructor,j=i.prototype.init;i.prototype.init=function(){if(j.apply(this,Array.prototype.slice.apply(arguments)),this.options.mobileResponsive&&this.options.minWidth){this.options.minWidth<100&&this.options.resizable&&(console.log("The minWidth when the resizable extension is active should be greater or equal than 100"),this.options.minWidth=100);var b=this,c={width:a(window).width(),height:a(window).height()};if(a(window).on("resize orientationchange",h(function(){var e=a(this).height(),f=a(this).width();(Math.abs(c.height-e)>b.options.heightThreshold||c.width!=f)&&(d(b,f,e),c={width:f,height:e})},200)),this.options.checkOnInit){var e=a(window).height(),f=a(window).width();d(this,f,e),c={width:f,height:e}}}}}(jQuery);
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
|
@ -0,0 +1,138 @@
|
||||||
|
/**
|
||||||
|
* layer皮肤
|
||||||
|
* Copyright (c) 2019 ruoyi
|
||||||
|
*/
|
||||||
|
html #layui_layer_skinmoonstylecss {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
width: 1989px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body .layer-ext-moon[type="dialog"] {
|
||||||
|
min-width: 320px;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon-msg[type="dialog"]{min-width:200px;}
|
||||||
|
body .layer-ext-moon .layui-layer-title {
|
||||||
|
background: #F8F8F8;
|
||||||
|
color: #333;
|
||||||
|
font-size: 14px;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
body .layer-ext-moon .layui-layer-content .layui-layer-ico {
|
||||||
|
height: 32px;
|
||||||
|
width: 32px;
|
||||||
|
top:18.5px;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico0 {
|
||||||
|
background: url(default.png) no-repeat -96px 0;
|
||||||
|
;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico1 {
|
||||||
|
background: url(default.png) no-repeat -224px 0;
|
||||||
|
;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico2 {
|
||||||
|
background: url(default.png) no-repeat -192px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico3 {
|
||||||
|
background: url(default.png) no-repeat -160px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico4 {
|
||||||
|
background: url(default.png) no-repeat -320px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico5 {
|
||||||
|
background: url(default.png) no-repeat -288px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico6 {
|
||||||
|
background: url(default.png) -256px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-ico7 {
|
||||||
|
background: url(default.png) no-repeat -128px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin {
|
||||||
|
top: 15px;
|
||||||
|
right: 15px;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin a {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-min cite:hover {
|
||||||
|
background-color: #56abe4;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-max {
|
||||||
|
background: url(default.png) no-repeat -80px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-max:hover {
|
||||||
|
background: url(default.png) no-repeat -64px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-maxmin {
|
||||||
|
background: url(default.png) no-repeat -32px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-maxmin:hover {
|
||||||
|
background: url(default.png) no-repeat -16px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-close1,body .layer-ext-moon .layui-layer-setwin .layui-layer-close2 {
|
||||||
|
background: url(default.png) 0 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-setwin .layui-layer-close1:hover,body .layer-ext-moon .layui-layer-setwin .layui-layer-close2:hover {
|
||||||
|
background: url(default.png) -48px 0;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-padding{padding-top: 24px;}
|
||||||
|
body .layer-ext-moon .layui-layer-btn {
|
||||||
|
text-align: right;
|
||||||
|
padding: 10px 15px 12px;
|
||||||
|
background: #f0f4f7;
|
||||||
|
border-top: 1px #c7c7c7 solid;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-btn a {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0 3px;
|
||||||
|
margin-right: 7px;
|
||||||
|
margin-left: 7px;
|
||||||
|
padding: 0 15px;
|
||||||
|
color: #fff;
|
||||||
|
border: 1px solid #0064b6;
|
||||||
|
background: #0071ce;
|
||||||
|
border-radius: 3px;
|
||||||
|
display: inline-block;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
-webkit-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-btn .layui-layer-btn0 {
|
||||||
|
background: #0071ce;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-btn .layui-layer-btn1 {
|
||||||
|
background: #fff;
|
||||||
|
color: #404a58;
|
||||||
|
border: 1px solid #c0c4cd;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-btn .layui-layer-btn2 {
|
||||||
|
background: #f60;
|
||||||
|
color: #fff;
|
||||||
|
border: 1px solid #f60;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
body .layer-ext-moon .layui-layer-btn .layui-layer-btn3 {
|
||||||
|
background: #f00;
|
||||||
|
color: #fff;
|
||||||
|
border: 1px solid #f00;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body .layer-ext-moon .layui-layer-title span.layui-layer-tabnow{
|
||||||
|
height:47px;
|
||||||
|
}
|
|
@ -0,0 +1,822 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* SKIN blue 若依管理系统
|
||||||
|
* NAME - blue/green/purple/red/yellow
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/** 蓝色主题 skin-blue **/
|
||||||
|
.skin-blue .navbar {
|
||||||
|
background-color: #3c8dbc
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .navbar .nav>li>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .navbar .nav>li>a:hover,
|
||||||
|
.skin-blue .navbar .nav>li>a:active,
|
||||||
|
.skin-blue .navbar .nav>li>a:focus,
|
||||||
|
.skin-blue .navbar .nav .open>a,
|
||||||
|
.skin-blue .navbar .nav .open>a:hover,
|
||||||
|
.skin-blue .navbar .nav .open>a:focus,
|
||||||
|
.skin-blue .navbar .nav>.active>a {
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
color: #f6f6f6
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .navbar .sidebar-toggle:hover {
|
||||||
|
color: #f6f6f6;
|
||||||
|
background: rgba(0, 0, 0, 0.1)
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .navbar .sidebar-toggle:hover {
|
||||||
|
background-color: #367fa9
|
||||||
|
}
|
||||||
|
|
||||||
|
@media ( max-width :767px) {
|
||||||
|
.skin-blue .navbar .dropdown-menu li.divider {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1)
|
||||||
|
}
|
||||||
|
.skin-blue .navbar .dropdown-menu li a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
.skin-blue .navbar .dropdown-menu li a:hover {
|
||||||
|
background: #367fa9
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .logo {
|
||||||
|
background-color: #367fa9;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .logo:hover {
|
||||||
|
background-color: #357ca5
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue li.user-header {
|
||||||
|
background-color: #3c8dbc
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .content-header {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .wrapper,
|
||||||
|
.skin-blue .main-sidebar,
|
||||||
|
.skin-blue .left-side {
|
||||||
|
background-color: #222d32
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .user-panel>.info,
|
||||||
|
.skin-blue .user-panel>.info>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .nav>li.header {
|
||||||
|
color: #4b646f;
|
||||||
|
background: #1a2226
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .nav>li.active {
|
||||||
|
color: #fff;
|
||||||
|
background: #293846;
|
||||||
|
border-left: 3px solid #3c8dbc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .nav>li.active:last-child {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .nav>li>.treeview-menu {
|
||||||
|
margin: 0 1px;
|
||||||
|
background: #2c3b41
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar a {
|
||||||
|
color: #b8c7ce
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar a:hover {
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .treeview-menu>li>a {
|
||||||
|
color: #8aa4af
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .treeview-menu>li.active>a,
|
||||||
|
.skin-blue .treeview-menu>li>a:hover {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar-form {
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid #374850;
|
||||||
|
margin: 10px 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar-form input[type="text"],
|
||||||
|
.skin-blue .sidebar-form .btn {
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: #374850;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
height: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar-form input[type="text"] {
|
||||||
|
color: #666;
|
||||||
|
border-top-left-radius: 2px;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar-form input[type="text"]:focus,
|
||||||
|
.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
border-left-color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .sidebar-form .btn {
|
||||||
|
color: #999;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-bottom-left-radius: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue.layout-top-nav>.logo {
|
||||||
|
background-color: #3c8dbc;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue.layout-top-nav>.logo:hover {
|
||||||
|
background-color: #3b8ab8
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue .content-tabs {
|
||||||
|
border-bottom: solid 2px #e7eaec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue.layout-top-nav>.logo {
|
||||||
|
background-color: #3c8dbc;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-blue.layout-top-nav>.logo:hover {
|
||||||
|
background-color: #3b8ab8
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 绿色主题 skin-green **/
|
||||||
|
.skin-green .navbar {
|
||||||
|
background-color: #00a65a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .content-tabs {
|
||||||
|
border-bottom: solid 2px #e7eaec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .navbar .nav>li>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .navbar .nav>li>a:hover,
|
||||||
|
.skin-green .navbar .nav>li>a:active,
|
||||||
|
.skin-green .navbar .nav>li>a:focus,
|
||||||
|
.skin-green .navbar .nav .open>a,
|
||||||
|
.skin-green .navbar .nav .open>a:hover,
|
||||||
|
.skin-green .navbar .nav .open>a:focus,
|
||||||
|
.skin-green .navbar .nav>.active>a {
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
color: #f6f6f6
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .navbar .sidebar-toggle:hover {
|
||||||
|
color: #f6f6f6;
|
||||||
|
background: rgba(0, 0, 0, 0.1)
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .navbar .sidebar-toggle:hover {
|
||||||
|
background-color: #008d4c
|
||||||
|
}
|
||||||
|
|
||||||
|
@media ( max-width :767px) {
|
||||||
|
.skin-green .navbar .dropdown-menu li.divider {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1)
|
||||||
|
}
|
||||||
|
.skin-green .navbar .dropdown-menu li a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
.skin-green .navbar .dropdown-menu li a:hover {
|
||||||
|
background: #008d4c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .logo {
|
||||||
|
background-color: #008d4c;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .logo:hover {
|
||||||
|
background-color: #008749
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green li.user-header {
|
||||||
|
background-color: #00a65a
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .content-header {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .wrapper,
|
||||||
|
.skin-green .main-sidebar,
|
||||||
|
.skin-green .left-side {
|
||||||
|
background-color: #222d32
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .user-panel>.info,
|
||||||
|
.skin-green .user-panel>.info>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .nav>li.header {
|
||||||
|
color: #4b646f;
|
||||||
|
background: #1a2226;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .nav>li.active {
|
||||||
|
color: #fff;
|
||||||
|
background: #293846;
|
||||||
|
border-left: 3px solid #00a65a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .nav>li.active:last-child {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .nav>li>.treeview-menu {
|
||||||
|
margin: 0 1px;
|
||||||
|
background: #2c3b41
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar a {
|
||||||
|
color: #b8c7ce
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar a:hover {
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .treeview-menu>li>a {
|
||||||
|
color: #8aa4af
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .treeview-menu>li.active>a,
|
||||||
|
.skin-green .treeview-menu>li>a:hover {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar-form {
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid #374850;
|
||||||
|
margin: 10px 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar-form input[type="text"],
|
||||||
|
.skin-green .sidebar-form .btn {
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: #374850;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
height: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar-form input[type="text"] {
|
||||||
|
color: #666;
|
||||||
|
border-top-left-radius: 2px;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar-form input[type="text"]:focus,
|
||||||
|
.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
border-left-color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-green .sidebar-form .btn {
|
||||||
|
color: #999;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-bottom-left-radius: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 红色主题 skin-red **/
|
||||||
|
.skin-red .navbar {
|
||||||
|
background-color: #dd4b39
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .navbar .nav>li>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .navbar .nav>li>a:hover,
|
||||||
|
.skin-red .navbar .nav>li>a:active,
|
||||||
|
.skin-red .navbar .nav>li>a:focus,
|
||||||
|
.skin-red .navbar .nav .open>a,
|
||||||
|
.skin-red .navbar .nav .open>a:hover,
|
||||||
|
.skin-red .navbar .nav .open>a:focus,
|
||||||
|
.skin-red .navbar .nav>.active>a {
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
color: #f6f6f6
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .navbar .sidebar-toggle:hover {
|
||||||
|
color: #f6f6f6;
|
||||||
|
background: rgba(0, 0, 0, 0.1)
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .navbar .sidebar-toggle:hover {
|
||||||
|
background-color: #d73925
|
||||||
|
}
|
||||||
|
|
||||||
|
@media ( max-width :767px) {
|
||||||
|
.skin-red .navbar .dropdown-menu li.divider {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1)
|
||||||
|
}
|
||||||
|
.skin-red .navbar .dropdown-menu li a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
.skin-red .navbar .dropdown-menu li a:hover {
|
||||||
|
background: #d73925
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .logo {
|
||||||
|
background-color: #d73925;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .logo:hover {
|
||||||
|
background-color: #d33724
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red li.user-header {
|
||||||
|
background-color: #dd4b39
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .content-header {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .wrapper,
|
||||||
|
.skin-red .main-sidebar,
|
||||||
|
.skin-red .left-side {
|
||||||
|
background-color: #222d32
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .user-panel>.info,
|
||||||
|
.skin-red .user-panel>.info>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .nav>li.header {
|
||||||
|
color: #4b646f;
|
||||||
|
background: #1a2226
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .nav>li.active {
|
||||||
|
color: #fff;
|
||||||
|
border-left: 3px solid #dd4b39;
|
||||||
|
background: #293846;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .nav>li.active:last-child {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .content-tabs {
|
||||||
|
border-bottom: solid 2px #e7eaec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .nav>li>.treeview-menu {
|
||||||
|
margin: 0 1px;
|
||||||
|
background: #2c3b41
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar a {
|
||||||
|
color: #b8c7ce
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar a:hover {
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .treeview-menu>li>a {
|
||||||
|
color: #8aa4af
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .treeview-menu>li.active>a,
|
||||||
|
.skin-red .treeview-menu>li>a:hover {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar-form {
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid #374850;
|
||||||
|
margin: 10px 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar-form input[type="text"],
|
||||||
|
.skin-red .sidebar-form .btn {
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: #374850;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
height: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar-form input[type="text"] {
|
||||||
|
color: #fff;
|
||||||
|
border-top-left-radius: 2px;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar-form input[type="text"]:focus,
|
||||||
|
.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
border-left-color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-red .sidebar-form .btn {
|
||||||
|
color: #999;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-bottom-left-radius: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 黄色主题 skin-red **/
|
||||||
|
.skin-yellow .navbar {
|
||||||
|
background-color: #f39c12
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .navbar .nav>li>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .navbar .nav>li>a:hover,
|
||||||
|
.skin-yellow .navbar .nav>li>a:active,
|
||||||
|
.skin-yellow .navbar .nav>li>a:focus,
|
||||||
|
.skin-yellow .navbar .nav .open>a,
|
||||||
|
.skin-yellow .navbar .nav .open>a:hover,
|
||||||
|
.skin-yellow .navbar .nav .open>a:focus,
|
||||||
|
.skin-yellow .navbar .nav>.active>a {
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
color: #f6f6f6
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .navbar .sidebar-toggle:hover {
|
||||||
|
color: #f6f6f6;
|
||||||
|
background: rgba(0, 0, 0, 0.1)
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .navbar .sidebar-toggle:hover {
|
||||||
|
background-color: #e08e0b
|
||||||
|
}
|
||||||
|
|
||||||
|
@media ( max-width :767px) {
|
||||||
|
.skin-yellow .navbar .dropdown-menu li.divider {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1)
|
||||||
|
}
|
||||||
|
.skin-yellow .navbar .dropdown-menu li a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
.skin-yellow .navbar .dropdown-menu li a:hover {
|
||||||
|
background: #e08e0b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .logo {
|
||||||
|
background-color: #e08e0b;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .logo:hover {
|
||||||
|
background-color: #db8b0b
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow li.user-header {
|
||||||
|
background-color: #f39c12
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .content-header {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .wrapper,
|
||||||
|
.skin-yellow .main-sidebar,
|
||||||
|
.skin-yellow .left-side {
|
||||||
|
background-color: #222d32
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .user-panel>.info,
|
||||||
|
.skin-yellow .user-panel>.info>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .nav>li.header {
|
||||||
|
color: #4b646f;
|
||||||
|
background: #1a2226
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .nav>li.active {
|
||||||
|
color: #fff;
|
||||||
|
background: #293846;
|
||||||
|
border-left: 3px solid #f39c12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .nav>li.active:last-child {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .content-tabs {
|
||||||
|
|
||||||
|
border-bottom: solid 2px #e7eaec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .nav>li>.treeview-menu {
|
||||||
|
margin: 0 1px;
|
||||||
|
background: #2c3b41
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar a {
|
||||||
|
color: #b8c7ce
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar a:hover {
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .treeview-menu>li>a {
|
||||||
|
color: #8aa4af
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .treeview-menu>li.active>a,
|
||||||
|
.skin-yellow .treeview-menu>li>a:hover {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar-form {
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid #374850;
|
||||||
|
margin: 10px 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar-form input[type="text"],
|
||||||
|
.skin-yellow .sidebar-form .btn {
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: #374850;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
height: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar-form input[type="text"] {
|
||||||
|
color: #666;
|
||||||
|
border-top-left-radius: 2px;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar-form input[type="text"]:focus,
|
||||||
|
.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
border-left-color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-yellow .sidebar-form .btn {
|
||||||
|
color: #999;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-bottom-left-radius: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 紫色主题 skin-purple **/
|
||||||
|
.skin-purple .navbar {
|
||||||
|
background-color: #605ca8
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .navbar .nav>li>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .navbar .nav>li>a:hover,
|
||||||
|
.skin-purple .navbar .nav>li>a:active,
|
||||||
|
.skin-purple .navbar .nav>li>a:focus,
|
||||||
|
.skin-purple .navbar .nav .open>a,
|
||||||
|
.skin-purple .navbar .nav .open>a:hover,
|
||||||
|
.skin-purple .navbar .nav .open>a:focus,
|
||||||
|
.skin-purple .navbar .nav>.active>a {
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
color: #f6f6f6
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .navbar .sidebar-toggle:hover {
|
||||||
|
color: #f6f6f6;
|
||||||
|
background: rgba(0, 0, 0, 0.1)
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .navbar .sidebar-toggle {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .navbar .sidebar-toggle:hover {
|
||||||
|
background-color: #555299
|
||||||
|
}
|
||||||
|
|
||||||
|
@media ( max-width :767px) {
|
||||||
|
.skin-purple .navbar .dropdown-menu li.divider {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1)
|
||||||
|
}
|
||||||
|
.skin-purple .navbar .dropdown-menu li a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
.skin-purple .navbar .dropdown-menu li a:hover {
|
||||||
|
background: #555299
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .logo {
|
||||||
|
background-color: #555299;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .logo:hover {
|
||||||
|
background-color: #545096
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple li.user-header {
|
||||||
|
background-color: #605ca8
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .content-header {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .wrapper,
|
||||||
|
.skin-purple .main-sidebar,
|
||||||
|
.skin-purple .left-side {
|
||||||
|
background-color: #222d32
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .user-panel>.info,
|
||||||
|
.skin-purple .user-panel>.info>a {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .nav>li.header {
|
||||||
|
color: #4b646f;
|
||||||
|
background: #1a2226
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .nav>li.active {
|
||||||
|
color: #fff;
|
||||||
|
background: #293846;
|
||||||
|
border-left: 3px solid #605ca8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .nav>li.active:last-child {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .content-tabs {
|
||||||
|
|
||||||
|
border-bottom: solid 2px #e7eaec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .nav>li>.treeview-menu {
|
||||||
|
margin: 0 1px;
|
||||||
|
background: #2c3b41
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar a {
|
||||||
|
color: #b8c7ce
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar a:hover {
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .treeview-menu>li>a {
|
||||||
|
color: #8aa4af
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .treeview-menu>li.active>a,
|
||||||
|
.skin-purple .treeview-menu>li>a:hover {
|
||||||
|
color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar-form {
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid #374850;
|
||||||
|
margin: 10px 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar-form input[type="text"],
|
||||||
|
.skin-purple .sidebar-form .btn {
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: #374850;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
height: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar-form input[type="text"] {
|
||||||
|
color: #666;
|
||||||
|
border-top-left-radius: 2px;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar-form input[type="text"]:focus,
|
||||||
|
.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn {
|
||||||
|
border-left-color: #fff
|
||||||
|
}
|
||||||
|
|
||||||
|
.skin-purple .sidebar-form .btn {
|
||||||
|
color: #999;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-bottom-left-radius: 0
|
||||||
|
}
|
|
@ -47,26 +47,42 @@ a:focus {
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav.navbar-right>li>a {
|
.nav.navbar-right>li>a {
|
||||||
color: #999c9e;
|
color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
height: 50px;
|
||||||
|
padding: 18px 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav>li.active>a {
|
.nav>li.active>a {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-default .nav>li>a:hover, .navbar-default .nav>li>a:focus {
|
.nav.navbar-right>li>a>.label {
|
||||||
|
position: absolute;
|
||||||
|
top: 9px;
|
||||||
|
right: 5px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 9px;
|
||||||
|
padding: 2px 4px;
|
||||||
|
line-height: .9;
|
||||||
|
}
|
||||||
|
.nav.navbar-right>li>a:hover {
|
||||||
|
background-color: #367fa9;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-default .nav>li>a:hover,
|
||||||
|
.navbar-default .nav>li>a:focus {
|
||||||
background-color: #293846;
|
background-color: #293846;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav .open>a, .nav .open>a:hover, .nav .open>a:focus {
|
.nav .open>a,
|
||||||
|
.nav .open>a:hover,
|
||||||
|
.nav .open>a:focus {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav>li>a i {
|
|
||||||
margin-right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar {
|
.navbar {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
@ -77,12 +93,12 @@ a:focus {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-top-links li {
|
.nav.navbar-top-links li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-top-links li:last-child {
|
.navbar-top-links li:last-child {
|
||||||
margin-right: 30px;
|
margin-right: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.body-small .navbar-top-links li:last-child {
|
body.body-small .navbar-top-links li:last-child {
|
||||||
|
@ -179,7 +195,7 @@ body.body-small .navbar-top-links li:last-child {
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-header {
|
.nav-header {
|
||||||
padding: 33px 25px;
|
padding: 34px 25px 20px 25px;
|
||||||
background: url("patterns/header-profile.png") no-repeat;
|
background: url("patterns/header-profile.png") no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,7 +227,7 @@ body.body-small .navbar-top-links li:last-child {
|
||||||
|
|
||||||
.minimalize-styl-2 {
|
.minimalize-styl-2 {
|
||||||
padding: 4px 12px;
|
padding: 4px 12px;
|
||||||
margin: 14px 5px 5px 20px;
|
margin: 12px 5px 5px 15px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
@ -368,10 +384,6 @@ body.mini-navbar .navbar-default .nav>li>.nav-second-level li a {
|
||||||
z-index: 2030;
|
z-index: 2030;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-fixed-top, .navbar-static-top {
|
|
||||||
background: #f3f3f4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fixed-nav #wrapper {
|
.fixed-nav #wrapper {
|
||||||
padding-top: 60px;
|
padding-top: 60px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
@ -460,18 +472,6 @@ body.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
|
||||||
.fixed-sidebar.mini-navbar .nav li.active {
|
.fixed-sidebar.mini-navbar .nav li.active {
|
||||||
border-left-width: 0;
|
border-left-width: 0;
|
||||||
}
|
}
|
||||||
/*.fixed-sidebar.mini-navbar .nav li:hover>.nav-second-level, .canvas-menu.mini-navbar .nav li:hover>.nav-second-level*/
|
|
||||||
/*{*/
|
|
||||||
/*position: absolute;*/
|
|
||||||
/*left: 70px;*/
|
|
||||||
/*top: 40px;*/
|
|
||||||
/*background-color: #2f4050;*/
|
|
||||||
/*padding: 10px 10px 0 10px;*/
|
|
||||||
/*font-size: 12px;*/
|
|
||||||
/*display: block;*/
|
|
||||||
/*min-width: 140px;*/
|
|
||||||
/*border-radius: 2px;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
/*伸缩菜单*/
|
/*伸缩菜单*/
|
||||||
.fixed-sidebar.mini-navbar .nav li:hover>a> span.nav-label {
|
.fixed-sidebar.mini-navbar .nav li:hover>a> span.nav-label {
|
||||||
|
@ -485,7 +485,6 @@ body.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
|
||||||
.fixed-sidebar.mini-navbar .nav li:hover>.nav-second-level {
|
.fixed-sidebar.mini-navbar .nav li:hover>.nav-second-level {
|
||||||
top: 40px;
|
top: 40px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
/*padding: 10px 10px 0 10px;*/
|
|
||||||
background-color: #2f4050;
|
background-color: #2f4050;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6567,391 +6566,24 @@ body.rtls .top-navigation .footer.fixed, body.rtls.top-navigation .footer.fixed
|
||||||
.rtls .ltr-support {
|
.rtls .ltr-support {
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
|
||||||
* This is style for skin config
|
|
||||||
* Use only in demo theme
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
.skin-setttings .title {
|
|
||||||
background: #efefef;
|
|
||||||
text-align: center;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-weight: 600;
|
|
||||||
display: block;
|
|
||||||
padding: 10px 15px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setings-item {
|
|
||||||
padding: 10px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setings-item.nb {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setings-item.skin {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setings-item .switch {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-name a {
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setings-item a {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.default-skin, .blue-skin, .ultra-skin, .yellow-skin {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.default-skin {
|
|
||||||
font-weight: 600;
|
|
||||||
background: #1ab394;
|
|
||||||
}
|
|
||||||
|
|
||||||
.default-skin:hover {
|
|
||||||
background: #199d82;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blue-skin {
|
|
||||||
font-weight: 600;
|
|
||||||
background: url("patterns/header-profile-skin-blue.png") repeat scroll 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blue-skin:hover {
|
|
||||||
background: #0d8ddb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yellow-skin {
|
|
||||||
font-weight: 600;
|
|
||||||
background: url("patterns/header-profile-skin-yellow.png") repeat scroll 0 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yellow-skin:hover {
|
|
||||||
background: #ce8735;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-tabs {
|
|
||||||
border-bottom: solid 2px #2f4050;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-tabs a {
|
.page-tabs a {
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-tabs a i {
|
.page-tabs a i {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
|
margin-left: 2px;
|
||||||
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-tabs a.active {
|
.page-tabs a.active {
|
||||||
background: #2f4050;
|
background: #eaedf1;
|
||||||
color: #a7b1c2;
|
color: #23508e;
|
||||||
}
|
}
|
||||||
|
.page-tabs a.active:hover,
|
||||||
.page-tabs a.active:hover, .page-tabs a.active i:hover {
|
.page-tabs a.active i:hover {
|
||||||
background: #293846;
|
background: #eaedf1;
|
||||||
color: #fff;
|
color: #23508e;
|
||||||
}
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* SKIN blue 若依管理系统
|
|
||||||
* NAME - blue/purple
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
.skin-blue .minimalize-styl-2 {
|
|
||||||
margin: 14px 5px 5px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .navbar-top-links li:last-child {
|
|
||||||
margin-right: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue.fixed-nav .minimalize-styl-2 {
|
|
||||||
margin: 14px 5px 5px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .spin-icon {
|
|
||||||
background: #0e9aef !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav-header {
|
|
||||||
background: #0e9aef;
|
|
||||||
background: url('patterns/header-profile-skin-blue.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue.mini-navbar .nav-second-level {
|
|
||||||
background: #3e495f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .breadcrumb {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .page-heading {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav>li.active {
|
|
||||||
background: #3a4459;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav>li>a {
|
|
||||||
color: #9ea6b9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav>li.active>a {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .navbar-minimalize {
|
|
||||||
background: #0e9aef;
|
|
||||||
border-color: #0e9aef;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.skin-blue {
|
|
||||||
background: #3e495f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .navbar-static-top {
|
|
||||||
background: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .dashboard-header {
|
|
||||||
background: transparent;
|
|
||||||
border-bottom: none !important;
|
|
||||||
border-top: none;
|
|
||||||
padding: 20px 30px 10px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fixed-nav.skin-blue .navbar-fixed-top {
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .wrapper-content {
|
|
||||||
padding: 30px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue #page-wrapper {
|
|
||||||
background: #f4f6fa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .ibox-title, .skin-blue .ibox-content {
|
|
||||||
border-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .ibox-content:last-child {
|
|
||||||
border-style: solid solid solid solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav>li.active {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav-header {
|
|
||||||
padding: 35px 25px 25px 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav-header a.dropdown-toggle {
|
|
||||||
color: #fff;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav-header a.dropdown-toggle .text-muted {
|
|
||||||
color: #fff;
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .profile-element {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .img-circle {
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .navbar-default .nav>li>a:hover, .skin-blue .navbar-default .nav>li>a:focus {
|
|
||||||
background: #39aef5;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav.nav-tabs>li.active>a {
|
|
||||||
color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .content-tabs {
|
|
||||||
border-bottom: solid 2px #39aef5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .nav.nav-tabs>li.active {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .page-tabs a.active {
|
|
||||||
background: #39aef5;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-blue .page-tabs a.active:hover, .skin-blue .page-tabs a.active i:hover {
|
|
||||||
background: #0e9aef;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* SKIN Yellow 若依管理系统
|
|
||||||
* NAME - Yellow/purple
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
.skin-yellow .minimalize-styl-2 {
|
|
||||||
margin: 14px 5px 5px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .navbar-top-links li:last-child {
|
|
||||||
margin-right: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow.fixed-nav .minimalize-styl-2 {
|
|
||||||
margin: 14px 5px 5px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .spin-icon {
|
|
||||||
background: #ecba52 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.boxed-layout.skin-yellow #wrapper {
|
|
||||||
background: #3e2c42;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav-header {
|
|
||||||
background: #ecba52;
|
|
||||||
background: url('patterns/header-profile-skin-yellow.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow.mini-navbar .nav-second-level {
|
|
||||||
background: #3e2c42;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .breadcrumb {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .page-heading {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav>li.active {
|
|
||||||
background: #38283c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fixed-nav.skin-yellow .navbar-fixed-top {
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav>li>a {
|
|
||||||
color: #948b96;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav>li.active>a {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .navbar-minimalize {
|
|
||||||
background: #ecba52;
|
|
||||||
border-color: #ecba52;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.skin-yellow {
|
|
||||||
background: #3e2c42;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .navbar-static-top {
|
|
||||||
background: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .dashboard-header {
|
|
||||||
background: transparent;
|
|
||||||
border-bottom: none !important;
|
|
||||||
border-top: none;
|
|
||||||
padding: 20px 30px 10px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .wrapper-content {
|
|
||||||
padding: 30px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow #page-wrapper {
|
|
||||||
background: #f4f6fa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .ibox-title, .skin-yellow .ibox-content {
|
|
||||||
border-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .ibox-content:last-child {
|
|
||||||
border-style: solid solid solid solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav>li.active {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav-header {
|
|
||||||
padding: 35px 25px 25px 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav-header a.dropdown-toggle {
|
|
||||||
color: #fff;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav-header a.dropdown-toggle .text-muted {
|
|
||||||
color: #fff;
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .profile-element {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .img-circle {
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .navbar-default .nav>li>a:hover, .skin-yellow .navbar-default .nav>li>a:focus {
|
|
||||||
background: #38283c;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav.nav-tabs>li.active>a {
|
|
||||||
color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav.nav-tabs>li.active {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .content-tabs {
|
|
||||||
border-bottom: solid 2px #3e2c42;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .nav.nav-tabs>li.active {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .page-tabs a.active {
|
|
||||||
background: #3e2c42;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skin-yellow .page-tabs a.active:hover, .skin-yellow .page-tabs a.active i:hover {
|
|
||||||
background: #38283c;
|
|
||||||
color: #fff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media ( min-width : 768px) {
|
@media ( min-width : 768px) {
|
||||||
|
@ -7279,7 +6911,8 @@ body.skin-yellow {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-header {
|
.navbar-header {
|
||||||
width: 60%;
|
width: 10%;
|
||||||
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-glyphicons {
|
.bs-glyphicons {
|
||||||
|
@ -7347,3 +6980,99 @@ body.skin-yellow {
|
||||||
border-color: #cccccc!important;
|
border-color: #cccccc!important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.folder-list li.active a {
|
||||||
|
color: #2791df;
|
||||||
|
background: #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav .logo {
|
||||||
|
background-color: #367fa9;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 0 solid transparent;
|
||||||
|
-webkit-transition: width .3s ease-in-out;
|
||||||
|
-o-transition: width .3s ease-in-out;
|
||||||
|
transition: width .3s ease-in-out;
|
||||||
|
display: block;
|
||||||
|
height: 50px;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 50px;
|
||||||
|
text-align: center;
|
||||||
|
width: 220px;
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
padding: 0 15px;
|
||||||
|
font-weight: 300;
|
||||||
|
overflow: hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-mini {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-lg {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.roleList {
|
||||||
|
color: #d5d5d5;
|
||||||
|
margin-right: 10px;
|
||||||
|
padding-top: 10px;
|
||||||
|
line-height: 1;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 110px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse .user-panel {
|
||||||
|
white-space: nowrap;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
padding: 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse .user-panel .image>img {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 45px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse .user-panel>.info {
|
||||||
|
padding: 5px 5px 5px 15px;
|
||||||
|
line-height: 1;
|
||||||
|
position: absolute;
|
||||||
|
left: 55px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse .user-panel>.info a {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse .user-panel>.info>p {
|
||||||
|
font-weight: 600;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-panel>.info>a>.fa,
|
||||||
|
.user-panel>.info>a>.ion,
|
||||||
|
.user-panel>.info>a>.glyphicon {
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav>li:hover .dropdown-menu {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content-main.max {
|
||||||
|
height: calc(100% - 110px);
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 9998;
|
||||||
|
margin: 0;
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* 通用css样式布局处理
|
* 通用css样式布局处理
|
||||||
* Copyright (c) 2018 ruoyi
|
* Copyright (c) 2019 ruoyi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** 基础通用 **/
|
/** 基础通用 **/
|
||||||
|
@ -13,6 +13,18 @@
|
||||||
.pb5 {
|
.pb5 {
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
.mt5 {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
.mr5 {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.mb5 {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
.ml5 {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
.mt10 {
|
.mt10 {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
@ -38,6 +50,14 @@
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 弹层组件 禁用样式 **/
|
||||||
|
.layer-disabled {
|
||||||
|
border: 1px #dedede solid !important;
|
||||||
|
background-color: #f1f1f1 !important;
|
||||||
|
color: #333 !important;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
/** 用户管理 样式布局 **/
|
/** 用户管理 样式布局 **/
|
||||||
.box {
|
.box {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -481,3 +501,35 @@ label {
|
||||||
display: none;
|
display: none;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
}
|
}
|
||||||
|
.navbar-right > .user-menu > .dropdown-menu {
|
||||||
|
border-top-right-radius:0;
|
||||||
|
border-top-left-radius:0;
|
||||||
|
padding:1px 0 0 0;
|
||||||
|
border-top-width:0;
|
||||||
|
width:138px;
|
||||||
|
}
|
||||||
|
.navbar-right > .user-menu .user-image {
|
||||||
|
float:left;
|
||||||
|
width:27px;
|
||||||
|
height:27px;
|
||||||
|
border-radius:50%;
|
||||||
|
margin-right:8px;
|
||||||
|
margin-top:-3px;
|
||||||
|
}
|
||||||
|
@media (max-width:767px) {
|
||||||
|
.navbar-right > .user-menu .user-image {
|
||||||
|
float:none;
|
||||||
|
margin-right:0;
|
||||||
|
margin-top:-8px;
|
||||||
|
line-height:10px;
|
||||||
|
}
|
||||||
|
}.dropdown-menu > li > a > .glyphicon,.dropdown-menu > li > a > .fa,.dropdown-menu > li > a > .ion {
|
||||||
|
margin-right:10px;
|
||||||
|
}
|
||||||
|
.dropdown-menu > li > a:hover {
|
||||||
|
background-color:#e1e3e9;
|
||||||
|
color:#333;
|
||||||
|
}
|
||||||
|
.dropdown-menu > .divider {
|
||||||
|
background-color:#eee;
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
/**
|
/**
|
||||||
* 菜单处理
|
* 首页方法封装处理
|
||||||
|
* Copyright (c) 2019 ruoyi
|
||||||
*/
|
*/
|
||||||
|
layer.config({
|
||||||
|
extend: 'moon/style.css',
|
||||||
|
skin: 'layer-ext-moon'
|
||||||
|
});
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
// MetsiMenu
|
// MetsiMenu
|
||||||
$('#side-menu').metisMenu();
|
$('#side-menu').metisMenu();
|
||||||
|
@ -45,6 +51,7 @@ function() {
|
||||||
if ($(this).width() < 769) {
|
if ($(this).width() < 769) {
|
||||||
$('body').addClass('mini-navbar');
|
$('body').addClass('mini-navbar');
|
||||||
$('.navbar-static-side').fadeIn();
|
$('.navbar-static-side').fadeIn();
|
||||||
|
$(".sidebar-collapse .logo").addClass("hide");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -55,12 +62,14 @@ function NavToggle() {
|
||||||
function SmoothlyMenu() {
|
function SmoothlyMenu() {
|
||||||
if (!$('body').hasClass('mini-navbar')) {
|
if (!$('body').hasClass('mini-navbar')) {
|
||||||
$('#side-menu').hide();
|
$('#side-menu').hide();
|
||||||
|
$(".sidebar-collapse .logo").removeClass("hide");
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
$('#side-menu').fadeIn(500);
|
$('#side-menu').fadeIn(500);
|
||||||
},
|
},
|
||||||
100);
|
100);
|
||||||
} else if ($('body').hasClass('fixed-sidebar')) {
|
} else if ($('body').hasClass('fixed-sidebar')) {
|
||||||
$('#side-menu').hide();
|
$('#side-menu').hide();
|
||||||
|
$(".sidebar-collapse .logo").addClass("hide");
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
$('#side-menu').fadeIn(500);
|
$('#side-menu').fadeIn(500);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* 通用方法封装处理
|
* 通用方法封装处理
|
||||||
* Copyright (c) 2018 ruoyi
|
* Copyright (c) 2019 ruoyi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
// select2复选框事件绑定
|
// select2复选框事件绑定
|
||||||
if ($.fn.select2 !== undefined) {
|
if ($.fn.select2 !== undefined) {
|
||||||
|
@ -191,3 +190,7 @@ $.ajaxSetup({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
layer.config({
|
||||||
|
extend: 'moon/style.css',
|
||||||
|
skin: 'layer-ext-moon'
|
||||||
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* 通用js方法封装处理
|
* 通用js方法封装处理
|
||||||
* Copyright (c) 2018 ruoyi
|
* Copyright (c) 2019 ruoyi
|
||||||
*/
|
*/
|
||||||
(function ($) {
|
(function ($) {
|
||||||
$.extend({
|
$.extend({
|
||||||
|
@ -18,6 +18,7 @@
|
||||||
_sortName = $.common.isEmpty(options.sortName) ? "" : options.sortName;
|
_sortName = $.common.isEmpty(options.sortName) ? "" : options.sortName;
|
||||||
_striped = $.common.isEmpty(options.striped) ? false : options.striped;
|
_striped = $.common.isEmpty(options.striped) ? false : options.striped;
|
||||||
_escape = $.common.isEmpty(options.escape) ? false : options.escape;
|
_escape = $.common.isEmpty(options.escape) ? false : options.escape;
|
||||||
|
_showFooter = $.common.isEmpty(options.showFooter) ? false : options.showFooter;
|
||||||
$('#bootstrap-table').bootstrapTable({
|
$('#bootstrap-table').bootstrapTable({
|
||||||
url: options.url, // 请求后台的URL(*)
|
url: options.url, // 请求后台的URL(*)
|
||||||
contentType: "application/x-www-form-urlencoded", // 编码类型
|
contentType: "application/x-www-form-urlencoded", // 编码类型
|
||||||
|
@ -33,6 +34,7 @@
|
||||||
pageSize: 10, // 每页的记录行数(*)
|
pageSize: 10, // 每页的记录行数(*)
|
||||||
pageList: [10, 25, 50], // 可供选择的每页的行数(*)
|
pageList: [10, 25, 50], // 可供选择的每页的行数(*)
|
||||||
escape: _escape, // 转义HTML字符串
|
escape: _escape, // 转义HTML字符串
|
||||||
|
showFooter: _showFooter, // 是否显示表尾
|
||||||
iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
|
iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
|
||||||
toolbar: '#toolbar', // 指定工作栏
|
toolbar: '#toolbar', // 指定工作栏
|
||||||
sidePagination: "server", // 启用服务端分页
|
sidePagination: "server", // 启用服务端分页
|
||||||
|
@ -121,7 +123,7 @@
|
||||||
$.form.reset(currentId);
|
$.form.reset(currentId);
|
||||||
layer.open({
|
layer.open({
|
||||||
type: 1,
|
type: 1,
|
||||||
area: ['400px'],
|
area: ['400px', '230px'],
|
||||||
fix: false,
|
fix: false,
|
||||||
//不固定
|
//不固定
|
||||||
maxmin: true,
|
maxmin: true,
|
||||||
|
@ -138,12 +140,11 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var index = layer.load(2, {shade: false});
|
var index = layer.load(2, {shade: false});
|
||||||
var url = prefix + "/importData";
|
|
||||||
var formData = new FormData();
|
var formData = new FormData();
|
||||||
formData.append("file", $('#file')[0].files[0]);
|
formData.append("file", $('#file')[0].files[0]);
|
||||||
formData.append("updateSupport", $("input[name='updateSupport']").is(':checked'));
|
formData.append("updateSupport", $("input[name='updateSupport']").is(':checked'));
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: $.table._option.importUrl,
|
||||||
data: formData,
|
data: formData,
|
||||||
cache: false,
|
cache: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
|
@ -466,6 +467,14 @@
|
||||||
});
|
});
|
||||||
layer.full(index);
|
layer.full(index);
|
||||||
},
|
},
|
||||||
|
// 禁用按钮
|
||||||
|
disable: function() {
|
||||||
|
$("a[class*=layui-layer-btn]", window.parent.document).addClass("layer-disabled");
|
||||||
|
},
|
||||||
|
// 启用按钮
|
||||||
|
enable: function() {
|
||||||
|
$("a[class*=layui-layer-btn]", window.parent.document).removeClass("layer-disabled");
|
||||||
|
},
|
||||||
// 打开遮罩层
|
// 打开遮罩层
|
||||||
loading: function (message) {
|
loading: function (message) {
|
||||||
$.blockUI({ message: '<div class="loaderbox"><div class="loading-activity"></div> ' + message + '</div>' });
|
$.blockUI({ message: '<div class="loaderbox"><div class="loading-activity"></div> ' + message + '</div>' });
|
||||||
|
@ -485,12 +494,14 @@
|
||||||
operate: {
|
operate: {
|
||||||
// 提交数据
|
// 提交数据
|
||||||
submit: function(url, type, dataType, data) {
|
submit: function(url, type, dataType, data) {
|
||||||
$.modal.loading("正在处理中,请稍后...");
|
|
||||||
var config = {
|
var config = {
|
||||||
url: url,
|
url: url,
|
||||||
type: type,
|
type: type,
|
||||||
dataType: dataType,
|
dataType: dataType,
|
||||||
data: data,
|
data: data,
|
||||||
|
beforeSend: function () {
|
||||||
|
$.modal.loading("正在处理中,请稍后...");
|
||||||
|
},
|
||||||
success: function(result) {
|
success: function(result) {
|
||||||
$.operate.ajaxSuccess(result);
|
$.operate.ajaxSuccess(result);
|
||||||
}
|
}
|
||||||
|
@ -608,12 +619,15 @@
|
||||||
},
|
},
|
||||||
// 保存信息
|
// 保存信息
|
||||||
save: function(url, data) {
|
save: function(url, data) {
|
||||||
$.modal.loading("正在处理中,请稍后...");
|
|
||||||
var config = {
|
var config = {
|
||||||
url: url,
|
url: url,
|
||||||
type: "post",
|
type: "post",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
data: data,
|
data: data,
|
||||||
|
beforeSend: function () {
|
||||||
|
$.modal.loading("正在处理中,请稍后...");
|
||||||
|
$.modal.disable();
|
||||||
|
},
|
||||||
success: function(result) {
|
success: function(result) {
|
||||||
$.operate.successCallback(result);
|
$.operate.successCallback(result);
|
||||||
}
|
}
|
||||||
|
@ -657,6 +671,7 @@
|
||||||
$.modal.alertError(result.msg);
|
$.modal.alertError(result.msg);
|
||||||
}
|
}
|
||||||
$.modal.closeLoading();
|
$.modal.closeLoading();
|
||||||
|
$.modal.enable();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 校验封装处理
|
// 校验封装处理
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<!-- bootstrap-table 表格插件 -->
|
<!-- bootstrap-table 表格插件 -->
|
||||||
<script th:src="@{/ajax/libs/bootstrap-table/bootstrap-table.min.js}"></script>
|
<script th:src="@{/ajax/libs/bootstrap-table/bootstrap-table.min.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js}"></script>
|
<script th:src="@{/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js}"></script>
|
<script th:src="@{/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js}"></script>
|
<script th:src="@{/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js}"></script>
|
||||||
<!-- jquery-validate 表单验证插件 -->
|
<!-- jquery-validate 表单验证插件 -->
|
||||||
<script th:src="@{/ajax/libs/validate/jquery.validate.min.js}"></script>
|
<script th:src="@{/ajax/libs/validate/jquery.validate.min.js}"></script>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
<script th:src="@{/ajax/libs/iCheck/icheck.min.js}"></script>
|
<script th:src="@{/ajax/libs/iCheck/icheck.min.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
|
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
|
||||||
<script th:src="@{/ruoyi/js/common.js?v=3.1.0}"></script>
|
<script th:src="@{/ruoyi/js/common.js?v=3.2.0}"></script>
|
||||||
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.1.0}"></script>
|
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.2.0}"></script>
|
||||||
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
||||||
<script th:inline="javascript"> var ctx = [[@{/}]]; </script>
|
<script th:inline="javascript"> var ctx = [[@{/}]]; </script>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -15,7 +15,8 @@
|
||||||
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
||||||
<link th:href="@{/css/animate.css}" rel="stylesheet"/>
|
<link th:href="@{/css/animate.css}" rel="stylesheet"/>
|
||||||
<link th:href="@{/css/style.css}" rel="stylesheet"/>
|
<link th:href="@{/css/style.css}" rel="stylesheet"/>
|
||||||
<link th:href="@{/ruoyi/css/ry-ui.css?v=3.1.0}" rel="stylesheet"/>
|
<link th:href="@{/css/skins.css}" rel="stylesheet"/>
|
||||||
|
<link th:href="@{/ruoyi/css/ry-ui.css?v=3.2.0}" rel="stylesheet"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.nav > li:hover .dropdown-menu {display: block;}
|
.nav > li:hover .dropdown-menu {display: block;}
|
||||||
#content-main.max { height: calc(100% - 110px); overflow: hidden; width: 100%; height: 100%; left: 0px; position: absolute; top: 0px; z-index: 9998; margin: 0; }
|
#content-main.max { height: calc(100% - 110px); overflow: hidden; width: 100%; height: 100%; left: 0px; position: absolute; top: 0px; z-index: 9998; margin: 0; }
|
||||||
|
@ -31,17 +32,22 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="sidebar-collapse">
|
<div class="sidebar-collapse">
|
||||||
<ul class="nav" id="side-menu">
|
<ul class="nav" id="side-menu">
|
||||||
<li class="nav-header">
|
<li class="logo">
|
||||||
<div class="dropdown profile-element"> <span>
|
<span class="logo-lg">RuoYi</span>
|
||||||
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" alt="image" class="img-circle" height="60" width="60"/></span>
|
</li>
|
||||||
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
|
<li>
|
||||||
<span class="clear"><span class="block m-t-xs"><strong class="font-bold" th:text="${user.userName}">用户</strong></span>
|
<div class="user-panel">
|
||||||
<span class="text-muted text-xs block"><span th:text="${user.dept?.deptName}">部门</span> <b class="caret"></b></span> </span> </a>
|
<a class="menuItem" title="个人中心" th:href="@{/system/user/profile}">
|
||||||
<ul class="dropdown-menu animated fadeInRight m-t-xs">
|
<div class="hide" th:text="个人中心"></div>
|
||||||
<li><a class="menuItem" th:href="@{/system/user/profile}">个人信息</a></li>
|
<div class="pull-left image">
|
||||||
<li class="divider"></li>
|
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" class="img-circle" alt="User Image">
|
||||||
<li><a th:href="@{logout}">退出</a></li>
|
</div>
|
||||||
</ul>
|
</a>
|
||||||
|
<div class="pull-left info">
|
||||||
|
<p>[[${user.loginName}]]</p>
|
||||||
|
<a href="#"><i class="fa fa-circle text-success"></i> 在线</a>
|
||||||
|
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="active">
|
<li class="active">
|
||||||
|
@ -74,20 +80,35 @@
|
||||||
<!--右侧部分开始-->
|
<!--右侧部分开始-->
|
||||||
<div id="page-wrapper" class="gray-bg dashbard-1">
|
<div id="page-wrapper" class="gray-bg dashbard-1">
|
||||||
<div class="row border-bottom">
|
<div class="row border-bottom">
|
||||||
<nav class="navbar navbar-static-top" role="navigation"
|
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
|
||||||
style="margin-bottom: 0">
|
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
|
<a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="#" title="收起菜单">
|
||||||
<a class="navbar-minimalize minimalize-styl-2 btn btn-default " href="#" title="收起菜单">
|
|
||||||
<i class="fa fa-bars"></i>
|
<i class="fa fa-bars"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="nav navbar-top-links navbar-right welcome-message">
|
<ul class="nav navbar-top-links navbar-right welcome-message">
|
||||||
<li>
|
<li><a title="全屏显示" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏显示</a></li>
|
||||||
<span class="m-r-sm text-muted">欢迎来到若依管理后台.</span>
|
<li class="dropdown user-menu">
|
||||||
|
<a href="javascript:" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">
|
||||||
|
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" class="user-image">
|
||||||
|
<span class="hidden-xs">[[${user.userName}]]</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="mt5">
|
||||||
|
<a th:href="@{/system/user/profile}" class="menuItem">
|
||||||
|
<i class="fa fa-user"></i> 个人中心</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a onclick="resetPwd()" class="menuItem">
|
||||||
|
<i class="fa fa-key"></i> 修改密码</a>
|
||||||
|
</li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li>
|
||||||
|
<a th:href="@{logout}">
|
||||||
|
<i class="fa fa-sign-out"></i> 退出登录</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a id="fullScreen"><i class="fa fa-arrows-alt"></i>全屏</a></li>
|
|
||||||
<li><a th:href="@{logout}"><i class="fa fa-sign-out"></i>退出</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
@ -137,8 +158,16 @@
|
||||||
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||||||
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
||||||
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.1.0}"></script>
|
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.2.0}"></script>
|
||||||
<script th:src="@{/ruoyi/index.js}"></script>
|
<script th:src="@{/ruoyi/index.js}"></script>
|
||||||
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
|
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
|
||||||
|
<script th:inline="javascript">
|
||||||
|
var ctx = [[@{/}]];
|
||||||
|
/*用户管理-重置密码*/
|
||||||
|
function resetPwd() {
|
||||||
|
var url = ctx + 'system/user/profile/resetPwd';
|
||||||
|
$.modal.open("重置密码", url, '800', '500');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<link href="../static/css/font-awesome.min.css" th:href="@{css/font-awesome.min.css}" rel="stylesheet"/>
|
<link href="../static/css/font-awesome.min.css" th:href="@{css/font-awesome.min.css}" rel="stylesheet"/>
|
||||||
<link href="../static/css/style.css" th:href="@{css/style.css}" rel="stylesheet"/>
|
<link href="../static/css/style.css" th:href="@{css/style.css}" rel="stylesheet"/>
|
||||||
<link href="../static/css/login.min.css" th:href="@{css/login.min.css}" rel="stylesheet"/>
|
<link href="../static/css/login.min.css" th:href="@{css/login.min.css}" rel="stylesheet"/>
|
||||||
<link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=3.1.0}" rel="stylesheet"/>
|
<link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=3.2.0}" rel="stylesheet"/>
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<meta http-equiv="refresh" content="0;ie.html" />
|
<meta http-equiv="refresh" content="0;ie.html" />
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
<script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
<script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||||||
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
||||||
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
||||||
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=3.1.0}"></script>
|
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=3.2.0}"></script>
|
||||||
<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
|
<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -94,13 +94,53 @@
|
||||||
<div class="ibox-content no-padding">
|
<div class="ibox-content no-padding">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="panel-group" id="version">
|
<div class="panel-group" id="version">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h5 class="panel-title">
|
||||||
|
<a data-toggle="collapse" data-parent="#version" href="#v32">v3.2.0</a><code class="pull-right">2019.01.18</code>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
<div id="v32" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body">
|
||||||
|
<ol>
|
||||||
|
<li>部门修改时不允许选择最后节点</li>
|
||||||
|
<li>修复部门菜单排序字段无效</li>
|
||||||
|
<li>修复光驱磁盘导致服务监控异常</li>
|
||||||
|
<li>登录界面去除check插件</li>
|
||||||
|
<li>验证码文本字符间距修正</li>
|
||||||
|
<li>升级SpringBoot到最新版本2.1.1</li>
|
||||||
|
<li>升级MYSQL驱动</li>
|
||||||
|
<li>修正登录必填项位置偏移</li>
|
||||||
|
<li>Session会话检查优化</li>
|
||||||
|
<li>Excel注解支持多级获取</li>
|
||||||
|
<li>新增序列号生成方法</li>
|
||||||
|
<li>修复WAR部署tomcat退出线程异常</li>
|
||||||
|
<li>全屏操作增加默认确认/关闭</li>
|
||||||
|
<li>修复个人信息可能导致漏洞</li>
|
||||||
|
<li>字典数据根据下拉选择新增类型</li>
|
||||||
|
<li>升级Summernote到最新版本v0.8.11</li>
|
||||||
|
<li>新增用户数据导入</li>
|
||||||
|
<li>首页主题样式更换</li>
|
||||||
|
<li>layer扩展主题更换</li>
|
||||||
|
<li>用户管理移动端默认隐藏左侧布局</li>
|
||||||
|
<li>详细信息弹出层显示在顶层</li>
|
||||||
|
<li>表格支持切换状态(用户/角色/定时任务)</li>
|
||||||
|
<li>Druid数据源支持配置继承</li>
|
||||||
|
<li>修正部分iPhone手机端表格适配问题</li>
|
||||||
|
<li>新增防止重复提交表单方法</li>
|
||||||
|
<li>新增表格数据统计汇总方法</li>
|
||||||
|
<li>支持富文本上传图片文件</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h5 class="panel-title">
|
<h5 class="panel-title">
|
||||||
<a data-toggle="collapse" data-parent="#version" href="#v31">v3.1.0</a><code class="pull-right">2018.12.03</code>
|
<a data-toggle="collapse" data-parent="#version" href="#v31">v3.1.0</a><code class="pull-right">2018.12.03</code>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div id="v31" class="panel-collapse collapse in">
|
<div id="v31" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<ol>
|
<ol>
|
||||||
<li>新增内网不获取IP地址</li>
|
<li>新增内网不获取IP地址</li>
|
||||||
|
|
|
@ -107,11 +107,11 @@
|
||||||
title: '执行表达式'
|
title: '执行表达式'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'status',
|
visible: statusFlag == 'hidden' ? false : true,
|
||||||
title: '任务状态',
|
title: '任务状态',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: function(value, row, index) {
|
formatter: function (value, row, index) {
|
||||||
return $.table.selectDictLabel(datas, value);
|
return statusTools(row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -124,7 +124,6 @@
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: function(value, row, index) {
|
formatter: function(value, row, index) {
|
||||||
var actions = [];
|
var actions = [];
|
||||||
actions.push(statusTools(row));
|
|
||||||
actions.push('<a class="btn btn-primary btn-xs ' + statusFlag + '" href="#" onclick="run(\'' + row.jobId + '\')"><i class="fa fa-play-circle-o"></i> 执行</a> ');
|
actions.push('<a class="btn btn-primary btn-xs ' + statusFlag + '" href="#" onclick="run(\'' + row.jobId + '\')"><i class="fa fa-play-circle-o"></i> 执行</a> ');
|
||||||
actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="#" onclick="$.operate.detail(\'' + row.jobId + '\')"><i class="fa fa-search"></i>详细</a> ');
|
actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="#" onclick="$.operate.detail(\'' + row.jobId + '\')"><i class="fa fa-search"></i>详细</a> ');
|
||||||
return actions.join('');
|
return actions.join('');
|
||||||
|
@ -134,36 +133,37 @@
|
||||||
$.table.init(options);
|
$.table.init(options);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* 调度任务状态显示 */
|
||||||
function statusTools(row) {
|
function statusTools(row) {
|
||||||
if (row.status == 1) {
|
if (row.status == 1) {
|
||||||
return '<a class="btn btn-info btn-xs ' + statusFlag + '" href="#" onclick="start(\'' + row.jobId + '\')"><i class="fa fa-play"></i>启用</a> ';
|
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="start(\'' + row.jobId + '\')"></i> ';
|
||||||
} else {
|
} else {
|
||||||
return '<a class="btn btn-danger btn-xs ' + statusFlag + '" href="#" onclick="stop(\'' + row.jobId + '\')"><i class="fa fa-pause"></i>暂停</a> ';
|
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="stop(\'' + row.jobId + '\')"></i> ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*立即执行一次*/
|
/* 立即执行一次 */
|
||||||
function run(jobId) {
|
function run(jobId) {
|
||||||
$.modal.confirm("确认要立即执行任务吗?", function() {
|
$.modal.confirm("确认要立即执行任务吗?", function() {
|
||||||
$.operate.post(prefix + "/run", { "jobId": jobId});
|
$.operate.post(prefix + "/run", { "jobId": jobId});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/*调度任务-停用*/
|
/* 调度任务-停用 */
|
||||||
function stop(jobId) {
|
function stop(jobId) {
|
||||||
$.modal.confirm("确认要停用任务吗?", function() {
|
$.modal.confirm("确认要停用任务吗?", function() {
|
||||||
$.operate.post(prefix + "/changeStatus", { "jobId": jobId, "status": 1 });
|
$.operate.post(prefix + "/changeStatus", { "jobId": jobId, "status": 1 });
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/*调度任务-启用*/
|
/* 调度任务-启用 */
|
||||||
function start(jobId) {
|
function start(jobId) {
|
||||||
$.modal.confirm("确认要启用任务吗?", function() {
|
$.modal.confirm("确认要启用任务吗?", function() {
|
||||||
$.operate.post(prefix + "/changeStatus", { "jobId": jobId, "status": 0 });
|
$.operate.post(prefix + "/changeStatus", { "jobId": jobId, "status": 0 });
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//调度日志查询
|
/* 调度日志查询 */
|
||||||
function jobLog(id) {
|
function jobLog(id) {
|
||||||
var url = ctx + 'monitor/jobLog';
|
var url = ctx + 'monitor/jobLog';
|
||||||
createMenuItem(url, "调度日志");
|
createMenuItem(url, "调度日志");
|
||||||
|
|
|
@ -47,9 +47,39 @@
|
||||||
|
|
||||||
$('.summernote').summernote({
|
$('.summernote').summernote({
|
||||||
height : '220px',
|
height : '220px',
|
||||||
lang : 'zh-CN'
|
lang : 'zh-CN',
|
||||||
|
callbacks: {
|
||||||
|
onImageUpload: function (files) {
|
||||||
|
sendFile(files[0], this);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 上传文件
|
||||||
|
function sendFile(file, obj) {
|
||||||
|
var data = new FormData();
|
||||||
|
data.append("file", file);
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: ctx + "common/upload",
|
||||||
|
data: data,
|
||||||
|
cache: false,
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(result) {
|
||||||
|
if (result.code == web_status.SUCCESS) {
|
||||||
|
$(obj).summernote('editor.insertImage', result.url, result.fileName);
|
||||||
|
} else {
|
||||||
|
$.modal.alertError(result.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
$.modal.alertWarning("图片上传失败。");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$("#form-notice-add").validate({
|
$("#form-notice-add").validate({
|
||||||
rules:{
|
rules:{
|
||||||
noticeTitle:{
|
noticeTitle:{
|
||||||
|
|
|
@ -49,12 +49,42 @@
|
||||||
$(function() {
|
$(function() {
|
||||||
$('.summernote').summernote({
|
$('.summernote').summernote({
|
||||||
height : '220px',
|
height : '220px',
|
||||||
lang : 'zh-CN'
|
lang : 'zh-CN',
|
||||||
|
callbacks: {
|
||||||
|
onImageUpload: function (files) {
|
||||||
|
sendFile(files[0], this);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
var content = $("#noticeContent").val();
|
var content = $("#noticeContent").val();
|
||||||
$('#editor').summernote('code', content);
|
$('#editor').summernote('code', content);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 上传文件
|
||||||
|
function sendFile(file, obj) {
|
||||||
|
var data = new FormData();
|
||||||
|
data.append("file", file);
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: ctx + "common/upload",
|
||||||
|
data: data,
|
||||||
|
cache: false,
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(result) {
|
||||||
|
if (result.code == web_status.SUCCESS) {
|
||||||
|
$(obj).summernote('editor.insertImage', result.url, result.fileName);
|
||||||
|
} else {
|
||||||
|
$.modal.alertError(result.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
$.modal.alertWarning("图片上传失败。");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$("#form-notice-edit").validate({
|
$("#form-notice-edit").validate({
|
||||||
rules:{
|
rules:{
|
||||||
noticeTitle:{
|
noticeTitle:{
|
||||||
|
|
|
@ -100,11 +100,11 @@
|
||||||
sortable: true
|
sortable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'status',
|
visible: editFlag == 'hidden' ? false : true,
|
||||||
title: '状态',
|
title: '角色状态',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: function(value, row, index) {
|
formatter: function (value, row, index) {
|
||||||
return $.table.selectDictLabel(datas, value);
|
return statusTools(row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -127,11 +127,34 @@
|
||||||
$.table.init(options);
|
$.table.init(options);
|
||||||
});
|
});
|
||||||
|
|
||||||
/*角色管理-分配数据权限*/
|
/* 角色管理-分配数据权限 */
|
||||||
function rule(roleId) {
|
function rule(roleId) {
|
||||||
var url = prefix + '/rule/' + roleId;
|
var url = prefix + '/rule/' + roleId;
|
||||||
$.modal.open("分配数据权限", url);
|
$.modal.open("分配数据权限", url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 角色状态显示 */
|
||||||
|
function statusTools(row) {
|
||||||
|
if (row.status == 1) {
|
||||||
|
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.roleId + '\')"></i> ';
|
||||||
|
} else {
|
||||||
|
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.roleId + '\')"></i> ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 角色管理-停用 */
|
||||||
|
function disable(roleId) {
|
||||||
|
$.modal.confirm("确认要停用角色吗?", function() {
|
||||||
|
$.operate.post(prefix + "/changeStatus", { "roleId": roleId, "status": 1 });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 角色管理启用 */
|
||||||
|
function enable(roleId) {
|
||||||
|
$.modal.confirm("确认要启用角色吗?", function() {
|
||||||
|
$.operate.post(prefix + "/changeStatus", { "roleId": roleId, "status": 0 });
|
||||||
|
})
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -151,11 +151,11 @@
|
||||||
title: '手机'
|
title: '手机'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'status',
|
visible: editFlag == 'hidden' ? false : true,
|
||||||
title: '状态',
|
title: '用户状态',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: function(value, row, index) {
|
formatter: function (value, row, index) {
|
||||||
return $.table.selectDictLabel(datas, value);
|
return statusTools(row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -211,17 +211,40 @@
|
||||||
queryDeptTree();
|
queryDeptTree();
|
||||||
});
|
});
|
||||||
|
|
||||||
/*用户管理-部门*/
|
/* 用户管理-部门 */
|
||||||
function dept() {
|
function dept() {
|
||||||
var url = ctx + "system/dept";
|
var url = ctx + "system/dept";
|
||||||
createMenuItem(url, "部门管理");
|
createMenuItem(url, "部门管理");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*用户管理-重置密码*/
|
/* 用户管理-重置密码 */
|
||||||
function resetPwd(userId) {
|
function resetPwd(userId) {
|
||||||
var url = prefix + '/resetPwd/' + userId;
|
var url = prefix + '/resetPwd/' + userId;
|
||||||
$.modal.open("重置密码", url, '800', '300');
|
$.modal.open("重置密码", url, '800', '300');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 用户状态显示 */
|
||||||
|
function statusTools(row) {
|
||||||
|
if (row.status == 1) {
|
||||||
|
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
|
||||||
|
} else {
|
||||||
|
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 用户管理-停用 */
|
||||||
|
function disable(userId) {
|
||||||
|
$.modal.confirm("确认要停用用户吗?", function() {
|
||||||
|
$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 1 });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 用户管理启用 */
|
||||||
|
function enable(userId) {
|
||||||
|
$.modal.confirm("确认要启用用户吗?", function() {
|
||||||
|
$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 0 });
|
||||||
|
})
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
<form id="importForm" enctype="multipart/form-data" class="mt20 mb10" style="display: none;">
|
<form id="importForm" enctype="multipart/form-data" class="mt20 mb10" style="display: none;">
|
||||||
|
|
|
@ -122,13 +122,21 @@ public class Global
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取下载上传路径
|
* 获取下载路径
|
||||||
*/
|
*/
|
||||||
public static String getDownloadPath()
|
public static String getDownloadPath()
|
||||||
{
|
{
|
||||||
return getConfig("ruoyi.profile") + "download/";
|
return getConfig("ruoyi.profile") + "download/";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取上传路径
|
||||||
|
*/
|
||||||
|
public static String getUploadPath()
|
||||||
|
{
|
||||||
|
return getConfig("ruoyi.profile") + "upload/";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取作者
|
* 获取作者
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -30,9 +30,9 @@ import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
||||||
import org.apache.poi.ss.util.CellRangeAddressList;
|
import org.apache.poi.ss.util.CellRangeAddressList;
|
||||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import com.ruoyi.common.annotation.Excel;
|
import com.ruoyi.common.annotation.Excel;
|
||||||
|
@ -133,7 +133,7 @@ public class ExcelUtil<T>
|
||||||
public List<T> importExcel(String sheetName, InputStream is) throws Exception
|
public List<T> importExcel(String sheetName, InputStream is) throws Exception
|
||||||
{
|
{
|
||||||
this.type = Type.IMPORT;
|
this.type = Type.IMPORT;
|
||||||
this.wb = new XSSFWorkbook(is);
|
this.wb = WorkbookFactory.create(is);
|
||||||
List<T> list = new ArrayList<T>();
|
List<T> list = new ArrayList<T>();
|
||||||
Sheet sheet = null;
|
Sheet sheet = null;
|
||||||
if (StringUtils.isNotEmpty(sheetName))
|
if (StringUtils.isNotEmpty(sheetName))
|
||||||
|
|
|
@ -8,8 +8,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
||||||
import com.ruoyi.common.enums.DataSourceType;
|
import com.ruoyi.common.enums.DataSourceType;
|
||||||
|
import com.ruoyi.framework.config.properties.DruidProperties;
|
||||||
import com.ruoyi.framework.datasource.DynamicDataSource;
|
import com.ruoyi.framework.datasource.DynamicDataSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,17 +24,19 @@ public class DruidConfig
|
||||||
{
|
{
|
||||||
@Bean
|
@Bean
|
||||||
@ConfigurationProperties("spring.datasource.druid.master")
|
@ConfigurationProperties("spring.datasource.druid.master")
|
||||||
public DataSource masterDataSource()
|
public DataSource masterDataSource(DruidProperties druidProperties)
|
||||||
{
|
{
|
||||||
return DruidDataSourceBuilder.create().build();
|
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
||||||
|
return druidProperties.dataSource(dataSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConfigurationProperties("spring.datasource.druid.slave")
|
@ConfigurationProperties("spring.datasource.druid.slave")
|
||||||
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
|
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
|
||||||
public DataSource slaveDataSource()
|
public DataSource slaveDataSource(DruidProperties druidProperties)
|
||||||
{
|
{
|
||||||
return DruidDataSourceBuilder.create().build();
|
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
||||||
|
return druidProperties.dataSource(dataSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "dynamicDataSource")
|
@Bean(name = "dynamicDataSource")
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.ruoyi.framework.config;
|
||||||
|
|
||||||
|
import org.springframework.boot.web.context.WebServerInitializedEvent;
|
||||||
|
import org.springframework.context.ApplicationListener;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务相关配置
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class ServerConfig implements ApplicationListener<WebServerInitializedEvent>
|
||||||
|
{
|
||||||
|
private int serverPort;
|
||||||
|
|
||||||
|
public String getUrl()
|
||||||
|
{
|
||||||
|
InetAddress address = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
address = InetAddress.getLocalHost();
|
||||||
|
}
|
||||||
|
catch (UnknownHostException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return "http://" + address.getHostAddress() + ":" + this.serverPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onApplicationEvent(WebServerInitializedEvent event)
|
||||||
|
{
|
||||||
|
this.serverPort = event.getWebServer().getPort();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
package com.ruoyi.framework.config.properties;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* druid 配置属性
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class DruidProperties
|
||||||
|
{
|
||||||
|
@Value("${spring.datasource.druid.initialSize}")
|
||||||
|
private int initialSize;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.minIdle}")
|
||||||
|
private int minIdle;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.maxActive}")
|
||||||
|
private int maxActive;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.maxWait}")
|
||||||
|
private int maxWait;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")
|
||||||
|
private int timeBetweenEvictionRunsMillis;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")
|
||||||
|
private int minEvictableIdleTimeMillis;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")
|
||||||
|
private int maxEvictableIdleTimeMillis;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.validationQuery}")
|
||||||
|
private String validationQuery;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.testWhileIdle}")
|
||||||
|
private boolean testWhileIdle;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.testOnBorrow}")
|
||||||
|
private boolean testOnBorrow;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.testOnReturn}")
|
||||||
|
private boolean testOnReturn;
|
||||||
|
|
||||||
|
public DruidDataSource dataSource(DruidDataSource datasource)
|
||||||
|
{
|
||||||
|
/** 配置初始化大小、最小、最大 */
|
||||||
|
datasource.setInitialSize(initialSize);
|
||||||
|
datasource.setMaxActive(maxActive);
|
||||||
|
datasource.setMinIdle(minIdle);
|
||||||
|
|
||||||
|
/** 配置获取连接等待超时的时间 */
|
||||||
|
datasource.setMaxWait(maxWait);
|
||||||
|
|
||||||
|
/** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
|
||||||
|
datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
|
||||||
|
|
||||||
|
/** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
|
||||||
|
datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
|
||||||
|
datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
|
||||||
|
*/
|
||||||
|
datasource.setValidationQuery(validationQuery);
|
||||||
|
/** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
|
||||||
|
datasource.setTestWhileIdle(testWhileIdle);
|
||||||
|
/** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
|
||||||
|
datasource.setTestOnBorrow(testOnBorrow);
|
||||||
|
/** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
|
||||||
|
datasource.setTestOnReturn(testOnReturn);
|
||||||
|
return datasource;
|
||||||
|
}
|
||||||
|
}
|
|
@ -114,4 +114,12 @@ public interface ISysRoleService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int countUserRoleByRoleId(Long roleId);
|
public int countUserRoleByRoleId(Long roleId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色状态修改
|
||||||
|
*
|
||||||
|
* @param role 角色信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int changeStatus(SysRole role);
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,4 +148,12 @@ public interface ISysUserService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
|
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户状态修改
|
||||||
|
*
|
||||||
|
* @param user 用户信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int changeStatus(SysUser user);
|
||||||
}
|
}
|
||||||
|
|
|
@ -298,4 +298,16 @@ public class SysRoleServiceImpl implements ISysRoleService
|
||||||
{
|
{
|
||||||
return userRoleMapper.countUserRoleByRoleId(roleId);
|
return userRoleMapper.countUserRoleByRoleId(roleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色状态修改
|
||||||
|
*
|
||||||
|
* @param role 角色信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int changeStatus(SysRole role)
|
||||||
|
{
|
||||||
|
return roleMapper.updateRole(role);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,6 +371,7 @@ public class SysUserServiceImpl implements ISysUserService
|
||||||
* @param operName 操作用户
|
* @param operName 操作用户
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
|
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
|
||||||
{
|
{
|
||||||
if (StringUtils.isNull(userList) || userList.size() == 0)
|
if (StringUtils.isNull(userList) || userList.size() == 0)
|
||||||
|
@ -428,4 +429,20 @@ public class SysUserServiceImpl implements ISysUserService
|
||||||
}
|
}
|
||||||
return successMsg.toString();
|
return successMsg.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户状态修改
|
||||||
|
*
|
||||||
|
* @param user 用户信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int changeStatus(SysUser user)
|
||||||
|
{
|
||||||
|
if (SysUser.isAdmin(user.getUserId()))
|
||||||
|
{
|
||||||
|
throw new BusinessException("不允许修改超级管理员用户");
|
||||||
|
}
|
||||||
|
return userMapper.updateUser(user);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -514,7 +514,7 @@ create table sys_config (
|
||||||
primary key (config_id)
|
primary key (config_id)
|
||||||
) engine=innodb auto_increment=100 default charset=utf8 comment = '参数配置表';
|
) engine=innodb auto_increment=100 default charset=utf8 comment = '参数配置表';
|
||||||
|
|
||||||
insert into sys_config values(1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-default', 'Y', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '默认 skin-default、蓝色 skin-blue、黄色 skin-yellow' );
|
insert into sys_config values(1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' );
|
||||||
insert into sys_config values(2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '初始化密码 123456' );
|
insert into sys_config values(2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '初始化密码 123456' );
|
||||||
|
|
||||||
|
|
||||||
|
@ -607,7 +607,7 @@ create table sys_notice (
|
||||||
notice_id int(4) not null auto_increment comment '公告ID',
|
notice_id int(4) not null auto_increment comment '公告ID',
|
||||||
notice_title varchar(50) not null comment '公告标题',
|
notice_title varchar(50) not null comment '公告标题',
|
||||||
notice_type char(1) not null comment '公告类型(1通知 2公告)',
|
notice_type char(1) not null comment '公告类型(1通知 2公告)',
|
||||||
notice_content varchar(500) default '' comment '公告内容',
|
notice_content varchar(2000) default '' comment '公告内容',
|
||||||
status char(1) default '0' comment '公告状态(0正常 1关闭)',
|
status char(1) default '0' comment '公告状态(0正常 1关闭)',
|
||||||
create_by varchar(64) default '' comment '创建者',
|
create_by varchar(64) default '' comment '创建者',
|
||||||
create_time datetime comment '创建时间',
|
create_time datetime comment '创建时间',
|
Loading…
Reference in New Issue