Commit b39e0840 by liuyongshuai Committed by liuyongshuai

修复普通用户菜单无法加载的bug;修改给用户赋值角色的逻辑,不再进行父子级关联,但是给角色赋值权限可以进行父子级关联。

parent a0c2fdf5
......@@ -37,8 +37,7 @@ public class AccessController {
}finally {
if (msg == null) {
SysUser user1 = TokenUtil.getUser();
String userId = user1.getId();
List<List<SysPermissionNew>> list= userService.selectMenusByUserId(userId);
List<List<SysPermissionNew>> list= userService.selectMenusByUserId(user1);
//System.out.println(list);
model.addAttribute("list", list);
return "";
......
......@@ -36,7 +36,8 @@ public class PageJunpController {
//获取用户信息
SysUser user = TokenUtil.getUser();
String userId = user.getId();
List<List<SysPermissionNew>> list= userService.selectMenusByUserId(userId);
//获取菜单
List<List<SysPermissionNew>> list= userService.selectMenusByUserId(user);
//System.out.println(list);
model.addAttribute("list", list);
return "index";
......@@ -50,6 +51,6 @@ public class PageJunpController {
*/
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String welcome(Model model) throws Exception {
return "welcome";
return "redirect:/admin/user/index?msg=success";
}
}
......@@ -75,8 +75,7 @@ public class PermissionNewController {
*/
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String addIndex(Model model) {
JSONArray json =permissionService.selectAllPermissions();
model.addAttribute("parantMenus",json);
setZtreeData(model,userService,permissionService);
return "admin/permission/add";
}
......
......@@ -483,7 +483,7 @@
<select id="selectMencusByUserId" resultType="com.xzxtshiro.pojo.SysPermissionNew">
<!---->
SELECT
ID, NAME, MENUNAME, PID, PERMISSION, URL, ZINDEX
ID, NAME, MENUNAME, PID, PERMISSION, URL, TYPE
FROM
VW_USER_PERMISSION
where flag=1/*生成菜单*/
......
......@@ -22,7 +22,7 @@ public interface SysUserService {
SysUser login(String username, String password);
List<List<SysPermissionNew>> selectMenusByUserId(String userId);
List<List<SysPermissionNew>> selectMenusByUserId(SysUser user);
BaseModel selectSysUserPage(SysUser user);
......
......@@ -48,15 +48,19 @@ public class SysUserServiceImpl implements SysUserService {
return user;
}
/**
* 查询菜单
* @param user
* @return
*/
@Override
public List<List<SysPermissionNew>> selectMenusByUserId(String userId) {
List<String> roleIds = userDao.selectSysRoleIdByUserId(userId);
public List<List<SysPermissionNew>> selectMenusByUserId(SysUser user) {
List<SysPermissionNew> permissions = null;
//如果角色id包含,说明当前登录用户拥有超级管理员身份
if (roleIds.contains("6b281f7b1531106578cnv9ejyt4nsc")) {
//如果登陆用户为admin,则查询所有的菜单
if ("admin".equals(user.getUsername())) {
permissions = userDao.selectAllMenus();
} else {
permissions = userDao.selectMencusByUserId(userId);
permissions = userDao.selectMencusByUserId(user.getId());
}
List<List<SysPermissionNew>> list = null;
if (permissions.size() > 0) {
......
......@@ -11,7 +11,6 @@ import com.xzxtshiro.service.SysRoleService;
import com.xzxtshiro.service.SysUserService;
import net.sf.json.JSONArray;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import java.util.List;
......@@ -51,20 +50,21 @@ public class ZtreeDataUtil {
String usergrade = user.getGrade();
SysDictitem dictitem = new SysDictitem();
dictitem.setGroupid("CODE_UNIT");
if(usergrade==null||usergrade.equals("")){
dictitem.setCodeStr(unitStr+"%");
}else{
if (usergrade.equals("S") || usergrade.equals("T")) {
dictitem.setCodeStr(unitStr.substring(0,2)+"%");
} else if (usergrade.equals("D")) {
dictitem.setCodeStr(unitStr.substring(0,4)+"%");
} else if (usergrade.equals("X")) {
dictitem.setCodeStr(unitStr.substring(0,6)+"%");
}
else if (usergrade.equals("P")) {
dictitem.setCodeStr(unitStr+"%");
}
}
// if(usergrade==null||usergrade.equals("")){
//
// }else{
// if (usergrade.equals("S") || usergrade.equals("T")) {
// dictitem.setCodeStr(unitStr.substring(0,2)+"%");
// } else if (usergrade.equals("D")) {
// dictitem.setCodeStr(unitStr.substring(0,4)+"%");
// } else if (usergrade.equals("X")) {
// dictitem.setCodeStr(unitStr.substring(0,6)+"%");
// }
// else if (usergrade.equals("P")) {
// dictitem.setCodeStr(unitStr+"%");
// }
// }
//从缓存中取内容
try {
String result = jedisClient.hget("CODE_UNIT", dictitem.getCodeStr());
......
......@@ -32,7 +32,7 @@
</bean>
<!-- jedis客户端单机版 -->
<bean id="redisClient" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="host" value="192.168.121.1"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
</bean>
......
......@@ -202,7 +202,7 @@
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
}
setTree(zNodes,"tree","nocheck","pid","pidName");
setTree(zNodes,"tree","nocheck","pid","pidName","");
});
</script>
......
......@@ -147,7 +147,7 @@
$("#pidName").val("${oldPermission.name}");
}
}
setTree(zNodes,"tree","nocheck","pid","pidName");
setTree(zNodes,"tree","nocheck","pid","pidName","");
});
</script>
......
......@@ -72,7 +72,7 @@
<div class="layui-form-item">
<label class="layui-form-label">父级角色</label>
<div class="layui-input-block">
<input type="text" name="pidName" id="pidName" lay-verify="required"
<input type="text" name="pidName" id="pidName"
class="layui-input">
<input type="text" id="pid" Name="pid" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');">选择父级</span>
......@@ -134,14 +134,14 @@
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
}
setTree(zNodes,"permissionTree","check","permissionId","permissionName");
setTree(zNodes,"permissionTree","check","permissionId","permissionName","ps");
var data = ${role};
console.log(data);
var zNodes =[];
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].rolename,open:false,file:"core/simpleData"});
}
setTree(zNodes,"roleTree","nocheck","pid","pidName");
setTree(zNodes,"roleTree","nocheck","pid","pidName","");
});
......
......@@ -76,7 +76,7 @@
<div class="layui-form-item">
<label class="layui-form-label">父级角色</label>
<div class="layui-input-block">
<input type="text" name="pidName" id="pidName" lay-verify="required"
<input type="text" name="pidName" id="pidName"
class="layui-input">
<input type="text" id="pid" Name="pid" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');">选择父级</span>
......@@ -159,7 +159,7 @@
$("#permissionId").val(oldPerIdStr);
$("#permissionName").val(oldPerStr);
//设置权限树
setTree(zNodes,"permissionTree","check","permissionId","permissionName");
setTree(zNodes,"permissionTree","check","permissionId","permissionName","ps");
data = ${role};
console.log(data);
var zNodes =[];
......@@ -171,7 +171,7 @@
}
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].rolename,open:false,file:"core/simpleData"});
}
setTree(zNodes,"roleTree","nocheck","pid","pidName");
setTree(zNodes,"roleTree","nocheck","pid","pidName","");
});
</script>
......
......@@ -17,6 +17,9 @@
width: 110px;
height: 140px;
}
.btx>label{
color: red;
}
</style>
</head>
......@@ -48,7 +51,7 @@
<form class="layui-form layui-form-pane"
action="${pageContext.request.contextPath}/admin/user/add/"
method="post" enctype="multipart/form-data">
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">用户姓名</label>
<div class="layui-input-block">
<input type="text" name="trueName" lay-verify="required" placeholder="请输入用户姓名"
......@@ -56,7 +59,7 @@
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">用户账号</label>
<div class="layui-input-block">
<input type="text" name="username" lay-verify="required" placeholder="请输入用户账号"
......@@ -73,42 +76,49 @@
<input type="hidden" id="yhzpPath" name="yhzpPath" value=""/>
<button type="button" class="layui-btn" id="yhzpBtn"><i class="layui-icon"></i>上传照片</button>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">登录密码</label>
<div class="layui-input-block">
<input type="password" name="password" placeholder="请输入密码"
value="${user.password}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">密码确认</label>
<div class="layui-input-block">
<input type="password" name="repassword" placeholder="请输入确认密码"
value="${user.password}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">身份证号码</label>
<div class="layui-input-block">
<input type="text" name="identitycard" placeholder="请输入身份证号"
<input type="text" name="identitycard" lay-verify="identity" placeholder="请输入身份证号"
value="${user.identitycard}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">出生日期</label>
<div class="layui-input-block">
<input type="text" name="birthday" id="birthday" placeholder=""
value="${user.birthday}" class="layui-laydate-list">
</div>
</div>
<div class="layui-form-item btx">
<label class="layui-form-label">联系电话</label>
<div class="layui-input-block">
<input type="text" name="telephone" placeholder="请输入联系电话"
<input type="text" name="telephone" lay-verify="phone" placeholder="请输入联系电话"
value="${user.telephone}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">用户警号</label>
<div class="layui-input-block">
<input type="text" name="policemanid" placeholder="请输入警号"
value="${user.policemanid}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">用户等级</label>
<div class="layui-input-block">
<select id="grade" name="grade" lay-verify="" lay-filter="type">
......@@ -121,7 +131,7 @@
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">所属单位</label>
<div class="layui-input-block">
<input type="text" name="unitname" id="unitname" lay-verify="required"
......@@ -134,7 +144,7 @@
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item btx">
<label class="layui-form-label">用户角色</label>
<div class="layui-input-block">
<input type="text" name="roleName" id="roleName" lay-verify="required"
......@@ -146,7 +156,13 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<input type="text" name="remark" placeholder="请输入备注"
value="${user.remark}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户状态</label>
<div class="layui-input-block">
......@@ -161,6 +177,19 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<c:if test="${user.sex==1 or user.sex==null}">
<input type="radio" name="sex" value="1" title="男" checked>
<input type="radio" name="sex" value="2" title="女">
</c:if>
<c:if test="${user.sex==2}">
<input type="radio" name="sex" value="1" title="男">
<input type="radio" name="sex" value="2" title="女" checked>
</c:if>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">显示照片</label>
<div class="layui-input-block">
<c:if test="${user.isShow==0 or user.isShow==null}">
......@@ -173,6 +202,8 @@
</c:if>
</div>
</div>
<div class="layui-form-item" style="text-align: center">
<div class="layui-form-item">
<button class="layui-btn" lay-submit="" lay-filter="rulesSubmit">提交</button>
......@@ -186,6 +217,10 @@
<span hidden id="msg">${msg}</span>
<script src="${pageContext.request.contextPath}/resources/layui/layui.js"></script>
<script>
//加载日期插件
laydate.render({
elem: '#birthday' //指定元素
});
layui.use(['element', 'form', 'jquery'], function () {
var form = layui.form,
layer = layui.layer,
......@@ -218,13 +253,13 @@
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].codeStr,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
}
setTree(zNodes,"unit","nocheck","unitcode","unitname");
setTree(zNodes,"unit","nocheck","unitcode","unitname","");
data = ${role};
var zNodes =[];
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].rolename,open:false,file:"core/simpleData"});
}
setTree(zNodes,"roleTree","check","roleId","roleName");
setTree(zNodes,"roleTree","check","roleId","roleName","");
});
</script>
<script>
......
......@@ -5,6 +5,7 @@
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<script src="${pageContext.request.contextPath}/resources/layui/laydate/laydate.js"></script>
<style>
body {
margin: 10px;
......
......@@ -205,13 +205,13 @@
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].codeStr,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
}
setTree(zNodes,"unit","nocheck","unitcode","unitname");
setTree(zNodes,"unit","nocheck","unitcode","unitname","");
data = ${role};
var zNodes =[];
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].rolename,open:false,file:"core/simpleData"});
}
setTree(zNodes,"roleTree","nocheck","roleId","roleName");
setTree(zNodes,"roleTree","nocheck","roleId","roleName","");
});
......
......@@ -222,7 +222,7 @@
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].codeStr,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
}
setTree(zNodes,"unit","nocheck","unitcode","unitname");
setTree(zNodes,"unit","nocheck","unitcode","unitname","");
var data = ${role};
var checkData = ${oldRole};
var oldPerStr = "",oldPerIdStr="";
......@@ -239,7 +239,7 @@
}
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].rolename,checked:bool,open:false,file:"core/simpleData"});
}
setTree(zNodes,"roleTree","check","roleId","roleName");
setTree(zNodes,"roleTree","check","roleId","roleName","");
//设置原有权限回显
$("#roleId").val(oldPerIdStr);
$("#roleName").val(oldPerStr);
......
......@@ -64,7 +64,7 @@
</shiro:hasRole>
<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;员工工号:&nbsp;&nbsp;&nbsp;&nbsp;<shiro:principal
property="username"/>
&nbsp;&nbsp;姓名:
&nbsp;&nbsp;&nbsp;&nbsp;
</li>
<%-- <shiro:hasRole name="administrator">
<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;员工工号22:&nbsp;&nbsp;&nbsp;&nbsp;<shiro:principal
......@@ -72,20 +72,20 @@
&nbsp;&nbsp;姓名:
</li>
</shiro:hasRole>--%>
<li class="dropDown dropDown_hover">
<%--<li class="dropDown dropDown_hover">
<a href="#" class="dropDown_A"><shiro:principal property="trueName"/><i class="Hui-iconfont">&#xe6d5;</i></a>
<ul class="dropDown-menu menu radius box-shadow">
<%--<li>
&lt;%&ndash;<li>
<a href="javascript:;" onClick="member_info()">个人信息</a>
</li>
<li>
<a href="javascript:;" onClick="member_password_edit()">修改密码</a>
</li>--%>
</li>&ndash;%&gt;
<li>
<a href="${pageContext.request.contextPath}/logout">退出</a>
</li>
</ul>
</li>
</li>--%>
<%--<li id="Hui-msg">
<a href="#" title="消息"><span class="badge badge-danger">1</span><i class="Hui-iconfont"
style="font-size:18px">&#xe68a;</i></a>
......@@ -131,20 +131,20 @@
</c:forEach>
</div>
</c:forEach>
<div class="menu_dropdown bk_2">
<%--<div class="menu_dropdown bk_2">
<dl id="menu-member">
<dt><%--<i class="Hui-iconfont"></i>--%><a data-href="${pageContext.request.contextPath}/logout"
<dt>&lt;%&ndash;<i class="Hui-iconfont"></i>&ndash;%&gt;<a data-href="${pageContext.request.contextPath}/logout"
data-title="退出登录" href="javascript:;">退出登录</a>
</dt>
</dl>
</div>
</div>--%>
</aside>
<section class="Hui-article-box">
<div id="Hui-tabNav" class="Hui-tabNav hidden-xs">
<div class="Hui-tabNav-wp">
<ul id="min_title_list" class="acrossTab cl">
<li class="active">
<span title="我的桌面" data-href="${pageContext.request.contextPath}/admin/pagejump/welcome">我的桌面</span>
<span title="用户中心" data-href="${pageContext.request.contextPath}/admin/user/list">用户中心</span>
<em></em></li>
</ul>
</div>
......
......@@ -7,8 +7,14 @@ var timestamp=new Date().getTime();
* @param type 树类型,check为带多选框的,nocheck为不带多选框的
* @param kid 即页面所需要传到后台的数据的input的id
* @param vid 即页面所需要展现数据的input的id
* @param glcs 父子级关联参数
* chkboxType: { “Y”: “ps”, “N”: “ps” }
* Y 属性定义 checkbox 被勾选后的情况;
* N 属性定义 checkbox 取消勾选后的情况;
* “p” 表示操作会影响父级节点;
* “s” 表示操作会影响子级节点。
*/
function setTree(data,treeId,type,kid,vid) {
function setTree(data,treeId,type,kid,vid,glcs) {
var setting = {}
if (type=="check"){
setting = {
......@@ -18,7 +24,7 @@ function setTree(data,treeId,type,kid,vid) {
nocheckInherit: true,
chkDisabledInherit: true,
chkStyle: "checkbox",
chkboxType: { "Y": "ps", "N": "ps" }
chkboxType: { "Y": glcs, "N": glcs }
},
async: {
enable: true,
......
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="laydate-icon" horiz-adv-x="1024" >
<font-face
font-family="laydate-icon"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="youyou" unicode="&#58882;" d="M283.648 721.918976 340.873216 780.926976 740.352 383.997952 340.876288-12.925952 283.648 46.077952 619.52 383.997952Z" horiz-adv-x="1024" />
<glyph glyph-name="zuozuo" unicode="&#58883;" d="M740.352 721.918976 683.126784 780.926976 283.648 383.997952 683.123712-12.925952 740.352 46.077952 404.48 383.997952Z" horiz-adv-x="1024" />
<glyph glyph-name="xiayiye" unicode="&#58970;" d="M62.573 384.103l423.401 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.751-18.976-68.727 0l-39.753 39.753 0.269 0.246-385.655 385.661zM451.365 384.103l423.407 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.757-18.977-68.727 0l-39.762 39.754 0.273 0.249-385.662 385.661zM451.365 384.103z" horiz-adv-x="1024" />
<glyph glyph-name="xiayiye1" unicode="&#58971;" d="M948.066926 382.958838l-411.990051-412.24426c-18.47333-18.47333-48.417689-18.47333-66.875207 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L814.691135 383.088983 467.512212 730.269123c-18.466032 18.458735-18.466032 48.405526 0 66.873991 18.468465 18.464816 48.410391 18.464816 66.872774 0l38.682336-38.682336-0.261507-0.239614 375.259894-375.265975v0.003649m-378.312834 0L157.756743-29.285422c-18.47333-18.47333-48.415256-18.47333-66.872775 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L436.369787 383.088983 89.19208 730.269123c-18.4636 18.458735-18.4636 48.405526 0 66.873991 18.470898 18.464816 48.415256 18.464816 66.872774 0l38.692067-38.682336-0.266372-0.239614 375.267191-375.265975-0.004865 0.003649m0 0z" horiz-adv-x="1024" />
</font>
</defs></svg>
/*! laydate-v5.0.9 日期与时间组件 MIT License http://www.layui.com/laydate/ By 贤心 */
.laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}@font-face{font-family:laydate-icon;src:url(font/iconfont.eot);src:url(font/iconfont.eot#iefix) format('embedded-opentype'),url(font/iconfont.svg#iconfont) format('svg'),url(font/iconfont.woff) format('woff'),url(font/iconfont.ttf) format('truetype')}.laydate-icon{font-family:laydate-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment