Commit dbc1dbd2 by chang_chao@founder.com.cn

Merge remote-tracking branch 'remotes/origin/dev' into dev

parents 35dce668 581d78a4
alter table SYS_PERMISSION_NEW add STATUS VARCHAR2(2);
alter table SYS_PERMISSION_NEW add STATUS VARCHAR2(2);
-- Add comments to the columns
comment on column SYS_PERMISSION_NEW.STATUS
is '权限状态(01:显示,02:加锁,03:隐藏)';
\ No newline at end of file
......@@ -4,6 +4,7 @@ import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.pojo.SysUser;
import com.xzxtshiro.service.SysPermissionNewService;
import com.xzxtshiro.service.SysRoleService;
import com.xzxtshiro.service.SysUserService;
import com.xzxtshiro.util.TokenUtil;
import com.xzxtshiro.util.ZtreeDataUtil;
......@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author liuys
......@@ -33,6 +35,9 @@ public class PermissionNewController {
@Autowired
private SysUserService userService;
@Autowired
private SysRoleService sysRoleService;
/**
* 跳转到权限列表
*
......@@ -75,7 +80,7 @@ public class PermissionNewController {
*/
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String addIndex(Model model) {
setZtreeData(model,userService,permissionService);
setZtreeData(model,userService,sysRoleService,permissionService);
return "admin/permission/add";
}
......@@ -88,25 +93,13 @@ public class PermissionNewController {
*/
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String add(SysPermissionNew permission, Model model) {
//如果父级菜单为null,说明是顶级菜单,设置为0
if (permission.getPid()==null){
permission.setPid("0");
}
SysUser user = TokenUtil.getUser();
permission.setLrr(user.getUsername());
permission.setLrdwdm(user.getUnitcode());
permission.setLrdwmc(user.getUnitname());
permission.setLrsj(new Date());
permission.setMenuname(permission.getName());
permission.setFlag(1);
permission.setScbz(0);
System.out.println(permission);
Integer add = permissionService.add(permission);
if (add == 0) {
//添加失败,重新添加
model.addAttribute("oldPermission", permission);
model.addAttribute("msg", "权限ID已存在,请重新输入!");
setZtreeData(model,userService,permissionService);
setZtreeData(model,userService,sysRoleService,permissionService);
return "/admin/permission/add";
} else {
return "redirect:/admin/permission/index?msg=success";
......@@ -114,31 +107,30 @@ public class PermissionNewController {
}
/**
* 跳转到角色修改页面
*
* 跳转到权限修改页面
* @param
* @param model
* @return
*/
@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
public String updateIndex(@PathVariable("id") String id, Model model) {
SysPermissionNew permission = permissionService.selectPermissionById(id);
setZtreeData(model,userService,permissionService);
model.addAttribute("oldPermission",permission);
Map<String,Object> map = permissionService.selectPermissionById(id);
//权限修改需要将原来的角色和权限的对应关系给带过来,并重新赋值
//更具权限id查询权限和角色的对应关系
setZtreeData(model,userService,sysRoleService,permissionService);
model.addAttribute("oldPermission",map.get("oldPer"));
model.addAttribute("oldRole",map.get("oldRoleId"));
return "admin/permission/update";
}
/**
* 更新角色,删除授权并重新进行授权
* 更新权限
* @param
* @param model
* @return
*/
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(SysPermissionNew permission, Model model) {
SysUser user = TokenUtil.getUser();
permission.setGxr(user.getUsername());
permission.setGxsj(new Date());
Integer update = permissionService.update(permission);
return "redirect:/admin/permission/index?msg=success";
}
......@@ -159,10 +151,10 @@ public class PermissionNewController {
}
/**
* 设置添加与修改页面的ztree数据
* 设置更新和添加页面所需要的权限和角色ztree数据
*/
public static void setZtreeData(Model model, SysUserService userService, SysPermissionNewService sysPermissionService){
new ZtreeDataUtil().setPermissionZtreeData(model,userService,sysPermissionService);
public static void setZtreeData(Model model, SysUserService userService, SysRoleService roleService, SysPermissionNewService sysPermissionService){
new ZtreeDataUtil().setRoleAndPermission(model,userService,roleService,sysPermissionService);
}
}
......@@ -10,6 +10,7 @@ import com.xzxtshiro.util.TokenUtil;
import com.xzxtshiro.util.ZtreeDataUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
......@@ -216,7 +217,7 @@ public class SysUserController {
* @return
*/
@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
public String updateInex(@PathVariable("id") String id, Model model,HttpServletResponse response) {
public String updateInex(@PathVariable("id") String id, Model model) {
SysUser user = userService.selectSysUserById(id);
//查询用户照片
SysUserZp userZp = userService.selectSysUserZpByUserId(id);
......@@ -235,6 +236,8 @@ public class SysUserController {
return "admin/user/update";
}
/**
* 提交用户修改数据
*
......@@ -260,6 +263,46 @@ public class SysUserController {
}
/**
* 跳转到批量授权页面
* @param userList
* @param model
* @return
*/
@RequestMapping(value = "/toBatchUpdate", method = RequestMethod.POST)
public String batchUpdateInex(String userList, Model model){
JSONArray jsonArray = JSONArray.fromObject(userList);
List<SysUser> choseUsers = JSONArray.toList(jsonArray,new SysUser(),new JsonConfig());
System.out.println(choseUsers.size());
System.out.println("userList==========================");
System.out.println(userList);
setZtreeData(model,userService,dictitemService,roleService,jedisClient);
model.addAttribute("userList", choseUsers);
return "admin/user/batchUpdate";
}
/**
* 批量修改用户权限
* @param user
* @param model
* @return
*/
@RequestMapping(value = "/batchUpdate", method = RequestMethod.POST)
public String batchUpdate(SysUser user,Model model){
String ids = user.getIds();
ids = ids.replace(" ","");
String[] idList = ids.split(",");
for (int i = 0;i<idList.length;i++){
SysUser thisUser = new SysUser();
thisUser.setId(idList[i]);
thisUser.setRoleId(user.getRoleId());
userService.batchUpdate(thisUser);
}
model.addAttribute("msg", "授权成功!");
return "redirect:/admin/user/index?msg=success";
}
/**
* 修改用户当前状态
* @param user
* @return
......
......@@ -26,9 +26,17 @@ public interface SysPermissionNewDao {
List<SysPermissionNew> selectSysPermissionNewByCondition(SysPermissionNew sysPermission);
Integer selectSysPermissionNewCountByCondition(SysPermissionNew sysPermission);
/**
* 根据权限id获取角色id
*
* @param id
* @return
*/
List<SysPermissionNew> selectPermissionByPermissionId(@Param("id") String id);
/**
* 根据userId查询用户所拥有的权限
* @param userId
* @param sysPermission
* @return
*/
List<SysPermissionNew> selectSysPermissionNewByUserId(SysPermissionNew sysPermission);
......@@ -53,4 +61,11 @@ public interface SysPermissionNewDao {
Integer update(@Param("permission") SysPermissionNew permission);
Integer deletePermissionById(@Param("permission") SysPermissionNew permission);
/**
* 删除旧的权限和角色的关联关系
* @param id
* @return
*/
Integer delectSysRolePermissionById(@Param("id") String id);
}
......@@ -19,12 +19,13 @@
<result column="SCBZ" property="scbz" jdbcType="INTEGER" />
<result column="IP" property="ip" jdbcType="VARCHAR" />
<result column="ZINDEX" property="zindex" jdbcType="INTEGER" />
<result column="STATUS" property="status" jdbcType="VARCHAR" />
<result column="flag" property="flag" jdbcType="INTEGER" />
<result column="rn" property="rn" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
ID, NAME, MENUNAME, PID, PERMISSION, URL, DESCRIPTION, TYPE, LRR, LRSJ, GXR, GXSJ,
LRDWDM, LRDWMC, SCBZ, IP, ZINDEX,FLAG
LRDWDM, LRDWMC, SCBZ, IP, ZINDEX, STATUS, FLAG
</sql>
<select id="selectSysPermissionNewByCondition" resultMap="BaseResultMap">
select * from (
......@@ -95,14 +96,14 @@
PID, PERMISSION, URL,
DESCRIPTION, TYPE, LRR,
LRSJ, GXR, GXSJ, LRDWDM,
LRDWMC, SCBZ, IP, ZINDEX,FLAG
LRDWMC, SCBZ, IP, ZINDEX, STATUS, FLAG
)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{menuname,jdbcType=VARCHAR},
#{pid,jdbcType=VARCHAR}, #{permission,jdbcType=VARCHAR}, #{url,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{lrr,jdbcType=VARCHAR},
#{lrsj,jdbcType=TIMESTAMP}, #{gxr,jdbcType=VARCHAR}, #{gxsj,jdbcType=DATE}, #{lrdwdm,jdbcType=VARCHAR},
#{lrdwmc,jdbcType=VARCHAR}, #{scbz,jdbcType=INTEGER}, #{ip,jdbcType=VARCHAR}, #{zindex,jdbcType=INTEGER},
#{flag,jdbcType=INTEGER}
#{status,jdbcType=VARCHAR}, #{flag,jdbcType=INTEGER}
)
</insert>
<insert id="insertSelectActive" parameterType="com.xzxtshiro.pojo.SysPermissionNew" >
......@@ -234,7 +235,8 @@
GXSJ = #{permission.gxsj,jdbcType=TIMESTAMP},
LRDWDM = #{permission.lrdwdm,jdbcType=VARCHAR},
LRDWMC = #{permission.lrdwmc,jdbcType=VARCHAR},
ZINDEX = #{permission.zindex,jdbcType=DECIMAL}
ZINDEX = #{permission.zindex,jdbcType=DECIMAL},
STATUS = #{permission.status,jdbcType=VARCHAR}
WHERE id = #{permission.id}
</update>
<update id="deletePermissionById">
......@@ -242,4 +244,22 @@
set SCBZ = 1
WHERE id = #{permission.id,jdbcType=VARCHAR}
</update>
<!--根据权限 id 查询角色信息-->
<select id="selectPermissionByPermissionId" resultType="com.xzxtshiro.pojo.SysPermissionNew">
SELECT
ROLEID roleId
FROM
sys_role_permission
where PERMISSIONID=#{id,jdbcType=VARCHAR}
</select>
<!--删除旧的权限和角色的关联关系-->
<delete id="delectSysRolePermissionById">
DELETE
FROM
sys_role_permission
WHERE
PERMISSIONID =#{id}
</delete>
</mapper>
\ No newline at end of file
......@@ -44,9 +44,20 @@ public class SysPermissionNew extends BaseModel implements Serializable {
protected Integer flag;
protected String userId;
//权限状态(01:显示,02:加锁,03:隐藏)
protected String status;
/**
* 子菜单list
*/
protected List childMenu;
/**角色的id合集*/
protected String roleId;
/**角色的name合集*/
protected String roleName;
}
......@@ -109,5 +109,8 @@ public class SysUser extends BaseModel implements Serializable {
/**角色的name合集*/
protected String roleName;
/**批量授权的用户id合集*/
protected String ids;
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import com.xzxtshiro.pojo.SysPermissionNew;
import net.sf.json.JSONArray;
import java.util.List;
import java.util.Map;
/**
* @author liuys
......@@ -49,7 +50,7 @@ public interface SysPermissionNewService {
*/
Integer add(SysPermissionNew permission);
SysPermissionNew selectPermissionById(String id);
Map<String,Object> selectPermissionById(String id);
Integer update(SysPermissionNew permission);
......
......@@ -34,6 +34,8 @@ public interface SysUserService {
SysUser update(SysUser user);
SysUser batchUpdate(SysUser user);
Integer deleteUserById(SysUser user);
SysUser loadByUsername(String username);
......
package com.xzxtshiro.service.imp;
import com.xzxtshiro.dao.SysPermissionNewDao;
import com.xzxtshiro.dao.SysRoleDao;
import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.pojo.SysRolePermission;
import com.xzxtshiro.pojo.SysUser;
import com.xzxtshiro.service.SysPermissionNewService;
import com.xzxtshiro.util.SequenceUtil;
import com.xzxtshiro.util.TokenUtil;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.*;
/**
* @author liuys
* @desc
......@@ -19,6 +25,8 @@ public class SysPermissionNewServiceImpl implements SysPermissionNewService {
@Autowired
SysPermissionNewDao permissionNewDao;
@Autowired
SysRoleDao sysRoleDao;
/**
......@@ -85,9 +93,12 @@ public class SysPermissionNewServiceImpl implements SysPermissionNewService {
}
/**
* 分两步,1.增加权限基本信息
* 2.增加权限和角色的关联关系
* @param permission
* @return
*/
@Override
public Integer add(SysPermissionNew permission) {
int i = 0;
......@@ -96,20 +107,94 @@ public class SysPermissionNewServiceImpl implements SysPermissionNewService {
if (oldPer!=null){
return 0;
}
//1.增加权限基本信息
//如果父级菜单为null,说明是顶级菜单,设置为0
if (permission.getPid()==null){
permission.setPid("0");
}
SysUser user = TokenUtil.getUser();
permission.setLrr(user.getUsername());
permission.setLrdwdm(user.getUnitcode());
permission.setLrdwmc(user.getUnitname());
permission.setLrsj(new Date());
permission.setMenuname(permission.getName());
permission.setFlag(1);
permission.setScbz(0);
System.out.println(permission);
i = permissionNewDao.insert(permission);
//2.增加权限和角色的关联关系
if (i>0&&permission.getRoleId()!=null){
addSysRolePermission(permission, user);
}
} catch (Exception e) {
return 0;
}
return i;
}
/**
* 增加权限和角色的关联关系
* @param permission
* @param user
*/
public void addSysRolePermission(SysPermissionNew permission, SysUser user) {
String roleIds = permission.getRoleId();
String[] roleList = roleIds.split(",");
List<SysRolePermission> roleAndPermissions = new ArrayList<SysRolePermission>();
for (int j=0;j<roleList.length;j++){
System.out.println(roleList.length);
System.out.println("角色id"+roleList[j]);
SysRolePermission sysRolePermission = new SysRolePermission();
sysRolePermission.setId(SequenceUtil.getNextXxzjbh().substring(0,23));
sysRolePermission.setRoleid(roleList[j]);
sysRolePermission.setPermissionid(permission.getId());
sysRolePermission.setLrr(user.getUsername());
sysRolePermission.setLrdwdm(user.getUnitcode());
sysRolePermission.setLrdwmc(user.getUnitname());
sysRolePermission.setLrsj(new Date());
sysRolePermission.setScbz(0);
roleAndPermissions.add(sysRolePermission);
}
System.out.println(roleAndPermissions.size());
int k = sysRoleDao.batchAddSysRolePermission(roleAndPermissions);
}
@Override
public SysPermissionNew selectPermissionById(String id) {
return permissionNewDao.selectSysPermissionNewById(id);
public Map<String,Object> selectPermissionById(String id) {
//分两步,1.查询权限的基本信息
// 2.查询权限所挂载的角色id
SysPermissionNew oldPer = permissionNewDao.selectSysPermissionNewById(id);
List<SysPermissionNew> oldRoleId = permissionNewDao.selectPermissionByPermissionId(id);
JSONArray jsonArray = JSONArray.fromObject(oldRoleId);
Map<String,Object> map = new HashMap<String,Object>();
map.put("oldPer",oldPer);
map.put("oldRoleId",jsonArray);
return map;
}
/**
* 更新需要分三步
* 1.更新权限基本信息
* 2.删除权限和角色的原有关系
* 3.增加权限和角色的新对应关系
* @param permission
* @return
*/
@Override
public Integer update(SysPermissionNew permission) {
//1.更新权限基本信息
SysUser user = TokenUtil.getUser();
permission.setGxr(user.getUsername());
permission.setGxsj(new Date());
int a = permissionNewDao.update(permission);
//2.删除权限和角色的旧的关联信息,这块以权限id为准
int b = permissionNewDao.delectSysRolePermissionById(permission.getId());
//3.增加新的关联关系
if(a>0&&permission.getRoleId()!=null){
addSysRolePermission(permission, user);
}
return permissionNewDao.update(permission);
}
......
......@@ -63,7 +63,7 @@ public class SysRoleServiceImpl implements SysRoleService{
Integer count = sysRoleDao.add(sysRole);
//确保角色保存成功再进行授权
if (count>0){
if (sysRole.getDescription() != null) {
if (sysRole.getPermissionId() != null) {
String[] permissions = sysRole.getPermissionId().split(",");
List<SysRolePermission> roleAndPermissions = new ArrayList<SysRolePermission>();
for (int i= 0; i < permissions.length; i++) {
......
......@@ -210,6 +210,12 @@ public class SysUserServiceImpl implements SysUserService {
deleteUserZpByUserId(user.getId());
addUserZp(user);
}
authorize(user, dlUser, userDao);
return user;
}
//授权操作
public static void authorize(SysUser user, SysUser dlUser, SysUserDao userDao) {
//3.删除原有的角色和用户的绑定关系
int b = userDao.deleteSysUserRoleByUserId(user.getId());
//4.增加新的用户和角色的关系
......@@ -231,6 +237,17 @@ public class SysUserServiceImpl implements SysUserService {
}
int c = userDao.batchAddSysUserRole(userRoles);
}
}
/**
* 批量授权功能,两步操作,删除原有的权限,增加新的权限
* @param user
* @return
*/
@Override
public SysUser batchUpdate(SysUser user) {
SysUser dlUser = TokenUtil.getUser();
authorize(user, dlUser, userDao);
return user;
}
......
......@@ -32,7 +32,7 @@
</bean>
<!-- jedis客户端单机版 -->
<bean id="redisClient" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.121.1"></constructor-arg>
<constructor-arg name="host" value="192.168.1.102"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
</bean>
......
......@@ -52,6 +52,31 @@
value="${oldPermission.name}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限层级</label>
<div class="layui-input-block">
<select id="zindex" name="zindex" lay-verify="required" lay-filter="type">
<option value="">请选择</option>
<option value="0">1</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限状态</label>
<div class="layui-input-block">
<select id="status" name="status" lay-verify="required" lay-filter="type">
<option value="">请选择</option>
<option value="01">显示</option>
<option value="02">加锁</option>
<option value="03">隐藏</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限代码</label>
......@@ -87,11 +112,24 @@
class="layui-input">
<input type="text" id="pid" Name="pid" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkTree('mytree');" style="left: 448px">选择父级</span>
<div id="mytree" style="display: none">
<div id="mytree" style="display: none;">
<ul id="tree" class="ztree"></ul>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">关联角色</label>
<div class="layui-input-block">
<input type="text" name="roleName" id="roleName" lay-verify="required"
class="layui-input">
<input type="text" id="roleId" Name="roleId" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 440px;">选择角色</span>
<div id="myRoleTree" style="display: none">
<ul id="roleTree" class="ztree"></ul>
</div>
</div>
</div>
<%-- <div class="layui-form-item">
<label class="layui-form-label">生成权限</label>
<div class="layui-input-block">
......@@ -203,6 +241,12 @@
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","");
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","s");
});
</script>
......
......@@ -46,7 +46,7 @@
<th lay-data="{field:'url', align:'left',width:200, sort: true}">权限URL</th>
<th lay-data="{field:'pid', align:'center',width:100, sort: true}">父级权限ID</th>
<%--<th lay-data="{field:'flag', align:'center',width:80, sort: true,templet: '#menuTpl'}">是否生成菜单</th>--%>
<th lay-data="{width:120, align:'center', toolbar: '#toolBar'}">操作</th>
<th lay-data="{width:200, align:'center', toolbar: '#toolBar'}">操作</th>
</tr>
</thead>
</table>
......
......@@ -54,6 +54,31 @@
value="${oldPermission.name}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限层级</label>
<div class="layui-input-block">
<select id="zindex" name="zindex" lay-verify="required" lay-filter="type">
<option value="">请选择</option>
<option value="0">1</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限状态</label>
<div class="layui-input-block">
<select id="status" name="status" lay-verify="required" lay-filter="type">
<option value="">请选择</option>
<option value="01">显示</option>
<option value="02">加锁</option>
<option value="03">隐藏</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限代码</label>
......@@ -94,6 +119,18 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">关联角色</label>
<div class="layui-input-block">
<input type="text" name="roleName" id="roleName" lay-verify="required"
class="layui-input">
<input type="text" id="roleId" Name="roleId" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 440px;">选择角色</span>
<div id="myRoleTree" style="display: none">
<ul id="roleTree" class="ztree"></ul>
</div>
</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>
......@@ -137,7 +174,18 @@
//设置角色类型
var type = "${oldPermission.type}";
$("#type").val(type);
//设置角色层级
var zindex = "${oldPermission.zindex}";
$("#zindex").val(zindex);
//设置角色状态
var status = "${oldPermission.status}";
$("#status").val(status);
form.render('select');
var data = ${permission};
var zNodes =[];
for (var i=0;i<data.length;i++){
......@@ -148,6 +196,26 @@
}
}
setTree(zNodes,"tree","nocheck","pid","pidName","");
data = ${role};
var checkData = ${oldRole};
var oldRoleStr = "",oldRoleIdStr="";
var zNodes =[];
for (var i=0;i<data.length;i++){
var bool = false;
for (var j=0;j<checkData.length;j++){
if(data[i].id == checkData[j].roleId){
//设置原有的权限回显
oldRoleIdStr+=data[i].id+",";
oldRoleStr+=data[i].rolename+",";
bool = true;
}
}
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","s");
//设置原有角色回显
$("#roleId").val(oldRoleIdStr);
$("#roleName").val(oldRoleStr);
});
</script>
......
......@@ -44,7 +44,7 @@
<%-- <th lay-data="{field:'sn', align:'center',width:100, sort: true}">角色类型</th>
<th lay-data="{field:'permission', align:'center',width:300, sort: true,templet: '#permissionTpl'}">拥有权限</th>--%>
<th lay-data="{field:'permissionName', align:'center',width:400, sort: true}">拥有权限</th>
<th lay-data="{width:120, align:'center', toolbar: '#toolBar'}">操作</th>
<th lay-data="{width:200, align:'center', toolbar: '#toolBar'}">操作</th>
</tr>
</thead>
</table>
......
......@@ -124,7 +124,7 @@
<input type="text" name="unitname" id="unitname" lay-verify="required"
class="layui-input">
<input type="text" id="unitcode" Name="unitcode" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkTree('myUnitTree');" style="left: 448px;">选择单位</span>
<span class="layui-btn" id="checkPer" onclick="checkTree('myUnitTree');" style="left: 440px;">选择单位</span>
<div id="myUnitTree" style="display: none">
<ul id="unit" class="ztree"></ul>
</div>
......@@ -137,7 +137,7 @@
<input type="text" name="roleName" id="roleName" lay-verify="required"
class="layui-input">
<input type="text" id="roleId" Name="roleId" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 448px;">选择角色</span>
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 440px;">选择角色</span>
<div id="myRoleTree" style="display: none">
<ul id="roleTree" class="ztree"></ul>
</div>
......@@ -247,7 +247,7 @@
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","s");
});
</script>
<script>
......
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>添加用户</title>
<style>
#choseUsers{
border: 1px #e6e6e6 solid;
min-height: 110px;
}
#choseUsers>span{
width:50px;
position: relative;
left: 18px;
top: 8px;
padding: 0px 40px;
}
</style>
</head>
<body>
<div class="layui-container">
<!--
作者:yuton.yao@qq.com
时间:2017-09-01
描述:引入公共html
-->
<jsp:include page="inc.jsp"></jsp:include>
<div class="layui-row">
<div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
<div class="x-nav layui-elem-quote">
<span class="layui-breadcrumb">
<a><cite><i class="layui-icon" style="line-height:25px">&#xe68e </i>首页</cite></a>
<a href="${pageContext.request.contextPath}/admin/user/index">用户列表</a>
<a><cite>添加用户</cite></a>
</span>
<a class="layui-btn layui-btn-mini" style="line-height:1.0em;margin-top:1px;float:right"
href="javascript:location.reload()" title="刷新">
<i class="layui-icon" style="line-height:25px">&#x1002</i></a>
</div>
<a class="layui-btn layui-btn-danger" role="button"
style="margin-right: 10px;float: right"
href="${pageContext.request.contextPath}/admin/user/index">返回上一级</a>
</div>
<div class="layui-col-xs12 layui-col-sm8 layui-col-md6">
<form class="layui-form layui-form-pane"
action="${pageContext.request.contextPath}/admin/user/batchUpdate"
method="post" enctype="multipart/form-data">
<div class="layui-form-item">
<label class="layui-form-label">用户姓名</label>
<div class="layui-input-block">
<div id="choseUsers">
<input name="ids" style="display: none;" value='<c:forEach items="${userList}" var="users">
${users.id},
</c:forEach>'>
<c:forEach items="${userList}" var="users" varStatus="idxStatus">
<span>${users.trueName}【${users.username}】</span>
</c:forEach>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户角色</label>
<div class="layui-input-block">
<input type="text" name="roleName" id="roleName" lay-verify="required"
class="layui-input">
<input type="text" id="roleId" Name="roleId" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 440px;">选择角色</span>
<div id="myRoleTree" style="display: none">
<ul id="roleTree" class="ztree"></ul>
</div>
</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>
<button class="layui-btn layui-btn-primary" type="reset">重置</button>
</div>
</div>
</form>
</div>
</div>
</div>
<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,
element = layui.element,
$ = layui.jquery;
//监听导航点击
element.on('nav(demo)', function (elem) {
//console.log(elem)
layer.msg(elem.text());
});
//监听提交
form.on('submit(rulesSubmit)', function (data) {
//提交表单
});
//弹出层
var msg=$("#msg").text();
if (msg.length!=""){
layer.msg(msg, {icon: 5});
}
//验证表单数据
chechFormData(form);
//设置用户等级回显
var grade = "${user.grade}";
$("#grade").val(grade);
form.render('select');
var 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","s");
});
</script>
</body>
</html>
\ No newline at end of file
......@@ -26,7 +26,7 @@
<a href="${pageContext.request.contextPath}/admin/user/index">用户列表</a>
<a><cite>修改用户</cite></a>
</span>
<a class="layui-btn layui-btn-mini" style="line-height:1.0em;margin-top:1px;float:right"
<a class="layui-btn layui-btn-normal" style="line-height:1.0em;margin-top:1px;float:right"
href="javascript:location.reload()" title="刷新">
<i class="layui-icon" style="line-height:25px">&#x1002</i></a>
</div>
......@@ -125,7 +125,7 @@
<input type="text" name="unitname" id="unitname" lay-verify="required"
class="layui-input">
<input type="text" id="unitcode" Name="unitcode" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkTree('myUnitTree');" style="left: 448px;">选择单位</span>
<span class="layui-btn" id="checkPer" onclick="checkTree('myUnitTree');" style="left: 440px;">选择单位</span>
<div id="myUnitTree" style="display: none">
<ul id="unit" class="ztree"></ul>
</div>
......@@ -138,7 +138,7 @@
<input type="text" name="roleName" id="roleName" lay-verify="required"
class="layui-input">
<input type="text" id="roleId" Name="roleId" style="display: none;">
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 448px;">选择角色</span>
<span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');" style="left: 440px;">选择角色</span>
<div id="myRoleTree" style="display: none">
<ul id="roleTree" class="ztree"></ul>
</div>
......@@ -267,7 +267,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","s");
//设置原有权限回显
$("#roleId").val(oldPerIdStr);
$("#roleName").val(oldPerStr);
......
......@@ -19,15 +19,15 @@
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/h-ui/skin/green/skin.css"
id="skin"/>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/h-ui/css/style.css"/>
<title>ssm+shiro后台管理系统(权限控制)</title>
<title>权限控制</title>
</head>
<body>
<header class="navbar-wrapper">
<div class="navbar navbar-fixed-top">
<div class="container-fluid cl">
<a class="logo navbar-logo f-l mr-10 hidden-xs" href="javascript:;">ssm+shiro后台管理系统(权限控制)</a>
<a class="logo navbar-logo-m f-l mr-10 visible-xs" href="javascript:;">后台管理系统(权限控制)</a>
<a class="logo navbar-logo f-l mr-10 hidden-xs" href="javascript:;">权限控制</a>
<a class="logo navbar-logo-m f-l mr-10 visible-xs" href="javascript:;">权限控制</a>
<span class="logo navbar-slogan f-l mr-10 hidden-xs"></span>
<a aria-hidden="false" class="nav-toggle Hui-iconfont visible-xs" href="javascript:;"
onclick="showAllBtn()">&#xe667;</a>
......@@ -62,8 +62,8 @@
<shiro:hasRole name="user">
尊敬的:<shiro:principal/>,欢迎您!用户
</shiro:hasRole>
<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;员工工号:&nbsp;&nbsp;&nbsp;&nbsp;<shiro:principal
property="username"/>
<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名:&nbsp;&nbsp;<shiro:principal
property="trueName"/>
&nbsp;&nbsp;&nbsp;&nbsp;
</li>
<%-- <shiro:hasRole name="administrator">
......
......@@ -8,7 +8,7 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>ssm+shiro后台管理系统(权限控制)</title>
<title>权限控制</title>
<link rel="Bookmark" href="${pageContext.request.contextPath}/resources/image/favicon.ico">
<link rel="Shortcut Icon" href="${pageContext.request.contextPath}/resources/image/favicon.ico"/>
<link href="${pageContext.request.contextPath}/resources/login/css/style.css" type="text/css" rel="stylesheet"/>
......@@ -17,7 +17,7 @@
<body>
<div class="wrap">
<div class="logo">
<span class="logo-sub">ssm+shiro后台管理系统(权限控制)</span>
<span class="logo-sub">权限控制</span>
</div>
<div class="banner-show" id="js_ban_content" style="margin-top: 5px;">
......
......@@ -108,7 +108,7 @@ function setTree(data,treeId,type,kid,vid,glcs) {
function checkTree(treeId){
layer.open({
type: 1,
area:['500px', '530px'],
area:['400px', '430px'],
title:'请选择',
skin: 'layui-layer-demo', //加上边框
content: $("#"+treeId)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/** layui-v2.1.0 MIT License By http://www.layui.com */
/** layui-v2.3.0 MIT License By https://www.layui.com */
blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}html{font:12px 'Helvetica Neue','PingFang SC',STHeitiSC-Light,Helvetica,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}a,button,input{-webkit-tap-highlight-color:rgba(255,0,0,0)}a{text-decoration:none;background:0 0}a:active,a:hover{outline:0}table{border-collapse:collapse;border-spacing:0}li{list-style:none}b,strong{font-weight:700}h1,h2,h3,h4,h5,h6{font-weight:500}address,cite,dfn,em,var{font-style:normal}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}img{border:0;vertical-align:bottom}.layui-inline,input,label{vertical-align:middle}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;outline:0}button,select{text-transform:none}select{-webkit-appearance:none;border:none}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=1.0.7);src:url(../font/iconfont.eot?v=1.0.7#iefix) format('embedded-opentype'),url(../font/iconfont.woff?v=1.0.7) format('woff'),url(../font/iconfont.ttf?v=1.0.7) format('truetype'),url(../font/iconfont.svg?v=1.0.7#iconfont) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-box,.layui-box *{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important}.layui-border-box,.layui-border-box *{-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1}.layui-edge,.layui-upload-iframe{position:absolute;width:0;height:0}.layui-edge{border-style:dashed;border-color:transparent;overflow:hidden}.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-disabled,.layui-disabled:active{background-color:#d2d2d2!important;color:#fff!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-upload-iframe{border:0;visibility:hidden}.layui-upload-enter{border:1px solid #009E94;background-color:#009E94;color:#fff;-webkit-transform:scale(1.1);transform:scale(1.1)}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}@-webkit-keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-left{-webkit-animation-name:layui-m-anim-left;animation-name:layui-m-anim-left}@-webkit-keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-right{-webkit-animation-name:layui-m-anim-right;animation-name:layui-m-anim-right}@-webkit-keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.layui-m-anim-lout{-webkit-animation-name:layui-m-anim-lout;animation-name:layui-m-anim-lout}@-webkit-keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.layui-m-anim-rout{-webkit-animation-name:layui-m-anim-rout;animation-name:layui-m-anim-rout}.layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
/** layui-v2.3.0 MIT License By https://www.layui.com */
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/** layui-v2.1.0 MIT License By http://www.layui.com */
;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",o=">*[carousel-item]>*",l="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(o),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.indicator(),e.elemItem.length<=1||(e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e,i){var n=this,o=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),setTimeout(function(){o.eq(u.index).addClass(d),setTimeout(function(){o.eq(c).addClass(r),o.eq(u.index).addClass(r)},50)},50)):(n.addIndex(i),setTimeout(function(){o.eq(u.index).addClass(s),setTimeout(function(){o.eq(c).addClass(l),o.eq(u.index).addClass(l)},50)},50)),setTimeout(function(){o.removeClass(a+" "+d+" "+s+" "+l+" "+r),o.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:o.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
\ No newline at end of file
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e,i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")),c.html('<ol class="layui-code-ol"><li>'+o.replace(/[\r\t\n]+/g,"</li><li>")+"</li></ol>"),c.find(">.layui-code-h3")[0]||c.prepend('<h3 class="layui-code-h3">'+(c.attr("lay-title")||e.title||"code")+(e.about?'<a href="'+l+'" target="_blank">layui.code</a>':"")+"</h3>");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon ">&#xe63e;</i>';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="<cite>加载更多</cite>",h=l('<div class="layui-flow-more"><a href="javascript:;">'+d+"</a></div>");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;s<t.lazyimg.elem.length;s++){var v=t.lazyimg.elem.eq(s),y=a?function(){return v.offset().top-n.offset().top+m}():v.offset().top;if(c(v,f),i=s,y>u)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
;layui.define(function(e){"use strict";var a=document,t="getElementById",r="getElementsByTagName",n="laypage",i="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.groups=0|a.groups||5,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),a.groups<0?a.groups=0:a.groups>a.pages&&(a.groups=a.pages),a.prev="prev"in a?a.prev:"&#x4E0A;&#x4E00;&#x9875;",a.next="next"in a?a.next:"&#x4E0B;&#x4E00;&#x9875;";var t=a.pages>a.groups?Math.ceil((a.curr+(a.groups>1?1:0))/(a.groups>0?a.groups:1)):1,r={prev:function(){return a.prev?'<a href="javascript:;" class="layui-laypage-prev'+(1==a.curr?" "+i:"")+'" data-page="'+(a.curr-1)+'">'+a.prev+"</a>":""}(),page:function(){var e=[];if(a.count<1)return"";t>1&&a.first!==!1&&0!==a.groups&&e.push('<a href="javascript:;" class="layui-laypage-first" data-page="1" title="&#x9996;&#x9875;">'+(a.first||1)+"</a>");var r=Math.floor((a.groups-1)/2),n=t>1?a.curr-r:1,i=t>1?function(){var e=a.curr+(a.groups-r-1);return e>a.pages?a.pages:e}():a.groups;for(i-n<a.groups-1&&(n=i-a.groups+1),a.first!==!1&&n>2&&e.push('<span class="layui-laypage-spr">&#x2026;</span>');n<=i;n++)n===a.curr?e.push('<span class="layui-laypage-curr"><em class="layui-laypage-em" '+(/^#/.test(a.theme)?'style="background-color:'+a.theme+';"':"")+"></em><em>"+n+"</em></span>"):e.push('<a href="javascript:;" data-page="'+n+'">'+n+"</a>");return a.pages>a.groups&&a.pages>i&&a.last!==!1&&(i+1<a.pages&&e.push('<span class="layui-laypage-spr">&#x2026;</span>'),0!==a.groups&&e.push('<a href="javascript:;" class="layui-laypage-last" title="&#x5C3E;&#x9875;" data-page="'+a.pages+'">'+(a.last||a.pages)+"</a>")),e.join("")}(),next:function(){return a.next?'<a href="javascript:;" class="layui-laypage-next'+(a.curr==a.pages?" "+i:"")+'" data-page="'+(a.curr+1)+'">'+a.next+"</a>":""}(),count:'<span class="layui-laypage-count">共 '+a.count+" 条</span>",limit:function(){var e=['<span class="layui-laypage-limits"><select lay-ignore>'];return layui.each(a.limits,function(t,r){e.push('<option value="'+r+'"'+(r===a.limit?"selected":"")+">"+r+" 条/页</option>")}),e.join("")+"</select></span>"}(),skip:function(){return['<span class="layui-laypage-skip">&#x5230;&#x7B2C;','<input type="text" min="1" value="'+a.curr+'" class="layui-input">','&#x9875;<button type="button" class="layui-laypage-btn">&#x786e;&#x5b9a;</button>',"</span>"].join("")}()};return['<div class="layui-box layui-laypage layui-laypage-'+(a.theme?/^#/.test(a.theme)?"molv":a.theme:"default")+'" id="layui-laypage-'+a.index+'">',function(){var e=[];return layui.each(a.layout,function(a,t){r[t]&&e.push(r[t])}),e.join("")}(),"</div>"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,n=t.config,i=e.children,u=e[r]("button")[0],p=e[r]("input")[0],l=e[r]("select")[0],o=function(){var e=0|p.value.replace(/\s|\D/g,"");e&&(n.curr=e,t.render())};if(a)return o();for(var c=0,g=i.length;c<g;c++)"a"===i[c].nodeName.toLowerCase()&&s.on(i[c],"click",function(){var e=0|this.getAttribute("data-page");e<1||e>n.pages||(n.curr=e,t.render())});l&&s.on(l,"change",function(){var e=this.value;n.curr*e>n.count&&(n.curr=Math.ceil(n.count/e)),n.limit=e,t.render()}),u&&s.on(u,"click",function(){o()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[r]("input")[0];t&&s.on(t,"keyup",function(t){var r=this.value,n=t.keyCode;/^(37|38|39|40)$/.test(n)||(/\D/.test(r)&&(this.value=r.replace(/\D/,"")),13===n&&a.jump(e,!0))})}},u.prototype.render=function(e){var r=this,n=r.config,i=r.type(),u=r.view();2===i?n.elem&&(n.elem.innerHTML=u):3===i?n.elem.html(u):a[t](n.elem)&&(a[t](n.elem).innerHTML=u),n.jump&&n.jump(n,e);var s=a[t]("layui-laypage-"+n.index);r.jump(s),n.hash&&!e&&(location.hash="!"+n.hash+"="+n.curr),r.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(n,s)});
\ No newline at end of file
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"&#x4E0A;&#x4E00;&#x9875;",a.next="next"in a?a.next:"&#x4E0B;&#x4E00;&#x9875;";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?'<a href="javascript:;" class="layui-laypage-prev'+(1==a.curr?" "+r:"")+'" data-page="'+(a.curr-1)+'">'+a.prev+"</a>":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push('<a href="javascript:;" class="layui-laypage-first" data-page="1" title="&#x9996;&#x9875;">'+(a.first||1)+"</a>");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r<t-1&&(r=u-t+1),a.first!==!1&&r>2&&e.push('<span class="layui-laypage-spr">&#x2026;</span>');r<=u;r++)r===a.curr?e.push('<span class="layui-laypage-curr"><em class="layui-laypage-em" '+(/^#/.test(a.theme)?'style="background-color:'+a.theme+';"':"")+"></em><em>"+r+"</em></span>"):e.push('<a href="javascript:;" data-page="'+r+'">'+r+"</a>");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1<a.pages&&e.push('<span class="layui-laypage-spr">&#x2026;</span>'),0!==t&&e.push('<a href="javascript:;" class="layui-laypage-last" title="&#x5C3E;&#x9875;" data-page="'+a.pages+'">'+(a.last||a.pages)+"</a>")),e.join("")}(),next:function(){return a.next?'<a href="javascript:;" class="layui-laypage-next'+(a.curr==a.pages?" "+r:"")+'" data-page="'+(a.curr+1)+'">'+a.next+"</a>":""}(),count:'<span class="layui-laypage-count">共 '+a.count+" 条</span>",limit:function(){var e=['<span class="layui-laypage-limits"><select lay-ignore>'];return layui.each(a.limits,function(t,n){e.push('<option value="'+n+'"'+(n===a.limit?"selected":"")+">"+n+" 条/页</option>")}),e.join("")+"</select></span>"}(),refresh:['<a href="javascript:;" data-page="'+a.curr+'" class="layui-laypage-refresh">','<i class="layui-icon layui-icon-refresh"></i>',"</a>"].join(""),skip:function(){return['<span class="layui-laypage-skip">&#x5230;&#x7B2C;','<input type="text" min="1" value="'+a.curr+'" class="layui-input">','&#x9875;<button type="button" class="layui-laypage-btn">&#x786e;&#x5b9a;</button>',"</span>"].join("")}()};return['<div class="layui-box layui-laypage layui-laypage-'+(a.theme?/^#/.test(a.theme)?"molv":a.theme:"default")+'" id="layui-laypage-'+a.index+'">',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"</div>"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;o<y;o++)"a"===r[o].nodeName.toLowerCase()&&s.on(r[o],"click",function(){var e=0|this.getAttribute("data-page");e<1||e>i.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},n={exp:function(e){return new RegExp(e,"g")},query:function(e,n,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return c((n||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)});
\ No newline at end of file
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
\ No newline at end of file
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='<ul class="layui-rate" '+(i.readonly?"readonly":"")+">",u=1;u<=i.length;u++){var r='<li class="layui-inline"><i class="layui-icon '+(u>Math.floor(i.value)?o:s)+'" '+l+"></i></li>";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'<li><i class="layui-icon layui-icon-rate-half" '+l+"></i></li>":n+=r}n+="</ul>"+(i.text?'<span class="layui-inline">'+i.value+"星":"")+"</span>";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["&#xe623;","&#xe625;"],checkbox:["&#xe626;","&#xe627;"],radio:["&#xe62b;","&#xe62a;"],branch:["&#xe622;","&#xe624;"],leaf:"&#xe621;"};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('<ul class="'+(n.spread?"layui-show":"")+'"></ul>'),s=o(["<li "+(n.spread?'data-spread="'+n.spread+'"':"")+">",function(){return l?'<i class="layui-icon layui-tree-spread">'+(n.spread?t.arrow[1]:t.arrow[0])+"</i>":""}(),function(){return r.check?'<i class="layui-icon layui-tree-check">'+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"</i>":""}(),function(){return'<a href="'+(n.href||"javascript:;")+'" '+(r.target&&n.href?'target="'+r.target+'"':"")+">"+('<i class="layui-icon layui-tree-'+(l?"branch":"leaf")+'">'+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"</i>")+("<cite>"+(n.name||"未命名")+"</cite></a>")}(),"</li>"].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('<div class="layui-box '+t+'"></div>'));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});
\ No newline at end of file
/** layui-v2.1.0 MIT License By http://www.layui.com */
;layui.define("jquery",function(e){"use strict";var o=layui.$,t={fixbar:function(e){var t,a,i="layui-fixbar",l="layui-fixbar-top",r=o(document),c=o("body");e=o.extend({showHeight:200},e),e.bar1=e.bar1===!0?"&#xe606;":e.bar1,e.bar2=e.bar2===!0?"&#xe607;":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var n=[e.bar1,e.bar2,"&#xe604;"],u=o(['<ul class="'+i+'">',e.bar1?'<li class="layui-icon" lay-type="bar1" style="'+e.bgcolor+'">'+n[0]+"</li>":"",e.bar2?'<li class="layui-icon" lay-type="bar2" style="'+e.bgcolor+'">'+n[1]+"</li>":"",'<li class="layui-icon '+l+'" lay-type="top" style="'+e.bgcolor+'">'+n[2]+"</li>","</ul>"].join("")),s=u.find("."+l),b=function(){var o=r.scrollTop();o>=e.showHeight?t||(s.show(),t=1):t&&(s.hide(),t=0)};o("."+i)[0]||("object"==typeof e.css&&u.css(e.css),c.append(u),b(),u.find("li").on("click",function(){var t=o(this),a=t.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,a)}),r.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){b()},100)}))},countdown:function(e,o,t){var a=this,i="function"==typeof o,l=new Date(e).getTime(),r=new Date(!o||i?(new Date).getTime():o).getTime(),c=l-r,n=[Math.floor(c/864e5),Math.floor(c/36e5)%24,Math.floor(c/6e4)%60,Math.floor(c/1e3)%60];i&&(t=o);var u=setTimeout(function(){a.countdown(e,r+1e3,t)},1e3);return t&&t(c>0?n:[0,0,0,0],o,u),c<=0&&clearTimeout(u),u},timeAgo:function(e,o){var t=(new Date).getTime()-new Date(e).getTime();return t>2592e6?(t=new Date(e).toLocaleString(),o&&(t=t.replace(/\s[\S]+$/g,"")),t):t>=864e5?(t/1e3/60/60/24|0)+"天前":t>=36e5?(t/1e3/60/60|0)+"小时前":t>=18e4?(t/1e3/60|0)+"分钟前":t<0?"未来":"刚刚"}};e("util",t)});
\ No newline at end of file
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var t=layui.$,i={fixbar:function(e){var i,a,o="layui-fixbar",r="layui-fixbar-top",l=t(document),n=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"&#xe606;":e.bar1,e.bar2=e.bar2===!0?"&#xe607;":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,"&#xe604;"],g=t(['<ul class="'+o+'">',e.bar1?'<li class="layui-icon" lay-type="bar1" style="'+e.bgcolor+'">'+c[0]+"</li>":"",e.bar2?'<li class="layui-icon" lay-type="bar2" style="'+e.bgcolor+'">'+c[1]+"</li>":"",'<li class="layui-icon '+r+'" lay-type="top" style="'+e.bgcolor+'">'+c[2]+"</li>","</ul>"].join("")),u=g.find("."+r),s=function(){var t=l.scrollTop();t>=e.showHeight?i||(u.show(),i=1):i&&(u.hide(),i=0)};t("."+o)[0]||("object"==typeof e.css&&g.css(e.css),n.append(g),s(),g.find("li").on("click",function(){var i=t(this),a=i.attr("lay-type");"top"===a&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,a)}),l.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){s()},100)}))},countdown:function(e,t,i){var a=this,o="function"==typeof t,r=new Date(e).getTime(),l=new Date(!t||o?(new Date).getTime():t).getTime(),n=r-l,c=[Math.floor(n/864e5),Math.floor(n/36e5)%24,Math.floor(n/6e4)%60,Math.floor(n/1e3)%60];o&&(i=t);var g=setTimeout(function(){a.countdown(e,l+1e3,i)},1e3);return i&&i(n>0?c:[0,0,0,0],t,g),n<=0&&clearTimeout(g),g},timeAgo:function(e,t){var i=this,a=[[],[]],o=(new Date).getTime()-new Date(e).getTime();return o>6912e5?(o=new Date(e),a[0][0]=i.digit(o.getFullYear(),4),a[0][1]=i.digit(o.getMonth()+1),a[0][2]=i.digit(o.getDate()),t||(a[1][0]=i.digit(o.getHours()),a[1][1]=i.digit(o.getMinutes()),a[1][2]=i.digit(o.getSeconds())),a[0].join("-")+" "+a[1].join(":")):o>=864e5?(o/1e3/60/60/24|0)+"天前":o>=36e5?(o/1e3/60/60|0)+"小时前":o>=12e4?(o/1e3/60|0)+"分钟前":o<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var a=e.length;a<t;a++)i+="0";return e<Math.pow(10,t)?i+(0|e):e},toDateString:function(e,t){var i=this,a=new Date(e||new Date),o=[i.digit(a.getFullYear(),4),i.digit(a.getMonth()+1),i.digit(a.getDate())],r=[i.digit(a.getHours()),i.digit(a.getMinutes()),i.digit(a.getSeconds())];return t=t||"yyyy-MM-dd HH:mm:ss",t.replace(/yyyy/g,o[0]).replace(/MM/g,o[1]).replace(/dd/g,o[2]).replace(/HH/g,r[0]).replace(/mm/g,r[1]).replace(/ss/g,r[2])},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")}};e("util",i)});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -8,7 +8,7 @@ website: http://code.google.com/p/jquerytree/
-------------------------------------*/
.ztree * {padding:0; margin:0; font-size:20px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
.ztree * {padding:0; margin:0; font-size:14px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
.ztree {margin:0; padding:5px; color:#333}
.ztree li{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0}
.ztree li ul{ margin:0; padding:0 0 0 18px}
......
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