From 2add68003f0f806dc193ce9670d6c79ac2863c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E9=A3=8E?= <2452618307@qq.com> Date: Wed, 28 Feb 2024 09:54:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=84=E7=BB=87=E5=B2=97?= =?UTF-8?q?=E4=BD=8D=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=B3=BB=E7=BB=9F=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AnnouncementController.java | 54 + .../manager/controller/RoleController.java | 13 + .../manager/manager/dao/AnnouncementDao.java | 8 + .../manager/manager/dao/RoleDao.java | 2 + .../manager/manager/entity/TreeBean.java | 3 + .../manager/manager/model/RoleBean.java | 22 + .../manager/service/AnnouncementService.java | 8 + .../manager/manager/service/RoleService.java | 5 + .../service/impl/AnnouncementServiceImpl.java | 20 + .../manager/service/impl/RoleServiceImpl.java | 6 + .../announcement/AnnouncementMapper.xml | 18 + .../resources/mappers/role/RoleMapper.xml | 6 +- .../layui-v2.9.6/css/components/nprogress.css | 73 + .../static/js/layui-v2.9.6/css/dtree.css | 112 + .../static/js/layui-v2.9.6/font/dtreefont.css | 229 + .../static/js/layui-v2.9.6/font/dtreefont.eot | Bin 0 -> 19508 bytes .../static/js/layui-v2.9.6/font/dtreefont.svg | 80 + .../static/js/layui-v2.9.6/font/dtreefont.ttf | Bin 0 -> 19344 bytes .../js/layui-v2.9.6/font/dtreefont.woff | Bin 0 -> 19420 bytes .../resources/static/js/layui-v2.9.6/layui.js | 7719 ++++++++++++++++- .../resources/static/js/layuiModules/dtree.js | 4947 +++++++++++ .../static/js/layuiModules/nprogress.js | 490 ++ src/main/resources/static/js/publicJs.js | 70 + .../static/layui/css/components/nprogress.css | 73 + .../pages/announcement/announcementList.html | 5 - .../organizational/organizationalForm.html | 270 + .../organizational/organizationalList.html | 227 + .../static/pages/role/addNewRole.html | 33 + .../static/pages/role/newRoleList.html | 189 + 29 files changed, 14675 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/bonus/leader/performance/manager/manager/model/RoleBean.java create mode 100644 src/main/resources/static/js/layui-v2.9.6/css/components/nprogress.css create mode 100644 src/main/resources/static/js/layui-v2.9.6/css/dtree.css create mode 100644 src/main/resources/static/js/layui-v2.9.6/font/dtreefont.css create mode 100644 src/main/resources/static/js/layui-v2.9.6/font/dtreefont.eot create mode 100644 src/main/resources/static/js/layui-v2.9.6/font/dtreefont.svg create mode 100644 src/main/resources/static/js/layui-v2.9.6/font/dtreefont.ttf create mode 100644 src/main/resources/static/js/layui-v2.9.6/font/dtreefont.woff create mode 100644 src/main/resources/static/js/layuiModules/dtree.js create mode 100644 src/main/resources/static/js/layuiModules/nprogress.js create mode 100644 src/main/resources/static/layui/css/components/nprogress.css create mode 100644 src/main/resources/static/pages/organizational/organizationalForm.html create mode 100644 src/main/resources/static/pages/organizational/organizationalList.html create mode 100644 src/main/resources/static/pages/role/addNewRole.html create mode 100644 src/main/resources/static/pages/role/newRoleList.html diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/controller/AnnouncementController.java b/src/main/java/com/bonus/leader/performance/manager/manager/controller/AnnouncementController.java index 27058ed..f3cbcf9 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/controller/AnnouncementController.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/controller/AnnouncementController.java @@ -129,6 +129,7 @@ public class AnnouncementController { } return ar; } + @PostMapping("/upload") @ResponseBody @ApiOperation(value = "系统公告-上传附件") @@ -219,4 +220,57 @@ public class AnnouncementController { } return ar; } + + @RequestMapping(value = "addTreeChild", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "组织岗位-新增子节点") + public AjaxRes addTreeChild(@RequestBody TreeBean bean){ + AjaxRes ar = new AjaxRes(); + int cb = service.addTreeChild(bean); + ar.setFailMsg(GlobalConst.DATA_FAIL); + if(cb>0){ + ar.setFailMsg(GlobalConst.DATA_SUCCEED); + } + return ar; + } + @RequestMapping(value = "updateTreeChild", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "组织岗位-修改子节点") + public AjaxRes updateTreeChild(@RequestBody TreeBean bean){ + AjaxRes ar = new AjaxRes(); + int cb = service.updateTreeChild(bean); + ar.setFailMsg(GlobalConst.DATA_FAIL); + if(cb>0){ + ar.setFailMsg(GlobalConst.DATA_SUCCEED); + } + return ar; + } + + @RequestMapping(value = "getTreeChildInfoById", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "组织岗位-根据id获取子节点信") + public AjaxRes getTreeChildInfoById(TreeBean o){ + AjaxRes ar = new AjaxRes(); + TreeBean treeBean = service.getTreeChildInfoById(o); + Map map = new HashMap<>(); + if(treeBean !=null){ + map.put("treeBean",treeBean); + } + ar.setSucceed(map, GlobalConst.DATA_SUCCEED); + return ar; + } + + @LogAnnotation + @PostMapping("delTreeChildById") + @ApiOperation(value = "组织岗位-删除节点") + public AjaxRes delTreeChildById(TreeBean bean) { + AjaxRes ar = new AjaxRes(); + int result = service.delTreeChildById(bean); + if(result==1){ + ar.setSucceedMsg(GlobalConst.DATA_SUCCEED); + }else { + ar.setFailMsg(GlobalConst.DATA_FAIL); + } + return ar; + } } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/controller/RoleController.java b/src/main/java/com/bonus/leader/performance/manager/manager/controller/RoleController.java index 346cf3a..8519e89 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/controller/RoleController.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/controller/RoleController.java @@ -5,10 +5,12 @@ import java.util.List; import com.bonus.leader.performance.manager.manager.dao.RoleDao; import com.bonus.leader.performance.manager.manager.entity.RoleDto; import com.bonus.leader.performance.manager.manager.model.Role; +import com.bonus.leader.performance.manager.manager.model.RoleBean; import com.bonus.leader.performance.manager.manager.table.PageTableHandler; import com.bonus.leader.performance.manager.manager.table.PageTableRequest; import com.bonus.leader.performance.manager.manager.table.PageTableResponse; import com.bonus.leader.performance.manager.manager.service.RoleService; +import com.bonus.leader.performance.manager.manager.utils.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; @@ -97,4 +99,15 @@ public class RoleController { public void delete(@PathVariable Long id) { roleService.deleteRole(id); } + +/*----------------------------------------新版角色管理接口------------------------------------------------*/ + + + @LogAnnotation + @PostMapping("getNewRoleList") + @ApiOperation(value = "角色管理-列表查询") + public R getNewRoleList(RoleBean o){ + List list = roleService.getNewRoleList(o); + return list.size() > 0 ? R.okTable(list, list.size()):R.failTable("暂无数据"); + } } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/dao/AnnouncementDao.java b/src/main/java/com/bonus/leader/performance/manager/manager/dao/AnnouncementDao.java index e6c563f..5ec75cf 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/dao/AnnouncementDao.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/dao/AnnouncementDao.java @@ -41,4 +41,12 @@ public interface AnnouncementDao { int insertCateManage(AnnouncementBean bean); int insertFileDownLoadRecord(DownloadFileBean bean); + + int addTreeChild(TreeBean bean); + + TreeBean getTreeChildInfoById(TreeBean o); + + int updateTreeChild(TreeBean bean); + + int delTreeChildById(TreeBean bean); } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/dao/RoleDao.java b/src/main/java/com/bonus/leader/performance/manager/manager/dao/RoleDao.java index 164f975..f0c018b 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/dao/RoleDao.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/dao/RoleDao.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.bonus.leader.performance.manager.manager.model.Role; +import com.bonus.leader.performance.manager.manager.model.RoleBean; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; @@ -47,4 +48,5 @@ public interface RoleDao { @Delete("delete from sys_role_user where roleId = #{roleId}") int deleteRoleUser(Long roleId); + List getNewRoleList(RoleBean o); } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/entity/TreeBean.java b/src/main/java/com/bonus/leader/performance/manager/manager/entity/TreeBean.java index 6d9f26c..5d639ef 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/entity/TreeBean.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/entity/TreeBean.java @@ -18,4 +18,7 @@ public class TreeBean { private String subId; private String keyWord; private String orgIds; + private String personType; + private String type; + private String parentName; } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/model/RoleBean.java b/src/main/java/com/bonus/leader/performance/manager/manager/model/RoleBean.java new file mode 100644 index 0000000..bed26e0 --- /dev/null +++ b/src/main/java/com/bonus/leader/performance/manager/manager/model/RoleBean.java @@ -0,0 +1,22 @@ +package com.bonus.leader.performance.manager.manager.model; + +import lombok.Data; + +/** + * FileName: RoleBean + * + * @author tqzhang + * Date: 2024 2024/2/28 9:17 + * Description:角色bean + */ +@Data +public class RoleBean { + private String id; + private String name; + private String description; + private String createTime; + private String updateTime; + private String status; + private String membersNum; + private String dataPermissions; +} diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/service/AnnouncementService.java b/src/main/java/com/bonus/leader/performance/manager/manager/service/AnnouncementService.java index 756e7ab..46e0a57 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/service/AnnouncementService.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/service/AnnouncementService.java @@ -33,4 +33,12 @@ public interface AnnouncementService { int categoricalManagementOfOperations(AnnouncementBean bean); int insertFileDownLoadRecord(DownloadFileBean bean); + + int addTreeChild(TreeBean bean); + + TreeBean getTreeChildInfoById(TreeBean o); + + int updateTreeChild(TreeBean bean); + + int delTreeChildById(TreeBean bean); } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/service/RoleService.java b/src/main/java/com/bonus/leader/performance/manager/manager/service/RoleService.java index 6c73064..320a2d2 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/service/RoleService.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/service/RoleService.java @@ -1,10 +1,15 @@ package com.bonus.leader.performance.manager.manager.service; import com.bonus.leader.performance.manager.manager.entity.RoleDto; +import com.bonus.leader.performance.manager.manager.model.RoleBean; + +import java.util.List; public interface RoleService { void saveRole(RoleDto roleDto); void deleteRole(Long id); + + List getNewRoleList(RoleBean o); } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/AnnouncementServiceImpl.java b/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/AnnouncementServiceImpl.java index 9e576bb..02f88c5 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/AnnouncementServiceImpl.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/AnnouncementServiceImpl.java @@ -123,4 +123,24 @@ public class AnnouncementServiceImpl implements AnnouncementService { bean.setUserId(UserUtil.getLoginUser().getId()+""); return dao.insertFileDownLoadRecord(bean); } + + @Override + public int addTreeChild(TreeBean bean) { + return dao.addTreeChild(bean); + } + + @Override + public TreeBean getTreeChildInfoById(TreeBean o) { + return dao.getTreeChildInfoById(o); + } + + @Override + public int updateTreeChild(TreeBean bean) { + return dao.updateTreeChild(bean); + } + + @Override + public int delTreeChildById(TreeBean bean) { + return dao.delTreeChildById(bean); + } } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/RoleServiceImpl.java b/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/RoleServiceImpl.java index e6bbc29..9902937 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/RoleServiceImpl.java @@ -4,6 +4,7 @@ import java.util.List; import com.bonus.leader.performance.manager.manager.dao.RoleDao; import com.bonus.leader.performance.manager.manager.model.Role; +import com.bonus.leader.performance.manager.manager.model.RoleBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -74,4 +75,9 @@ public class RoleServiceImpl implements RoleService { log.debug("删除角色id:{}", id); } + @Override + public List getNewRoleList(RoleBean o) { + return roleDao.getNewRoleList(o); + } + } diff --git a/src/main/resources/mappers/announcement/AnnouncementMapper.xml b/src/main/resources/mappers/announcement/AnnouncementMapper.xml index 01b4d6a..a493d03 100644 --- a/src/main/resources/mappers/announcement/AnnouncementMapper.xml +++ b/src/main/resources/mappers/announcement/AnnouncementMapper.xml @@ -17,15 +17,25 @@ insert into download_record(file_name, file_path, user_id, user_name) values(#{fileName},#{filePath},#{userId},#{userName}) + + insert into sys_organization(org_name,parent_id,level,is_active,is_enable) + values(#{title},#{parentId},#{level},'1','1') + update sys_data_dict set dict_key = #{typeName} where id = #{id} + + update sys_organization set org_name = #{title},type = #{type},person_type = #{personType} where id = #{id} + update sys_data_dict set is_active = '0' where id = #{id} update bm_notice set is_active = '0' where notice_id = #{id} + + update sys_organization set is_active = '0' where id = #{id} + + \ No newline at end of file diff --git a/src/main/resources/mappers/role/RoleMapper.xml b/src/main/resources/mappers/role/RoleMapper.xml index b2c6b55..4075ee5 100644 --- a/src/main/resources/mappers/role/RoleMapper.xml +++ b/src/main/resources/mappers/role/RoleMapper.xml @@ -24,8 +24,12 @@ limit #{offset}, #{limit} + - + insert into sys_role_permission(roleId, permissionId) values diff --git a/src/main/resources/static/js/layui-v2.9.6/css/components/nprogress.css b/src/main/resources/static/js/layui-v2.9.6/css/components/nprogress.css new file mode 100644 index 0000000..3f90ab8 --- /dev/null +++ b/src/main/resources/static/js/layui-v2.9.6/css/components/nprogress.css @@ -0,0 +1,73 @@ +/* Make clicks pass-through */ +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: #1890ff; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* Fancy blur effect */ +#nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px #29d, 0 0 5px #29d; + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +#nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; +} + +#nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: #1890ff; + border-left-color: #1890ff; + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.nprogress-custom-parent #nprogress .spinner, +.nprogress-custom-parent #nprogress .bar { + position: absolute; +} + +@-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } +} +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} diff --git a/src/main/resources/static/js/layui-v2.9.6/css/dtree.css b/src/main/resources/static/js/layui-v2.9.6/css/dtree.css new file mode 100644 index 0000000..3e5364d --- /dev/null +++ b/src/main/resources/static/js/layui-v2.9.6/css/dtree.css @@ -0,0 +1,112 @@ + +/**************** 主题换肤 ****************/ +/* 默认风格*/ +.dtree-theme-item-this{background-color: #d2d2d2!important;} +.dtree-theme-item:hover{background-color: #eaeceb!important;} +.dtree-theme-item cite{font-size:12px!important;} +.dtree-theme-item:hover cite{color:#fe7786!important;} + +.dtree-theme-dtreefont{font-size: 16px!important;} +.dtree-theme-ficon{color:#000!important;} +.dtree-theme-icon{color:orange!important;} +.dtree-theme-checkbox:hover{color:#fe7786!important;} +.dtree-theme-choose{color:#fe7786!important;} + +/* layui主题风格*/ +.dtree-layui-item-this{background: none!important;} +.dtree-layui-item:hover{background: none!important;} +.dtree-layui-item cite{font-size:14px!important;} +.dtree-layui-item:hover cite{opacity:0.5;filter:Alpha(opacity=50);text-decoration: underline;} + +.dtree-layui-dtreefont{font-size: 18px!important;} +.dtree-layui-ficon{font-size: 18px!important;color:#393D49!important;} +.dtree-layui-icon{color:#666!important;} +.dtree-layui-checkbox:hover{color:#5FB878!important;} +.dtree-layui-choose{color:#5FB878!important;} + +/* laySimple主题风格*/ +.dtree-laySimple-item-this{background-color: #d2d2d2!important;} +.dtree-laySimple-item:hover{background-color: #eaeceb!important;} +.dtree-laySimple-item cite{font-size:12px!important;} +.dtree-laySimple-item:hover cite{color:#01AAED!important;} + +.dtree-laySimple-dtreefont{font-size: 16px!important;} +.dtree-laySimple-ficon{font-size: 14px!important;color:#393D49!important;} +.dtree-laySimple-icon{color:#393D49!important;} +.dtree-laySimple-checkbox:hover{color:#01AAED!important;} +.dtree-laySimple-choose{color:#01AAED!important;} +/**************** 树基础 ****************/ +/* 菜单栏*/ +.dtree-menubar {padding-left: 10px;} +.dtree-menubar .layui-btn-group .layui-btn-sm{height: 20px;line-height: 20px;padding: 0 5px;font-size: 12px;} +.dtree-menubar .layui-btn-group .layui-btn-sm i{font-size: 12px!important;} + +/* 工具栏*/ +.dtree-toolbar{position: absolute;z-index: 940520;padding: 0;background-color: #eceaeb;} +.dtree-toolbar .layui-nav-child{position: static;} +.dtree-toolbar .layui-nav-child dd{cursor: pointer;} +.dtree-toolbar .layui-nav-child dd a i{font-size:16px;display: inline-block;margin: 0px 1px;color:#fe7786;} +.dtree-toolbar .layui-nav-child dd a i:hover{font-weight: bold;} +.dtree-toolbar .layui-nav-bar{display: none!important;} +.dtree-toolbar-tool{padding: 30px;} + +.dtree-toolbar-fixed{position: absolute;right: 5px;top: 2px;font-style: normal;transition: all .3s;-webkit-transition: all .3s;} +/*.dtree-toolbar-fixed a{border:1px solid #fe7786;}*/ +.dtree-toolbar-fixed a i{font-size:14px;display: inline-block;margin: 0px 1px;color:#fe7786;} +.dtree-toolbar-fixed a i:hover{opacity:0.8;filter:Alpha(opacity=80);} + +/* 树基本*/ +.dtree{width:260px;} +.dtree-nav-item{line-height:33px;padding-left:16px;} +.dtree-nav-ul-sid{display: none;} +.dtree-none-text{font-size: 12px;text-align: center;color: gray;} + +/* 树线*/ +.dtree-nav-first-line,.dtree-nav-line,.dtree-nav-last-line{position: relative;} +.dtree-nav-first-line:before{content:"";position: absolute;height: 0;border-left: 1px dotted #c0c4cc;} +.dtree-nav-first-line:after{content:"";position: absolute;height: 0;border-top: 1px dotted #c0c4cc;} + +.dtree-nav-line:before{content:"";position: absolute;top: 0;left: 7px;width: 0;height: 100%;border-left: 1px dotted #c0c4cc;} +.dtree-nav-line:after{content:"";position: absolute;top: 16px;left: 8px;width: 9px;height: 0;border-top: 1px dotted #c0c4cc;} + +.dtree-nav-last-line:before{content:"";position: absolute;top: 0;left: 7px;width: 0;height: 17px;border-left: 1px dotted #c0c4cc;} +.dtree-nav-last-line:after{content:"";position: absolute;top: 16px;left: 8px;width: 9px;height: 0;border-top: 1px dotted #c0c4cc;} + + +/* 图标及复选框*/ +.dtreefont{cursor: pointer;} +.dtreefont-special{margin: 0 4px;} +.dtree-nav-checkbox-div{display: inline-block;} +.dtree-nav-checkbox-div>i{display: inline-block;margin: 0px 1px;} +.dtree-nav-checkbox-div>i:last-child{margin-right: 4px;} +.dtree-nav-checkbox-div>i:hover{opacity:0.8;filter:Alpha(opacity=80);} + +/* 行 文字*/ +.dtree-nav-div{display:block;vertical-align:top;position:relative;} +.dtree-nav-div cite{font-style: normal;cursor: pointer;} +.dtree-nav-div:hover cite{opacity:0.7;filter:Alpha(opacity=70);transition: all .3s;-webkit-transition: all .3s;} + +/* 规则属性*/ +.dtree-nav-show {display: block!important;} +.dtree-nav-hide {display: none!important;} +.dtree-nav-this {} +.dtree-icon-hide {opacity:0;filter:Alpha(opacity=0);} +.dtree-icon-null-open,.dtree-icon-null-close,.dtree-icon-null{margin: 0 2px;} +.dtree-disabled{cursor: not-allowed; color:#c2c2c2!important;} +.dtree-disabled:hover{color:#c2c2c2!important;} +.dtree-nav-div cite.dtree-disabled{font-style: normal; cursor: not-allowed; color:#c2c2c2!important;} +.dtree-nav-div>cite.dtree-disabled:hover{color:#c2c2c2!important;} + + +/** 下拉树属性*/ +.dtree-select{position: absolute;max-height: 500px;height: 350px;overflow: auto;width: 99%;z-index: 123;display: none;border:1px solid silver;top: 42px;} +.dtree-select-show{display: block!important;} + +/* 简单适配*/ +@media screen and (max-width:1700px) and (min-width:1300px){ + .dtree-nav-item {padding-left: 15px;} +} + + + + diff --git a/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.css b/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.css new file mode 100644 index 0000000..df7af65 --- /dev/null +++ b/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.css @@ -0,0 +1,229 @@ +@font-face { + font-family: 'dtreefont'; + src: url('dtreefont.eot?x3m8fp'); + src: url('dtreefont.eot?x3m8fp#iefix') format('embedded-opentype'), + url('dtreefont.ttf?x3m8fp') format('truetype'), + url('dtreefont.woff?x3m8fp') format('woff'), + url('dtreefont.svg?x3m8fp#dtreefont') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="dtree-icon-"], [class*=" dtree-icon-"] { + /* use !important to prevent issues with browser extensions that change font */ + font-family: 'dtreefont' !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; +} + +.dtree-icon-xiangxia1:before { + content: "\e771"; +} +.dtree-icon-normal-file:before { + content: "\e60c"; +} +.dtree-icon-xiangyou:before { + content: "\e78f"; +} +.dtree-icon-ok-circle:before { + content: "\1005"; +} +.dtree-icon-close1:before { + content: "\1006"; +} +.dtree-icon-close-fill:before { + content: "\1007"; +} +.dtree-icon-jian1:before { + content: "\e600"; +} +.dtree-icon-jia1:before { + content: "\e601"; +} +.dtree-icon-bianji:before { + content: "\e602"; +} +.dtree-icon-yonghu:before { + content: "\e603"; +} +.dtree-icon-shijian:before { + content: "\e606"; +} +.dtree-icon-fuxuankuang-banxuan:before { + content: "\e607"; +} +.dtree-icon-star:before { + content: "\e608"; +} +.dtree-icon-wenjianjiazhankai:before { + content: "\e60e"; +} +.dtree-icon-xiangmuxiaoxi:before { + content: "\e60f"; +} +.dtree-icon-search2:before { + content: "\e615"; +} +.dtree-icon-weibiaoti5:before { + content: "\e618"; +} +.dtree-icon-layim-theme:before { + content: "\e61b"; +} +.dtree-icon-shuye1:before { + content: "\e61e"; +} +.dtree-icon-add-circle:before { + content: "\e61f"; +} +.dtree-icon-xinxipilu:before { + content: "\e620"; +} +.dtree-icon-set-sm:before { + content: "\e621"; +} +.dtree-icon-about:before { + content: "\e623"; +} +.dtree-icon-chart-screen:before { + content: "\e62a"; +} +.dtree-icon-delete1:before { + content: "\e640"; +} +.dtree-icon-share3:before { + content: "\e641"; +} +.dtree-icon-youjian:before { + content: "\e642"; +} +.dtree-icon-check:before { + content: "\e645"; +} +.dtree-icon-close:before { + content: "\e646"; +} +.dtree-icon-favorfill:before { + content: "\e64b"; +} +.dtree-icon-favor:before { + content: "\e64c"; +} +.dtree-icon-fuxuankuangxuanzhong:before { + content: "\e652"; +} +.dtree-icon-fenguangbaobiao:before { + content: "\e655"; +} +.dtree-icon-jian:before { + content: "\e656"; +} +.dtree-icon-jia:before { + content: "\e657"; +} +.dtree-icon-fenzhijigou:before { + content: "\e658"; +} +.dtree-icon-roundcheckfill:before { + content: "\e659"; +} +.dtree-icon-roundcheck:before { + content: "\e65a"; +} +.dtree-icon-roundclosefill:before { + content: "\e65b"; +} +.dtree-icon-roundclose:before { + content: "\e65c"; +} +.dtree-icon-roundrightfill:before { + content: "\e65d"; +} +.dtree-icon-roundright:before { + content: "\e65e"; +} +.dtree-icon-like:before { + content: "\e66c"; +} +.dtree-icon-samefill:before { + content: "\e671"; +} +.dtree-icon-same:before { + content: "\e672"; +} +.dtree-icon-evaluate:before { + content: "\e674"; +} +.dtree-icon-circle1:before { + content: "\e687"; +} +.dtree-icon-radio:before { + content: "\e688"; +} +.dtree-icon-caidan_xunzhang:before { + content: "\e68e"; +} +.dtree-icon-pulldown:before { + content: "\e6a0"; +} +.dtree-icon-pullup:before { + content: "\e6a1"; +} +.dtree-icon-refresh:before { + content: "\e6a4"; +} +.dtree-icon-qrcode1:before { + content: "\e6b0"; +} +.dtree-icon-profile1:before { + content: "\e6b7"; +} +.dtree-icon-home1:before { + content: "\e6b8"; +} +.dtree-icon-homefill:before { + content: "\e6bb"; +} +.dtree-icon-roundaddfill:before { + content: "\e6d8"; +} +.dtree-icon-roundadd:before { + content: "\e6d9"; +} +.dtree-icon-fuxuankuang:before { + content: "\e6f2"; +} +.dtree-icon-wefill:before { + content: "\e6f5"; +} +.dtree-icon-sort:before { + content: "\e701"; +} +.dtree-icon-repair:before { + content: "\e738"; +} +.dtree-icon-shujudaping:before { + content: "\e742"; +} +.dtree-icon-dian:before { + content: "\e7a5"; +} +.dtree-icon-search_list_light:before { + content: "\e807"; +} +.dtree-icon-round_list_light:before { + content: "\e82b"; +} +.dtree-icon-star-fill:before { + content: "\e832"; +} +.dtree-icon-rate:before { + content: "\e833"; +} +.dtree-icon-move-up:before { + content: "\ea47"; +} +.dtree-icon-move-down:before { + content: "\ea48"; +} diff --git a/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.eot b/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.eot new file mode 100644 index 0000000000000000000000000000000000000000..68bf5f2f2dd33daa67373cca102f8ad764d84c22 GIT binary patch literal 19508 zcmb_^37i~NoqxUe>gcNO>Z|&mt9$yKdwQ;(Ofr+ngiKEoLXt@!h&d)eNCLUI1Ok!) zl_Q`F=pV$t!f@@PD7w1qx+pTRu%e4=KCYs&s~gcB5LpEO%Zj_1n*F|4JxS*v{^9?x znR@lBSFhgjd%yR)-mkjnOi8+9r6duFO2;2Wx`XhXGuIrS&&xW;E8bb}iO(d-EA5mn zkoHQuaqgA&pnz8zm$pgUr7NXf(pKp*^P}6hUcL|ceo3NJxVpCQy5^#R%oT6r z{!vL4Uc^Kw-OLAP9sL7IX5XyGMsoYk9=Mx$rI5UZ?P87 zoGTNhY9*QMK>j(>FxrnGFX`82*oPchndX_1nbDauXU1nX&+MAH zZ03rYTV_5n^T5o*Ghdnc#>_Woem3*_nYUjduk^n%^2(*J{MjpyysEw0@@n^MV{@}} zbG!qnSDBG!RMhLO)LSp=9iCY>vl8{5je0Ldy*H!YDN*m=px&RJvfi%O%A#H}_p9H{ zCA5T+pa~K`692FGJMsUFza9Tw{H6F$<3Ec3ApZUMbo^WKZ^l0#e>nch_?_{a;*;^~ z&313zHpqJ7D(cG~%PoKx6 zk-4YY-?KBM4r!&dR+5y)T)v$+|GhnZr6J<{cXvgi^~CuPhg8i=oPXBHuWC5NA4R&m zcfcQj?{T2Y^&?g;8i)i+nqO_(Fzx}4BIi>x0fF(|)4@oI@ko95xEJ8O< zgT=HJ32AC$2e90j&-E+@VtYz`T@Aoj{#mDjEvD?4K1eo0$u9 z(l34B^y5kgPB*YLA5WuNN04BI3ke@)SKlB(QW@%4*%>Ojyyh6ZrfPWQ(W;^D_Zn{R zem>CsUbo>u%mq}HfvR%(5>DWkI56s+P1hs@vWDi71;hb~i5jwJzuW6|qdLR4pO1Y% zM**1s6LWKHJEKwnJUb<2B`Hh#avdb6Y9Ktm_7@W?O7f%x&`0u^&M07w{FvMoQlp=W zF0$<1QKG1dSNp?dU$B4v7|Cq@ltSdpV;R|_*yH|BKe~kcA~I-wIHW}F#yQQD6-Gzs zqC4zAzk{6jfe)ip%N;FvWA>8AZ)n4OP~ws-X3`^&!b!|VNKH59z>~m=tO|S_QPFSj zT)ATB&J`le^S)s2 zZ`pTPSF51)^vnY3K&qEYo7b(oHiP5Zb?Y`)!|Rrh?c(IUYi#+tYIp&uW95^J zJFgyj?Bo}mm&qqct^L>n^#8-4+mB)H42%FeLwH~SpT&;F*XT<)ULu2E9%n*B|*$CtwKaJhDiH%N)>M-(oVvi+2#`#7goJFG!Dz8~1#HG7vfym02G=<52<8{r$E>ePScTl;Ad9>FJzswZvONvYi6h$M( zKjJm}dBsK0PeU>IMJJ>O8B|k0GeF&{BGW;tum|aSRoSt_!@T}t;+GFuUGaEIPJJg< zR~P#ZfOx#idgzylqEB~yh0?tWQB}+Moo1pVmZ6(8OaR< z!%`Kh?4^`^P*YTcq66pw)m7Y(`j4S?^x<|U6No$}P0t->!z?Ljl8Lo1S%FlbgQlXX zaCaa@qUqjgI;l?^_PSv*JZ(#4a(tX6k4)3u#Q&{vUjKoDHi!YqLrRgF2+SF-v^kryDV$REj)j>GtGACcv$+FUy=+FED6%YWN-$QC)Q9^KaP=4#^e`zdCt|3ODENSF#vgO9) z!gxII_4<5XZ$2Jhm~1R(vty~$KsnIGiSxqIEF>2WvsXYWfkHYRgjUAb#`Rq@0?vT-c?Zp}6( z2NJw9UixtCq;^F6u_IqK-S_71l@&#H8YG{~e$G=L@HeE}-qyAj?R~r}$LYII zGT9FqlcLZLBygYT0CAWqXS4H6HeAF5@(+5k)`dlRezdVMdgLe3bUI2>;RcmHA5W5W zZ1(L~Ivt~vu{0qCEIBGIkyf#%=wD;)3~{PWYn`elX0ix4T4E^{EooND((HTarozG_6oLFPZXr>l@CfuQ&4>jD|D(M!3Fok4$t|Q*+ZuI82DH*FiyO zSQ}AXitI8Bmu486?1Ejb-l+OyexWLrT~wj!KPWyKm+vuTsPqYN62+(R3)AQ?1t z#EkqYm9%&|ODKY;upQx2QC{&|OLLI8qut{iGN50748(UXh-#XOYz@^zF z`!le|~(;f9(7$#L(lF}W9{pTaSTnDWz zcA?Y5N?gp>qQfA$dLIe1@V2KLVthZ?^RVXmCYYyDijT-s)<7XEyvz{xvML=Ae~;2{B^f;?e2qW&utnn z*|)OySk0aHv@q8C>Dg&sCplc`e_C@hCNEe(p(rr7_B7g?n12;g^pd$BvahnZ^d#9& z?j{d{f_j8!z>zRHXBCSa7|mX+ZWSxG*ePmdfE;4B195@bo8mv97}yppM<^XJcZ<1L^Sv;<~!urGq9aSE0rE= zYTwZgwQzNE-U~9{>*MM@_OzW066n{Jj=(ZMuAI~BN;lCFC_%jMRiml&x{~8`0bM&f zTnO7}_B2u&T+y+KP>_8!;Poz5xW4IPlqxb1P7R}=YBjpP*yC~~T;PU`Mm=WH^n@vK zQ>sT?F1Op0GrcvstHI+&`M9bjCnk+V8F{L#-plBFc$u**X3dXe?oWlD2ki1Jfyc=tLsp5 zQ7G(oFG9n*%=*3F7_3n+Z#^kP#^+?&kd;oiJK-^@$21u=(4aEJm_~?6sNbbQG{j|P zsmxHYfT1#$b%DX7fq-d_C}@D#H#TQ7B_Fz8%4C|GvY9?Vj=oH`Y1zcYvNN`BC3pLy zl(~scSs3e9(|RCD3?r{;n%V}=?AG1JLemUbZey|Aqj99VFgu3g(i`0F2Gg6?4G);S z%cWx6l*N2Yf+3l4;{i43hT-uPOb^Bj{L6;Xpelq=pwF%Ay#ap!^FIVP6lLf%I-Z2> z;&#VOv)-lmt6WU^_%Nu!7}#{KPf>}7QojK?W5hMrLRr>j85ku@uJP&^I@7d--&X_+ zQZ%jC>x;;YXs{~O9PmRKrqivc1&>+d^%Ae?LCvt*l@U!PI-{l+nD!(*o>o}xXX!OLzpG4wDj7T8gWvQU2QWXwA= zVt;b$8O|I)H3t70n)@dFnoET*=Pa%ppVr5AI`PI}ISB4_R1M}V!2%}}iymsR!y;hE z@`ZkUX_&kq+fD1nuT5t%>1)T=ZQ49Oer<-!vGMWE>sBn^oy4(w`HFSxm#^5(rQ+@t z%hzM7F!(`V4&F4e(zNOKZeN&qt(Bp$|uOaz}YQ(eF{h zbHTXb7=iFnvz@{ZS>)b1SgCa+3uhBA0G&V-$af0$pxE1)gLqJjVU5dqC<#Jo5U!LH zGkCehEprq~i_SXg1ImKSznz9e)a zj!dCgg%zj-0^(~3#aoK7)cAH;%}<@{v%CKaWRlRNShlU?cniAC~sB8|aPLlZ$}|w17Ui z2E*r;Pl@n32b3aQ>Li6F8i;a(p}VuI*agQ^G*wzm0(o{rA~?G)7>@_(mx2lVelu&@ zzoPr?m#6;upX&>rdOz{kds<$a{n*d`?Zp@A242u!9ZV#G3IzVD!*dDwLGiVjCrm(VPbiGS=uu&a%P zZlC=dq=te0AA)T@LKvi|$_*WU`?OBa(TQOX%s^z<=(D^4KPdmBtqyp)> z{h#Cjap?&Zx8DJvqqO~w{SGc%E)kdgHkVGQihzF*Y02C)dy)-fJ63}Amd`R!3kD2w zVxSe_?qd~SAM_$;mN?sG;J10aY3lY{SId6g@X7n_w{$OMvidBXjxH_e`u*>jOD3j8 zNZWHzX~^p?4{0Whn{>9_MBo7os^7DJr3WAjm5<#-sb#{BBhl|_0c?~KX}Hq2HOF}} zOBOUhw7z)W8b!Z+j@`-Kj*jCJ${a7nJzp3Nls-$r+;WGfJuk4IN-lzoQom#-#1-2|UdpKHfh zu@Z(Uz3F4{{V4&R)O}A4x^y>9pe{4a{9k}h@!LJJvgdWpr+mJV>e`Qge zjM--5ap?i=y8;=oA?Z;Y%7-;1k>i$5PY$a_?C%l!3;T?vTed7E-$H8NO33Zm9YoIB zKV{OErN7&uW z>?F^lNN3Nble3dpqfEL-O0cW2|G^{|d_$0FaLM8fU@C;t@8E}BHJhY|XUp`i**&yi zFM&GmB2OVr(3fYI(NE3pA|i~|k;Ai!Jme=!Hf7HG< z>i-R|14$nB@tU7;x%2NKm(MfB-u^S}+iVE(kH^}a#)wQ?q%*{247jcM2XZSWZf8#s z8z*AV8M`ig&l#3Gl{T&&zb1|2n(?(8tKpx_NmS<2rXrNMbwbGXLKba*4FUkNi4C3n zo>PZ?yFJTat~zjY0|W)6%f+t?L4wu5dGa*m1>b+Zi1TIMSF8xGeq(zOJ&b~J@R7i2 zC@!arPq4U82d_f*HW0|(Q0H;7*D>jVlzupVVAfM<69&yycMN({HN1LsbO#Sw*fBb~ zx(dDp!+mW#5<|cKRH9lkh(3IBZBET>_@w$Ob=!Z?_17;39wA_FI2l`np+#r@kKt+L z^z+X{4B$`Y-c#p#%0PqYyJFxxy(0T>Jt(vRSf&RL3SHsWgF;t1c#ys8NN2x}4s(m* z;H}UK6pZSYgB)qb!COTYw;bfW@Yq;N(&qO+=Zvc|V%~+W)4<2ebqb;O&FeZHh^eTa z-)gvOeyiuY@u0y~BXpT-J-6J7>5<|4a4QGrF{0o0t{6DYTpzfF6Tf~dPyw9W%1Mf& z>XzFp3e;_Uogc#u-#<7V#h+q!1%Y$I2LQF?T}QrP%2D)meb6!^f(*Qc=SsaqO|^Z5BZ@BPmw-$lgYcLw3;(U?;x)0H`eg7~f@+Jw2>S&w6< zvu@|%voNsx(P4uVqC?p718`5AZvIZJgVP4;vu|SxojQK*?$a!>K8cjX-s@rbs8{gu z=kj7ht-`~&KM<1z?&R1_(TXCD-5$rP!tS>d4g~FTp5q}_1FM)yk(P-4bZvVmG}_+L zTUeQN!-7k=WBv83FRia5i##Fh6?@2FD0k`V%+i{h1j*iPpyuhZ>Th zFj<;ey~N3kMK$FW0Wto^jxZJ1;@Jlekc(nRbg5JbYbIhA&r9NJiGPe($S zXIYxS81KRUGLxEwyq8FKI8B6^D7bd|1aifO;`}n?+l%w&H+RV@A(dZ5E*JdJ4#>ph zBrV<5Ts&zKSC=* zYL5GwN=N(lrO8Pm9UGZNELdfKq3i9P@%V;?10y2?3pemhR}R+=)R-|@aeGqB(kG9+ zqxCLM_8e35wGU6)hmVdNjo613`7gkk+O8a~uGfLxhT=9oF~wt^JS)o%^xTQ}WQ3+F z(hZQ~H?T#}PX?eDentAWvkofOpHOif(yj!EbPKIyeh1Mp4*JOg?sov)=dtOKcf9Z7 zBFb_4i8_+JcytqCh=^<+D}wz=XHx>vb?H2u^F^*hU}jK-(1bYp@h@OaM6u-Y3SI@7 zMmxK@qZL1rqn47p5!bZ%v(&VLCabMo)83wgBv9PSi>h0J4pV4vUsF@V%%Ek`&n!_q zTK`4ZL2SxqM`~-MalhYC)BrbR+s?_=EzVGxy8IgSq0CTSenSVh`2wn9`2F!{ZS6=l z+k|%~&Ld>Qjzrir;S4ugS7%fcjyx9csjKUaF+;^|dQ}UY{@6wjCw6Rr9qbUXl~L4X z@u2CoC=JJ=t&r1j!pM4!(Grcp<7%1SV63bt4-v)ZZL4p{wR9CP=;&&Axp&pQ`SBHC)yC>Vc30tHpc!R+B^TV@R6x$GNw$FX0AH>xXZ5 z3G}T?q^mJ5bX}NN@C1kryJD1k^7ulS-@oTx87_>mBDoDGR`LQ;g0-H)9%`?3n(-nQ zMMQ%-Td)DaG&zfhtw#@*DXk0JUk}$&I@&i93YR-N`}#UN%HhyR>2`0em+nHq)+2+1 z_SXjoA8F0y2e1|5AIRrgtKsrR7nS+hJvP?OPx6zCp}ySCy`;ATxTNulWu=bJawr@Q zl{-61%dTu}V(jo?#?IMz_*Yv#I=jjr7|7*YTk`n@0UQhR`IgpvZXn<%liSK;+qR9B zx7j~kE~@Tcexi@Fk+4@BA=%T(tv0UHzGp3Ghf$;NFu82mJb!hTTo#D3x3z-fsVZ zql$E2%yGmqM5JZVlb&KB>|k)8u#fve#lF(Kd~yU1mpYXod%;I4TTeoURb(HWwRq$d z=NnT_u%vLBa`eDs3CHPUo|qhuoY6A6cJ0*I@}77w7{Y$B>h(6))He3txTLeAV?#dI zP@C16*EA!{m5jCy4&A(L*}?^5hLLV=9U8m^H_eNKd(0U2VLcCW4>Y8K5nuzd+r$Qj z+gw&WJJ}twqD@W9QrYZTO@-#Bd=5eR@#ZGC(cF+MWY)H#Zss#H%jyTxY0DpIX}M~2 z^ri)so8&pg7SxRv7Q-XpF&=_GpsWZ&)dPP}+i6 zLF|Qatp+RwniKzgBNClggCbE-Nkzwk8%>Z|_EfGFE$t{?&Qn_o1Q#_mb#ycp z2JyK^a8aSquD2KR3j=VE&WRC=ako!TPbT^Jk%Xw^yzDeH{?SaZwsu8ZYquvxy`KI~ z#DIs0^XzD~XrjGQE1J&f37axgs;1YvNS|fd z-`8pl)Ii!~*?vK$_HfX9cc3;Nx*K&gl1@G#`;ex8sB>_z^F!ELX>)Qi2pR`TNJ}x! zX=X~zd{4+36!^_TQgN|!%f|7mRyI8aq2$=t?1Qm#%)Z$`ynx?Gc4WTq4K_z2Z9(s$ zOl#5zfU}U7NH_ZTT{#RliTz1Fl1~O|YXhJ32HSFEH-eWro`>PDoQA)$Upkj_!DjaoY%rP4tZiv&Yins)o5>~{;;}~TQMnpp z@rHMQvT2&j0mmMihv+wxv3QEVn~KMh4cW{Zr&cJE4e$QMe&qOCOi{C=FF4~bVJ92b zWJO=7@b!v&v$8TPHh%>X6=!D!Nle&7d`&w_g0m$HUCjCuL4Z_xPbjG%Yt`+gzJYCuC-YxKFzHx;+)8&YVGE8_OO?phIq$qD7E0R=@Mb7P9!T&^B_LT@*+UhmGERjRyJ^z-=bmvRSoOJKDr8en_yFP3SUpu z!1^n}{#(cC&aq-R`Gq3b&lHx8lc^nd=djdpQE;r@up=!_c}FIxBou6(QqvYURavHh zkNlr(4fK&yoOGD8Eq+eT1Bd4UGBy9s;gbOPxw!8BIQVj%Gz}FGdkOGX3I~?>3~~N@ zMDbw&|2~I7GY5S-`Z-9nC&yj1;6F$^b9`sNqS-=^52;0m$VL3c30`>Nr!N5~Jza>L zL}V3;B9ODPOBEF%0ntwJF^~{NJ)%>viBS0HKU_LIkfMi&X!djo_fAg{9yqb)_*OkC zbzr`bN+PlqfvlvP|Zn=jE7~y(2 z)?g(r9c$D_SP|~I7lmhdI`x#G<`=oYakcDum2ZDx-wUB|IC$F9+O{EINFnz@z5>qY zwwg!oKcnK`)IW$N(BFF-p4YF$w@O4aRpN^yAQK8X0yB6Oqw{6YK-CDO40#Yx94R3z z9v*7E$RkOh!Q1~7X$A+tc9nW=>Rbiiw0c-P(wx1x`wf3QS2LOqH6g5kB7W}!sSl_= zmu9j=xTR)U-q+y!_W&=E(`vdxwcemCYs9UE^vv4YkVVIw=Figga-tZl^9JzP{trA( zuc@`HQP@Cd@zIx?WFUpR-k(Z6g+Up{kHLH}*42v4ns^8_VlxoPgoI-VwFJW96rcy4 z-Int?dVm)ksO5t?uyT+WtWP7Rksv;Z5MMILZIxh?g)vj$1raGIyA<4zW5HYF#$zjj zM*{Z(F-N9#UB(W-7f9KFud9fml|Iy*i~E1qy)#!+rz1elrTNqkq|Q_DP}fS=G}qKA z${XDm=WFVQiDlKT$?74F4<-k^wN`h{axvFnZDkS))}6(l0v-6k3{Q)RQC&aFK^Q(` z(&2kC5X6CyEtOAO2=Kd_=|}!Re=}R6-@T8A+*|_> zCnj$ZCGays(O!Yc6g&vQ59SWsf00enEfOLctVT7;KNE*lolZSe zUmGQxd<7rb6ip;&N9mTKsQsYNM>aE%hCU`F!ir^hYRpp?dkkn9=Z1(x= z2P2EqC)B~;n~)CEDVl_gIl;F`CN|?+5`L0N=en7H3%3*TWlzu_!!llqAHk@6_W+LU z@VuiopI~vEafSi$E4<$1RF+=aaoc4b`VnD`Af~XOE_l)%L+^Mgmu64gStt@Kw6wLY zySue*sTB%YOJR|v25au*QN}96$27L;_m{F+1X5>9Jdhf2Q?r2W>1hL7Od{dHq)5m* z`!NoXvk?bvTsYl$et&mc+lYl@qz&x|IN+nx;1)!)RB~N&Cfm#r%mcis_r0 zUpw?ef7a{svX+Ovx}w%v|8|ip84M=1?Y|Dz;adswktW&a)hu_5EbrK%Gq;fm9=_Mi z`GaxVd?*kK1r8NhEEvp~|NC&L5&VGnhazV28Tjjl!JV;ZL9%Y5L|Im02m;J6CfI_G zvZw49ZoAEX;a_|4>1Vk2@S(!je!p|aTYs4)uXT{T{j-i=+uyqPUUJ68SN`_v$-{>m z|N6J6*DYvoicU)^zFhK3LBxF}qwS%&Px6muJipH78o+{4M4qgpY#&xClAv`x{FRR ziH*wj@`!w+d_?)Ga#$VG4DFz+**NGPc3sz6X;T_@WNFnkX(zy@OMAKrPv-ralm?tzG}`n9Wbwq17l&b@n*#rDoq|HRcP-#TUH__pm=?%I0U z@xPsQ%95jd_gs + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.ttf b/src/main/resources/static/js/layui-v2.9.6/font/dtreefont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..78bacd13a0a16b55e6b3be536b35e34e147a396a GIT binary patch literal 19344 zcmb_^37lM2neRR4+@cfRv&=ev=JBuQ>*N@7xR?S`&yYeM}GcZI>pfB&{r>{O;Y`uG%M^Ngl!T^LS3~*|vN8y{q*9 z#`CMFf78CbmtBr=;ZCf*--K@sp2cjY!gK z<7{evN}6K0P{46f`y~ayd*fF<%A7kBwdy6A>_q;V(g^yGATR0HX4$N3)-&sy4bR4A z>t<84>DkuV(b=)t_svesZk@e&_R`tQXK$JP`0N9-56^yi_Up6XnEmPO?`GeAg}gHG z%IGVXyz*zSJo2jcYTK(luZ_>o&CiPwB>l>)G^?UrZ?)Y<(eB9XirLj@_YAaq3EI6G z?M{n!{|4>;Z{sh;e-i&;{QL3m z#b@H*jDI8kx%k8JPsHzx-xQyUUl%_&zA8Q*ABt-+J9aSk)!2Qpp;#goig4U4#GM%U z|EGjV1eowGXdm=aUL?9Z+UKeBm^3>7H2ZsYn$#t&mexy>(wxh866de4x4%40oWGv# zNVJhSf8mg-d5QDKn)zJ~hj>w>r<>RA@9X6anEvR|4RkX0M z)s~9WDjRERyl||tZv9y0!p0`Rm9h2fDr11>uKNXVZY`(l7o;;-FMU#Kk|dqxnl&{P z)d`YFcUdP$`g`*_L6U1`KKm{EEmzp(auI;Ig#i$s$g$r7fE@ay18EV>epA%eG~&14 z)HJ8I9|hRrRQjNlVh311_RkUw;}lp-Tal2aHg^Hb&G}sKQXsas+~3^&Gk3oGRn%E5l2-)Zw>f>2Rg8bl8E1m%h(_$?*9MlH)1UF(1@Dv5mRpkvF&UR<;f= ztvD@`eLlnRdJV(JwUhPODu%r7D77Mmk`Jr zt|1GE0}>N;WY2!L*Xu@ehHpQg`+klBF#jj!=h+TMr2u$#O3F%7mh|VkNKVy2czo|K zC03N=Ng1Gz|Lif6+4@O^$eG77vPZEe z{GWPs8Tol+$of!7iQ3Kcnkg%cj?yJ}*nfTpIs5$|Lanwt+VIBQMUUUmf%TxoC0Wd* zharWNSdEaHZq9)xffZR*_!y$1-`cf$)vjHuR_|K-sf#YUClso5b@lakb&Z9>bmi(@ zqR=+C6pLFr3oS#O>kPFNI{CUUn*Uq&ZB`NVJap=HKNUT*Ksu1>qtez58?MRVcg=(TYb5?=V*TJ*WHy$H;s0WkxKX6 zufq)uVH)M>+^?1XEUBmV%h`VSST~JzkBxQDz1lrSpF!cPqGBxEfHjk)^!yjt&)7z( zO}aq3Qu?@%D4ch3u>#)J$>qsXI*gqVX`)N2AB~7hchLfol`m=vll{i)nulGW z1l{hSasl&buN!`uDcTnmnG`6hMvQ;NYxeVsi(s6FV(^ZG{LsVf8 z(v7OJbEk)S{iVb&9 z^As)WJMFtjK4^H!$7{ebg_lA;e`Fh^qO?ZZEnN+s{T{V9NU?WU-@q#%064#g)WW8O z;Oe6M(b50X*qB^Hj6zw`$lqiu&B?{_c;4&v`MlnIJia*DT*+p~Q>npt0=fK`Ps9gP zsqyT{qD33y_-$OYXk^)%{1wxEZ|+`MQDmn>^4aWX zJ&gf>liOpGtCABP9qZBG$GUTzzWXJU{eUqk3hh7w_lXV?hpBQlTVt}}5(>ya=%soW zHs!g|=H}?(A4k*aC`pBzRQh~8Nz$>ow`1vaj84VUgcPvlsI*L4!=9pljlDC>sWz<@ zRZXm932?N`QY>25tdynY%XwTq=mdWyY@qJqBCts=2797fUc<$ndTG17WLcsst1@J(CyXD+98pEfp;NW@=n zeER-n_8ny3vipJz6Y2x0OPDe3!x3baH%gKU87)y824FKZ!Ht6F z--0;+Il^9uXu?!b)2*ab6q;aJ*cAOeeP9KGl?(c+Sq|lXQHdv=ByCmk%4JtbWe!Ux zRUQw45k5XA&nXrnhO5Vo+(My@P-3Lhs~Z{!iN}_uQUOgX6wXejeBQ>U(;6Gi{3fI6 zG`|sUEZ-v&-PO|CG8zsOqU#M%5SrFU6qh2q48x@vh9hkY0-QwgDg4GX`g6HZxO&y9mBZ;wT9GxayHwh^espweJl=e+xAnl5^5)F) zG;zDT3x&bfmew`tbba@E;MQ}Jq0#U0PUm_wgS^0)>XkRkRN*&De#2zNE8pWh-%aVc zls+JP6;N0czk?fg6l-dB-e>1$Y&R}5Q+FitK>nU8f_8k zP_>0ELc==z1^(XnhK22IK-*1RnoU6-Oo1*9DJ*5AUTH|$Cc!t7&1>nXR*vS&=>?F& zr4-lG9rauoCJVGAr6&yg&qw;W4qDypLZ^q7xRmcjhe2}nJ`!ffwnZ+rtezID*k!eJ zFM!CdgIxO-$$%~OtzHeq5vl$ChfY(xN`<^{pkOBp0|SM>S5?JSwtj%AP&AmTCJF<$ z9DVoY?(XEGbb3+pS3SR%p$wYKGfG^f-_8wkX*!`4K)upZ}b*z*fYd%#|VNa96DN`>ZF?svu{ z>`kW>l4}Xk;IpU=$gyW&JBwbbBi7XZBLiyV>SWCeQXBO#?H(=dBtr!Hb#)-H%#W$( zjJi5Z3>Pxe_jLLq?+>vt)Y0l(;F?BQBTQ?a7(mI^EUeaie}*)u1DS+}vKX+v^R4 zEUQyDbjE*Rkqx@8y7WfFX!M%xE|*_cbeBs*!<0q*{#Ya&X3QWI-Uhd!dsMB%<7sev zVx||wTL9;zF3NOO8}j>oS(UM6UNbB+F6&jL6%?uD6vd?~1?7J z{;JpIVgY|bcl9cYo3cElw_LC5P;yZz>~=3f$GXf0yxthBQ7~^kDMQBRWZ96FqT8MD znABsMj2h@r8D>l)#3a=3(jXe*va(!es93;M8OyrB;L$AxR7)uW6dv0nY5!-Ns_m3|MYs zsoSG*q`I&=hT_tj-0mjRo7N2vn7qrSV&0U+e9M9%nQ`L*E$D{f@f1uC<_rAGhS8)d zgixT*t?PXOe*o)03^x>I7&Hc+gze&X$4s-)r4OiFO!@dUsKFT6bgo}fiHB0Z0XbvD zHP>QU)@2zOB}}gK>XQHruye(gleJ1b&;V%urX8bCD${~DhE2K<`Kg)irHt{b1y$95|5 z#$Y)J?sP;A<}ASiCli|rNZezI*c^j(}yQ$z^Oj&5$6A(s1LlCuAm{F(2X z$FJWK-}{lrzM5v_S7T##Q~G1+^v7sEowhGqSwAwpdB63E$5`@wqTq(zA@OsD8pue=2gc=$`& zcsh4Jl*}m^oNx{)nf?-ggD2mW*_U`_B)&$)_vo9DTahs_2)_0KNF{w;5r1bBLK z82BY)uh|DDM4 z!m=$}mW^&9_J4;5k{nJAh6zT!Wt2aV?&gLM84pF{pr8G_#)lJ zE81&=iA0e6uQy z9TapAo35tla8z{*%>tSD!zl#2%1G$;8NWtq7&!kSIOZdSL5ix}(BY3y>-0>W81~>S zM0TA%$1Ct3<^L%8SG|t!9U^^48fInsR}zfd>iLGIlLhA=j#8_0tY92C03oyktXMY^ zhW&f{4`>=A(CptEy5dn)k3w`(g>>EiPjWqR=?PS~-vOYbw*8L%4sKj75tscomriJk zfPWBa+58N9l8s0uJV5QrGEfU9402+i72)n>n;yzC5)SNw%tPD0Sv0&wSTDxAPbd` z-bATo!j2=+?`Q!WloDyAI<|GkcrwctG(hyev}TQBTt3I{@E>1u;_6^{gs$?dCIPm@>b4&YwdJ=bwjC^6eav)rWuKGTHg( zD{+rUS8kMjhVGZIB0k*&pHQFc#9XlxMku}MqwxJH0i85_R}H#!H%*`|GtB&-hfeXE zJ+iXrbfJtUE1woY#jyGESv z5&CocwB_fVvz&YrseLOUw`X?}IcxufN#`s-S~T}EA-83Bh!XJbee-X!JD4B5J1ym< zL3lpaOJ_(srHg@Q&by&gm$=g!7MEZhCC)NRpv6AHqqV-Cu*F$Qsm6j!oCmW&PvE^} zvuo#EE-0Gx9iGlzTnI#?0VgRu|Nr*jhh~j;L0CJZf#>=ANZx$@d2%Qku*dl``FbE~ zC&}0CadHRpJ|*&YB5xnrX@8178V$@%@jQxj?kqYrH-$aQq2muLYkm2&#j=JoV%Em-8#?J-F)xM$F<8P z_Q_j@6G|K&RQ)gS*3T=v?UVQSV+`eSUTjZj9`x;!u9ceEN9fPtYtBlGr1wda(q+<3 z+p+_ueoD6$4LQsQBDRm@_@{SQ@Q*nS35~# ztZe^F&i|}~cqIxwG z)yZF2ix+Pj#P4+YS^b~k?R>@`wXcc#f6d!Kl1F>Ir8RB{|x&U8;1Nt zq{%7uUyBq&T*iRgia#K?YT_1qOE@?YXU;fv;b+dU+^MvA{lwL2{H~r@zj-12<9Uh7 zT-sEH61PqWxlYKU9j`$EKsK@A6W?>%uy42L_{$4^c(?(A0@CHe*M%U#Zs0t52J(WR zKVQK4G9N2;1XsUtJctoS!8rI#;4~Dslg1}l+^2(AA$yw$WN)Z=jO=wxdLU&0jvtuy zRN8_`bJZP_-m(y0J2tkH2QBOz8(X^oz6H~LZ3hxVzwTtBS~7?}a$;*v%WUL?_Nr~$ zzt{EGF9aSTU~f1PTZExUXZ?@jY4p_V&qEC0PvzcI=YG;agXp_r;B37r`)@rUv;kPA z2M!2b;no8}S2=Kiz3WWpzJ>vFi{iko&Xri>X~uzDMH9Ci;JonYT*}hcKYh&^ zS7pSy3tgv)&zI{ILhY;RI$emVSh&6m;RWlvaIKpU7+f{Nkh#`#%dJ=*8NLs$d_Gz{#zgq&TW>xxK1D-NyI%QQYwJgHuubNmf@7I467nP)pu* z=8L8sMNc8mFGRrGYq)UC*=s^!4PYh}itj zBpf{&YYJt$x~5PN-*rY?u$H?T@!RF>+Zud2CU!ptY;Zz!2wQ#t?uk>a-|=m5+CY2u zZA_ul$FALdnkDupk&-xjJp>>1Dn9>QUL2@Zc^LNxVzI!T9J?u6Rm5@H<5*QV{dU5E zpk3BD9%41Hi>VZ8i`Y-scZNb^on3u})k!xjxP&`4(75)J#s;#)6T(@shYW>sm#ob! zue(W*?9G|8i+x?4W1&!Y!u~t7kPL;%^32+0PG&5s!55>r0>Mkxb`E6ir`>MDBqQOm z&b5~$VmE;x62{G`wA1DA=6ZW362dym(j?}156+jF)FR})M0&z$BFsd=wbRFuD-INE z+mIhG*3572l2t+~zlmHf_@Nz;$*Cz?zN@u#!XmD%T;F|Xm15_nEOW-RL_#JlbDG1* zGcB5&vah_e`})d>q)=+T%h_Y(vf8`W2L7UHP4U};x%ngub`(w*I14?-X#m#;&s#8L zuDoCph;ZQIsv0SGA`-+Qm)NZ*m2Il#xUZ>nWNcrYnj+HCnOVewRrVLU-dT*tH!U6< z9UWY}i66RhxM8r)jLC}IlUk8Japqm^cX6`kn5wltGG!k+GIMldA5!GM0B7pBVq{^v z4(v7*x9N!~9`nRiS#f>uop?`1XsROJ06BgGTLS%L5PIR4rEfX=plbaI71tr{YJfmeEKo)Vo1L!`FLx;TMeHS-TkJC@ok>sT#hX}(&Wb;@NoKHH35{Rx#=i!_$ zaUB9HgC>L~#Lq@!GuN;*LuKmn zYtV->!wvaOUEJmisEXnD$D{T2quFc=-km&~kWD)iVbg>&+-P5$QB64VSiHBPp)bY^ z6_4pPZE*VI7(JZWxe0c#L&R1_QCGx+rq`l09E-L?PQwW!>vcw3GzO2WWqO0LilRJ3 z6rZ=Fu_@QqT{^F;*rFSOK<}CaKQ$sU#+F#q7Yw>xEyb?$x=ZcZrp6ARS0N+D=8ook zer+z7g0lyQ5r{u2t%}E27F8V&%nFfIF1I$HZ|>M^%vSa=wsQ4Fu4f@W zygFVJJZ=TJ04!B*r@|0{Wnvx2-~@xOMaZ5)b0s5}tX;QnAFihs4t^oLVDJkkLatvc z-rKj99Q+feq)C66e;el#Zt%1L_;!~;-?~V;3iHCyg?R-}fH<%#MY$)BZ-mKgZ8))$7m+fo^%Txf`>a#U7qKWJ8q_(04G5;mSv+h#dZ0pSL)iXWxPj8K{?Sml z(pBv5FLqVJq0#c~-g+;+7y(<43=P>|8yb3~J(nNEQHXyqpKD(TS1!1q!mpn3@g9DW zA72Rd<#z5Ry&b?s&6lqzcNHt4a5z*cc9mCL(cHq=p+k(Fx%tp9&-uvQ8h>Cgmv3*& z=NAR=Ta?eYwdZq#0Y91AUK!uMeY~>W{>e(wbkEA;bsU_*|Bvhx?%e=_0$@hMUU7tE zZ;@MVT&I1{TFy?RPT$3O`YxeiPRkw*JZjoFrAhK`YR(6BeJAPRd)WSmi@0f0r#}GI zPbT-Haj{2^>ZoOD`~LtJeEvl>4SwwCd<%3v?$-tN1db>W?;R;SxN^pAR<5);rp!)( zqncUsr|5uRo7Ql;NgSn;Ys5S3?{idvru z;Bcu^4YC(}q5ODg$cnbKtVm_Er?(VZTk<&s<;PoF+(v6t zvXEKdj<%W4%&ce}Os6e>psnr7v9X&LRUeXPmfFxZdRPjNfX8?MN(DdnIS;t{JE2or zh{wvqyT4dkDQ)6(Mc^L8+0Ozee{W7XN#4oo9UE>0Wn+Q!>)0pq&^(rGUP|P02_n^H zv*fwsGHm6zj7Pk|pw|}&-O2CXVCbIeGd;vBj^q-x))Kjq6LM_ybzCKTI_M=5Z)9Hb zgx(G2@<{={W^hK6#CgMN=>yU^h!w>|f=a477Tjop%(5qQ zt!QaS+3F)zdB6`5P<2XeDG*%J($dw{QW(PL9>FDrLZ{wY$S)4SJvuLDEau%gGc%Rs^G6b* zlJm0D&BRAC!TS1D9qm1y81;GviiiOZ5vS}(v*@C;fG&cB1cO89#GVOyXLy4%p3uzH zBwrbQhYMnENS@s|laVNQ%$o*$cV!>g+Ob3V328azIm1k;m7fVYlLEh4OsXz+ZrM0~)#{Ys(m0< ziP<+Bh!^l1$*#=zyusE;q$B7(m}yTM0dN-b66wMCz9Wa>Cb2)kXYz?aeSP2)-e5_+f1$MXpMl{4^H4oGKlF1V0Ft6F+h+o&?b8Ykoo@5on2d6won16RwBx4ay6f(<3J zne}aL9UX0L>oeJ8Q#{s;Gb&eeEZ+3)C0k~=9B}NR8brU5jKx#@-Bdi5Y|3WVIjusG zYF_x2;)oTR-ok|MvF@ z$bRtTC5FbP(&){^iWfZ(~REo@UR?YRmr5~oXE7l)|0ISy_#olQCDrLo(Cq^~@Qa#myN$5N32-wq)SKHm*Ij z?On2DZ##Dl>lywTUg^wXK0_eXPLhfQ7+^)58|UNF9K9u2~Q?uWdm3G zEgJS;*|b5NqpP5|Nj6QV@%2O*Aj=f+;s2AZgFbSSi;i%%#joiaaHs~5>DoJoP5|KN;=23e z;L8ot3{*UvCBR!L99ZHr#M<|W;==&`eGY?W4*GQTbC76nj=N~Ve~=b){A9nX*+P#G zsU?TVMf}BaUU=cBF9RpN-H4n-WEH9+kh6M96%`=?(W3YmNQk0dF(}wXsC?uPE*&07 z(aS?Ld%J~ur?&(ToY-^xs2+_vFyBaJ5!nhsA$Al0HmSC~#8$>@TJ>Wk5x6Nd0j_Ne zml0Y@mmJhAg%XcP?qLE(xE_u@SdB}^9`zAcf_v^o;TfJuJte65Mec80D|=q$$6q-2 zLMR-5JZ)?5*px4%kozFt0q1gC%_9$-R`qY{AHWtE=(`Q&jjQpk646YR_~Ho2ghGzM z4Bo_8t?p@P8iAA{4+4rKWrW4ULyZ@CBndQl`=27M-~c$TQqM}ArQn-Z4~s`yvlsTf z;g9F)#`2*SgcVT4@4Y|ue%0sFOqK|@)vd_;ntcBr;5BkuU3aM78AGG?l!6W30E+GZKyi9qy=9HT20ES3zS1HCDctq`RO%^A$}oNe=7YJeRbmPdI&qw1%#nDf1s2ns-SGnXnF zwi(2~6NUxoXdWO(C$9!)m4)->*gVJ-Y;8wR1(os-2_24vAmjz`!h9A@m(yA*pSBR- zcNNnQ|DOJOu1vpk9}l^?8Xit8-V#dSXN01?3X3Ut5a87g5g#erk7tzGn=~HGYZzCH zyRPr5-XE>zU)gLoHy6p4VrqVF6a5^0Xzp$5w!`Fw>k+x5u&r2nbg0Q@5H47i4J%5} z%VB(O3RsaBBec{hqvxOu{P1x^BO|6+)6YT2RiK)4oxuSN$NsBx&bj`2@*6*xJ8=I6 zHbu{o5Yb>Yt5N=$IIQY)>Y>K^DB0pG_{f%MA~`ok&l!%|5Bhv$Yh)?jBPmIuKZI_A z_p+e~-a%AV4hjlM4M)jVpU-|UvNU~M8~nXV=@6Z!NywPve2ZjqE50S+7nySITlu$e zyAWUY1pN^#(vI6M>(Gw~YXmWc1$Dub z?ihNeSfS)2xpeN|(KN;)4gDmOyU`;&dq$9?Ip z9OED^9f!I1R4Uwl`*|eBekUm52)uFCDn$1p>UY(ujSJv=>>mjXw&{o@vs>Z$LD*t2 zPF{R(`E2CG9&t>L-VZ-^LZ8+C=?KR!$8#hQj|X_iQ#JI5onauSwhkhP*K=&s@%bOI zCs-^0x>RT%&RNVK`J$MzGAp-|vpfyIKsjQPJ0g_^++_;@H{7N3E?ZUo#J zXBH&uCQ6iL6^0=*vE51)R9`wkr}eD!y`cE0tOS@K#J$=g5e z`j!37d+#NuU3kTBzLq?6sQIsdgLd75_NM8Kq~gmZuM|YwS3+u(n&FFYmGH4TL4aFN zUgL+T6sZjIXO9nzY%zrMn)#Z!=aH8c$7wFh-A-@ z5i(^@k*OI#{D;c?c4%^B(mpgZGh)y1IsehIW%2!cI$9>xz88*bAzT|Hlla)?rmI7+ zXHGFl3=e~w5o4L+V_PspJ~qM=N%GElUpdFO z6pQ!7|8pbBQ#^;gQEQ1miQg)xCFg;|xJGfkfa`;}uBu*7$P#e@UWDsIxYD?0aP`Sk z(!IE^l8Mxh`?3Y~rto|bu3=nDaD5!tMqK>;1Gv6}3-zTDT)gf+T=!J3YjNk};AO{O zN#spduN!bLR%N%pOuxr}RlpOtG$;kn4*rXEy7kS_=J3w&Or#KbAvzI#Id)atAOCV9 zlQ=)|tGb)&zFz;WhGOHJOeS! Q0&8&by5MY>*0`HA9|*E=Xb(QnQV~qxag|$QT97US*cQ5oV)Dpo!ieoPf;rG;CVl#@T$W9 z+KEC%8SBD*j*_uYU9)rdWmlqX6WVX0l)j;^?V`QsqTZ@&QRi+-+m&&?`|K;x@9GHd z(=wgT9@%sD?(Hb+#d|kVx_7nt-~0AndKu>X^~3c9Afa-0hoWJO_wpBT{|V>Hey#K{ z6ZZ>$EFkYNk@?@SqP#XHCg&!VNr8l7iPP%iw7kk*0M+6d!L`V#R;{8E{*=>|Ve}tE zSvp|Mh#A+6XU0Dhok`5p%w%S=Gc7YCGov%_n;D#IGljm^!@&7pk-?P@d1jE;7F)pqM; zyTdapXV#$I)6nk4X!mBcJ0;uwJGA?w6Smv^T1B?Y=6>;;xs;L8Qar_yhm!x5d?)#z z$+wfgNxqc)QS$rA?f~5*Fli+0#DT<@ z6Za(s6RAWbMz~psJ2~+GPZ?7fFyUX&K3A0TBH7)MK2KgIl##io#XpKulul)hvO!U_ z#zL`!Ie&e<{pBI%{PlFl;`Pk=i$-+A$DBXWNLM`?p+~WvZmQki*Gml)M6n!aajv$X z(b6>5(9jhO;TP;`Xc%j1IitPfjAkk=1yLLfmZ-G(jE?n{%C3g``i5PV%K8QH123Kg!8MmMali~^p$?&s9pI-=_r zl+#2ne^O~s6q6Sk4LuS!8M0V+*<{H2dy6JRR%jG{`z`w|SJdTlF@U&40WiNTvEKrK z68@wE88O3tQ`R;N7O>wm45xMg55PjW@2z6mC;F-W*oN`3`FF?0 zH%NH)$0w>^eH*kZlq=`n5w{9csZq+x=*dSf8YL<8^-99%>6T;?jYy&iXBt5`v7Ssf zD5j9*%7)6=1vHNf#wr^&j8&XDRmL_{hL&xu!Efubp-N@hkOL1bd!PN1<@Z~xK)En6 zAJjd*joI|!H@8tM+lH1^oEF(Wzh(J+mgT1{N%Q(IakFq?O$L43^$Vs~8C@{dt9_Q+cQsA)YM4;g$|5%XR|daiL9Y{WC3wNVycGix!UdXxzU{EznbQLHK9OJl_%!r#16rgAb560 z$ty~p^%pu>K{r5nwD*^>aGVuc8K9pPv7B+h2KxcKE276g6<->*cgLBgYd+)mm;8nO z)5lnD+ov?9<{rzb9?c#PeEQMl>}RpT@P{H=+-{sRys9Sn2w!@K{bzTuGvEIq)M~w> z6>rR5`1lR&SPu@_92Q=F2$DRF)rjcX#sYW}SW&nNA4OFB8@tx5-nDD>nqBKYec^@o zL?V^W&c6Q6&e2GeuUfN9KD51CySlb^G&K(r*BNYX>Y#OBH23%7o1!A=dGO@xelmI% z!E7+o$CYgxH(ry&@0yJpw=IM>t{S_D$orzPRT~$=i&&kg9ADje_0VI-zu>&gKF(_G z#};Ay9|GNe6l-T;25pc5KvOUu1dcLVhG5_<(;bTjV|tc>AcNIC7X*=JW(s}$t-iwS zbG$hFtL{pro5#CHS*3gSSJAqI$-SsbHLsY$!ISD(-&wL;~5;v$vR9K};G{zvd3jICh{+MjAg#iaBppGQH(u-Y< zCH{sdZaqDn=#R#uTK>VX$8v!B;o4CAyki!LT( zy(r*@{+Y$xt!pYD4$J3Yb|D5ZY>P`Epp%&3`fChF=E-vp3Mc84GOd8*_$ zU0>vUuf}veZ2iXYVjyA5^ztlo=`WgYxA~&(Vp;ArtuTh+HGX4-b&YF#IcFa*G~MDD z07k$~9XG80qv#!DxLv3WB2OsOa|gw+NGpco#okxK!A!7|XX2S?PcXyc*}iE$X--@A z#$h%*Z7XbYd|adtP4nH>v`Gd0uJLi&t4iP8@5CEI1@~yh4$Aa(uvP~8DiH?+!NtQ^ zB~YVo2#5O0;Q>~n3T!R=16$sC5PuybsybC$=-?&W=qS`aI?}=3>2$8I4|I%ljEr>5 z9&kr2w!CF@V6?@4wbRskSfXPDn&!Qj%nY9c1tyhtWtmdJD2lP(BGVwm^Fyr9$FStx zg(AjMV)>W^jyx-A^A(GE@I1}O;-!3dSINuT8DF95+}^`>#OqURhu0k}+IQM_v0}*b zv5(IKM?JixS~tuh_Px<;+`c!$qS&u&k9>0v|0y>Fw|76_@jRe+1k5md^wE$z&~Df- zex8Lb01vp`&Xdox?-6V*aX;y0o+rI!&wo7kna?~Y_uA^Y?}~pG8zmMd$;Q~YnScZP^+vqqP0$dxPsj+aG7#LGrF6E=$FB2o`J!Cwg*sJm+s*d&R; zp14soki=6jZC95rPjyBDe)YVUcAgpL4dF9){d?4Ij9iwxKRo68`!Ut;PAB#lJJ`PE_owZB?2b+4eGU6!A2t$Rs1K|rB4ocy12&mf71LaF5ea?(D@VKB${8Ni!k`l)TXAZRm()%i3(Vw)siGz_;;w&*&f4UF9@Og z)GaF4=)&2rg{t|~dz|~bIX{Q<2UMS?tCWLENvHX;cup*XF1JkCf))8=DrxCtmRz=U zGIcl0AG$v3_s6dHN2C7hV}5^BLJw~npVx!N9X%+Ul{yhjj*HR_4e5)<#>U4GXRjNbP7Pd+a>(F1)dt)0Hwzm;&H;^=&gglr8U0O;MzL#EQ zP&r$HKP6u@vT>svFP5_lAdRFH>FJJoE)A0fT9Vcih5hGeeWZg{H@np7VI?l3z34DV zQtx9?adcbkl5n`EIo#D5Zth+Hv0Vp9`Fn&PB#q< zH2tHlYhG>J2ZRnqL+E;{Y2cP4@4npKonDm9E=vEh$GP_OL$xQH#>e)p={wSL*FCL5 zw0(MZn%ZOsn+BdX+(M{}7I7#F!fiZ_{wC&Mg%rJT?t9`(BB?ydu4Z?$2SGu-(lg*l zn1Zv5WeJRCA9lBn9b4*>CD^(xWcttsmyaCvuL!|9zvY26=c$v|F^FY{t;u|0J>qWI z^9!E#fW1hOM2`+Xm6~I@-x-s%H=U=DTuYe&pT+!u9D4?~v+SihVngpgJfK!mC+EE& z^P@hh-6Kys*dT*`T^$H4^P}oHqpl7U1A!7mV_z_v>Zq$F&JZxP!_$SZjpt7yrNI>) zn+O%fmx4au3XSwlm*8AefpBhFO}bHIn#(*cSIPx$D0tlCEqOgr&fJ`vF_+8j_7uFn z8q?L_aie}xH=rYe+}u8Ix6c=hgu@-CWeWO%Mb??7?lS8wtKR2rbGZVlX1ZJk8s;Jv z2qa?Bs1O$8@HV(D)1w>h9#5UylkoaLyiMSo+{J~d8-sy>Kd%e1+~lNHWhuV-324h~v11p{z~+O-iwXQtp@A297nc|2{p?$Wd(p;T?e@@XU@ z!vX(N!699>G1COe7(#F%It7QV1?(HD=*7!!H?zzrEEd>NnzlrJ?Rd;PD`J20>{FaI zfNBi>H8l4%_%&BZU(Ttd8=ut2b~5oMU^z(cbXW~0mJkLflbarDvBM%@$I?bWx;9K+ zknPru%y=wKwO{-S#CaJi4^{P!+YOIzC zLywT{ErKe%D))N5nx<2B+zcZ~^p9Uc$4 zd>963AQ842EQncnFok#)DoX^m7tT5IeMT_bmx*SB*(ma8Pap1}0cZNiBTWCGs)}dx zuiN*$mScbYfghjAzC8OEEMxy0`-K0R$FJX--20KozMK{8m!qS0L-u3Y?8kU9o3$@p zRXaSjdjnvge*t5v(CNMq0o~3;2?4)#}P(FJel*~yLoNyL7oBAtygR*a{;;*POGJn11 za%uHC=!7W^1j}qvmdIy`x-ff?-n6%c>(~!rY;FTTW9&g_#5JM8a4HoZ4Ary?F~}hQ z2Zw7yZYp!544Vyn>R(-&{TphT1t~u<4FCD2x&IVXVmUM{>@eLZN;|PwmO2q3Qz}+b z4Jv_zXb-`-cKo6AT=3#Z><`5M--)egTE2Db@{z5~{_p5On&8ahD8s0?j?fM3Zmj!| z6?1zN?rZCFsJLazh-zvdjwI-LGIpcp)@1`*;1Bqaa<#aD->3wX1b9Fz=z}yET3cEY z>2nThCAidC23s^3CxfATcnw;C?aTlJM zuAR0&{3M2<>{o`xRs3}LDHQ2og>p&f4jQ_LO*gOT5URSRW`RQd;S@q#X{Aj2v|k~& zES&!^9P=?IAVqaDbm;bJlb>!f%U(PKkzHfXQU&^P`p4P7nKiU`nDQ-UNR;{CC@^lT z=NpE}7My=LO07v)!8mXL!gxDav1z3&`}g)A&@@J1*uS?-&7bpg1HeRW`yKloTu3f4m;E+LCp5*tKbW$7ZdyDkhLsX-pmya2s09-SISJ5;boYs> zuMc{Wvr5Ev1^8_dZ+cDptt-`lY5CQw?YB%H7pnd&oQ^Ide04Ji)&|HE-0G(9m;1fY6`~VK__c^{{QVJ0L>cj zg0ObRgU{3Z$liSZd3G=!w8!Y4eKi=j)9kDE7`p>ypO$4iQMQlmv_H)sjR$8Zsf;6^ zJ%dlqPGXM=EbC|Kw^XXiSvtpA_t$6lV*wMZ1Ib2jcO7{cXzs;d06^55Q{{ zArd&1ruxifR4B7B-8+S{lB`}WM0NJ(;U!DXUX0(V@UsR!OYM9%5Vx<12Yy9uASpvH7j*u7KJjH5D|Q5_-#8w`2;*QJG!r-t<>iF&31RZ- z;8n=p1_s$1={idGIwn1kG62U9%zCbD#iU7f$E3F|gb{VLlY$m@j*hNd0N;Y?zP1CI zWnOn8QLR|a96r7^r)4pGTzl2F?cbZ`>lXlz5U@8Kk1Zz9qqF`;@HBGr^`{U6_*2Py z>ReA4Xb^u_44i3JW&f@Fr8WS|bpL*-E8MzY>MHy9i+7#r>{l>gvMBc73avoHtZvy) zNVE3eDx0`vKk>pNb15s^{`55$q{_&3m%2^^&6jivsrJq5I-Q8ASh&6m;RWlvaIG8n zTcjFc$fWh$ax0cch3~_y?VrbpdE2{U;3R8({VhcN=B+>laB?e=6rt*t+p7xHZM4si z;D*i*PDb%3SY1irMEC%pmb~lC7fm^eo@w2Bi$$vC{hSPTBRYj>X!miv<_X`H%XyB6SPkrAuEbhn_S3Z;k;rIAXJ6Brv>O&&%AFXf zUw3hR9b4*&;H=og1|x-w*X35!+$2f%=G>WGeVrYnkw|yS{s**>jzrmt+`8pXVIpq8 z7o)j?p^Mjb4CL*n-EPavhNGh$>n=_uZURB1teZ1gr^}%&wf1x@f^}Av3C!^xoG%Nd zS;~8b^+dBwnu(HYXOAIQ94O9jLpolZH^0dxt3`CW$Wjvg&<@zd?oWr5DPuZX#m#;l`R-DDKD4=A{voH(8D*JQO?C44+H!oQ{GO~EdW;%2wxNdQcH=$~7PiAHI_?dUM-9=|wR1D8T}Yp-u8w04)y?d)nctzfWsZHi8fn2NEb*7k)$ zZdY?x=egabwtPcx!3AKclAQ`e1eQto7zQU9{CtG$Nimk1O>s2q`l$@$=)uq+DNB;&sxq-tH#_#JbjncFsD?H0UkAFozx_G zH#O&jrn!^#&>pt`=|VD1YRm_q`l;-GG%okZ5goOxZ2uqNg67|)XTgshoo|7zM}A#U zPw=n;@!pZLgOoF}SxISgOqrb$NAqUQpP~bPWy-+mCUcZZ(ujB1-z8MBo(l*^gdwJ^ zgr4-2h~NZ+e8PV6gUWNIdHLiB9FjWKAbZJ2sz*;!hE-)BoV9r5RHuU}CssRks%h7;f*%(rM|QNI2fy zyfTx|pW58i(p)ScC_mZK?6z7O(oMMyZD?Egy}6b3i?i8qAlTY^#pviwi>f#2(@U*r z8$B$8N5Eq}0HuP?ea;20{z2-LVZ>t<;oV=NtWq`;T`{=FaQ3sn$=_ShPEdBDdPj#F zLD^W~{5txMJv4_Un^RJSLW(Ih`8<2>m;zfnrr;4@DCF}8BX`o(7mD0dz2^t1;&34~ z-&(3Ld|Zi*zK*G6PlbF;p+@EuPvqTTl201&HH|ZxG|n5=C?8PHLaZRpLP)CtOM&J@ zpKrwC^J-8m4l1eYSa73BGRvRHwPIu)Wvh=>I?q`W5X>O+&G$#l3#v32}E_?WW$|#k%v1O;RxlnEG>h`uCPlEeA16_y#k1*%i;bzfA zM-#dTF%}99q7!>MNDQPnZ*9R-|JS zGQ6tVKk;eO@};dpvDXk{(n;;uEOq2;I80eSHevWQ69E%f)tr)GS6Kp=adcvX1lx~={F4i9o+ut#2EwsSeRn>k$ z<@RvMcXzNh8Mzy6G_o$5kbS@~KiD-m*!4jit+YEOIRuS^B$O4H=d|!DEp#U2ObYyF z39Gu;$+B_$s?|eJNhk&JWqW_3lCW>K5HAq0(w({Q_(CnQSbNBKAlH_*g5WIdCDw!S zeM^nPO=5qNX7b5kZEf(AzEFFC?MCo2;dvPT%4zs32b4323ofM4s+L~WHmb~Uo)Z$o zJN(sAQDjMHAhrBh%ga$G#9%s~+tAwD-rm}}A(u}#BomD|qjEJSk`3?vWa~7^0mmMi zhxpghiDZV}%_I})hJ0?l(<&6nhIfBrKXP;{UfHsvFF5lr<0Ko_WL00N^7X2Fv$`{@ zHh&cnRcB`vNkZB~w5J^6*?%eSvR0v$X7wuast znj8d*rHlLfZ(F~PM1^{hp4zX4sJB#r~yk@tf~PhU@n$w)YauPlIK`W9fchC8g|&QwASv<4(SzY zY%1iS2)T_O&8v3R#baqi7rD}jc)cfz=o|!vS@0(H4U~J#hzISU0X}TF;s1?hU9GJ> zU7n;5pJu_f4AyySV$piTg|ark>NX~Q`EVrdNu?6&8hjxH3QhR)VG(QcPb6G*52?ba zHFKwRbZyDeK!nwP>C%AqRnFb4o;s>-{v#p1@cwvLXr_DzLi zqbF{~&&Tl}eY>+X_{FVsaW5_oJZXD#~Z*xEZ5`I8>pVwChn5eF#u>r98PvI3K(s5a!Xq6%8BZIl2ydn-Eic3SUpu!1^o0{@X}&=U6dB zevuf?Go@wY6dFg}IV?3=k{qiq>PU+d-myupNClg6?zQF3f+DYk5B;Bf4fK%{BtA@R zi_+9QaBv=AQ}gc}JPv@Li*)zL!I$flX{dNOOMtghIkQ7C|a!{~|Q2Fp5Tsjm;(Mutkz1`Bi(_4ZEPVPB6sz;*^OdF{zBU>RT(sD7*@12?56K-#u+8KI?Y$wAFBDDk)@4-+s#dN}rAH7*@{)Xzi-?ztDG zXLvgEl%(bt$=|q6^}I^QUpV(dC>(y2x3;x!E;eOQ`XKFqbI4Znr~{`|{hQ_oumuMC zZo~8XHTYJE8D5?FlL*L!LXN-;YGQQ0?kQ**fs_#s0*Yg0gvG-{jTb4B1RA{kFR>PI z03288XJpRM@J*{nBx5c43wquNBnvg8#Yi*43OM5T-k*8D?spkpk&3p~tStH){QnW8 z8U>@KJ5uWlsj9);M#Ri*sEvgAnA82KrddgqLUq0%9^1de0O0x>2 zkn8=a%u|?@W&Hrm2XkGgsiK)epb?vaKqh2_A+!>VMl*mObWU5&A@l$*_@R{#n83<@ zs#u>zOd~^l5M%yyh-{Tma~N~xzzZT$PC8L)eKfXa-vl zC2<+}&aKMFobR<{PynKvNvaswW)S~Q7#5%-Wq=%=yc(QUmd=}_%OF#*wH-YbR7xKb zIvfc>$P3_wT&u^99DHU^H6O z&l-x`5BmLVTWlHLV;M!^--m93_wtb#-a%AV0SXGs48_?tzu$f^wk&&08}#0Ua*$8) zG-S*%zC|{%4d0SbVw28w8+{A63-M)7@E^c3UZIT7fA;{6?C`w9HlJj1#5kjX=nAhl zJCUWAb=-D&hkj&OBZw&~sSBQT$Iv@k%4Nk9cQ%z+II^Oxy{D(GeMLAD39o=fmKm(M zlcJ1ufsbiyJrF48^9ZEQmno1MaC3`@>tdTjxzTo-@$X z-aZn>Z=@alNI2-{)8H1&2-S{}&fS{A^6>$a#J%l+a!@Gl+&UV9L*jy<-} zS2c>Lr1KD?awGJ-KiL<3%$M%kQ4ZqLF_?Q#Po>-MYKp|T+6hWH3~yS!8qvLo`dz(x z(*pP&`v($(ttKML>=t-_5VjafvKQZ5xfnjaM;w!*_d|~z*JrhVK1}!}Jja5`WRNwe&M#;>=*v651)QU z`wkvx`tomg?R@L6^X#=wR>uar`+G{P6(qTpk7h5)yoqCtnKYECO_QC1tVSAe9{71)@$M^5q zc$roEUO29W@cbBsLSvhqst&=PKFJ_4JPdAHj%AX@wqS@fHb$AE_-1{toaJBow&GUh z{g3J|ejfqO6IypdnTr-UL#)p~VAy-_`+eMvj04;hxR z-_>I6cMrR-^$dCTdw%3ic_+M&``UbG`d;@Z{HF&zfh&Wa;3Xj?bY|!$;Zwt3k8FwV zj84azVlTwU<1Z(!Oa_u)OyyGNrG8m+Q_WXvzfsp!|7OEi8@}K0X4;j0G;>MjiOfu6 zZ{v*^7173O_7Lcoe)B6YZ>pJ3dAz#rOrh=VP!k6{QH2HI{wk~jzPt)+Xf;}eb(F8E z!WMSzeg*&ck7}aChbIoq0q>~70`OoJRsmmIh3S7yN>^bW<>OV@LX7>xyUyLad+**o z5b@_Kd*R64i+_7g-+sxZyY}u$mpZ!e|1NFEHxQSi0v@2961Ya!3Ew(l;rR9)mtS=D zCFpcJ26{Qdaq&sT32Tn--E&!b$M!wjFFE_N?dPS>xhlQt+`Vftwhnv=OnqO5-glsx iJ#s{6<9@qx9?H(a*EnhT>uCaOk*F>>8)kXZ-~R<1(5%q_ literal 0 HcmV?d00001 diff --git a/src/main/resources/static/js/layui-v2.9.6/layui.js b/src/main/resources/static/js/layui-v2.9.6/layui.js index 36219d2..a1f6c1d 100644 --- a/src/main/resources/static/js/layui-v2.9.6/layui.js +++ b/src/main/resources/static/js/layui-v2.9.6/layui.js @@ -1 +1,7718 @@ -/** v2.9.6 | MIT Licensed */;!function(d){"use strict";var t,h=d.document,m={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.9.6"},e=d.LAYUI_GLOBAL||{},v=(t=h.currentScript?h.currentScript.src:function(){for(var t,e=h.scripts,o=e.length-1,n=o;01e3*m.timeout/4?g(s+" is not a valid module","error"):void(m.status[s]?y():setTimeout(n,4))}())}function y(){e.push(layui[s]),11e3*m.timeout/4?g(s+" is not a valid module","error"):void("string"==typeof m.modules[s]&&m.status[s]?y():setTimeout(f,4))}():((r=h.createElement("script"))["async"]=!0,r.charset="utf-8",r.src=i+((u=!0===m.version?m.v||(new Date).getTime():m.version||"")?"?v="+u:""),l.appendChild(r),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||b?r.addEventListener("load",function(t){p(t,i)},!1):r.attachEvent("onreadystatechange",function(t){p(t,i)}),m.modules[s]=i)),a},n.prototype.disuse=function(t){var o=this;return t=o.isArray(t)?t:[t],o.each(t,function(t,e){m.status[e],delete o[e],delete N[e],delete o.modules[e],delete m.status[e],delete m.modules[e]}),o},n.prototype.getStyle=function(t,e){t=t.currentStyle||d.getComputedStyle(t,null);return t[t.getPropertyValue?"getPropertyValue":"getAttribute"](e)},n.prototype.link=function(o,n,t){var r=this,e=h.getElementsByTagName("head")[0],i=h.createElement("link"),a="layuicss-"+((t="string"==typeof n?n:t)||o).replace(/\.|\//g,""),u="creating",l=0;return i.href=o+(m.debug?"?v="+(new Date).getTime():""),i.rel="stylesheet",i.id=a,i.media="all",h.getElementById(a)||e.appendChild(i),"function"==typeof n&&function s(t){var e=h.getElementById(a);return++l>1e3*m.timeout/100?g(o+" timeout"):void(1989===parseInt(r.getStyle(e,"width"))?(t===u&&e.removeAttribute("lay-status"),e.getAttribute("lay-status")===u?setTimeout(s,100):n()):(e.setAttribute("lay-status",u),setTimeout(function(){s(u)},100)))}(),r},n.prototype.addcss=function(t,e,o){return layui.link(m.dir+"css/"+t,e,o)},m.callback={},n.prototype.factory=function(t){if(layui[t])return"function"==typeof m.callback[t]?m.callback[t]:null},n.prototype.img=function(t,e,o){var n=new Image;if(n.src=t,n.complete)return e(n);n.onload=function(){n.onload=null,"function"==typeof e&&e(n)},n.onerror=function(t){n.onerror=null,"function"==typeof o&&o(t)}},n.prototype.config=function(t){for(var e in t=t||{})m[e]=t[e];return this},n.prototype.modules=function(){var t,e={};for(t in N)e[t]=N[t];return e}(),n.prototype.extend=function(t){for(var e in t=t||{})this[e]||this.modules[e]?g(e+" Module already exists","error"):this.modules[e]=t[e];return this},n.prototype.router=n.prototype.hash=function(t){var o={path:[],search:{},hash:((t=t||location.hash).match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(t)&&(t=t.replace(/^#\//,""),o.href="/"+t,t=t.replace(/([^#])(#.*$)/,"$1").split("/")||[],this.each(t,function(t,e){/^\w+=/.test(e)?(e=e.split("="),o.search[e[0]]=e[1]):o.path.push(e)})),o},n.prototype.url=function(t){var r,e,o=this;return{pathname:(t?((t.match(/\.[^.]+?\/.+/)||[])[0]||"").replace(/^[^\/]+/,"").replace(/\?.+/,""):location.pathname).replace(/^\//,"").split("/"),search:(r={},e=(t?((t.match(/\?.+/)||[])[0]||"").replace(/\#.+/,""):location.search).replace(/^\?+/,"").split("&"),o.each(e,function(t,e){var o=e.indexOf("="),n=o<0?e.substr(0,e.length):0!==o&&e.substr(0,o);n&&(r[n]=0(l.innerHeight||h.documentElement.clientHeight)},d.getStyleRules=function(t,n){if(t)return t=(t=t.sheet||t.styleSheet||{}).cssRules||t.rules,"function"==typeof n&&layui.each(t,function(t,e){if(n(e,t))return!0}),t},d.style=function(t){t=t||{};var e=d.elem("style"),n=t.text||"",i=t.target;if(n)return"styleSheet"in e?(e.setAttribute("type","text/css"),e.styleSheet.cssText=n):e.innerHTML=n,e.id="LAY-STYLE-"+(t.id||(n=d.style.index||0,d.style.index++,"DF-"+n)),i&&((t=d(i).find("#"+e.id))[0]&&t.remove(),d(i).append(e)),e},d.position=function(t,e,n){var i,o,r,c,u,a,s,f;e&&(n=n||{},t!==h&&t!==d("body")[0]||(n.clickType="right"),i="right"===n.clickType?{left:(i=n.e||l.event||{}).clientX,top:i.clientY,right:i.clientX,bottom:i.clientY}:t.getBoundingClientRect(),s=e.offsetWidth,f=e.offsetHeight,o=function(t){return h.body[t=t?"scrollLeft":"scrollTop"]|h.documentElement[t]},r=function(t){return h.documentElement[t?"clientWidth":"clientHeight"]},c="margin"in n?n.margin:5,u=i.left,a=i.bottom,"center"===n.align?u-=(s-t.offsetWidth)/2:"right"===n.align&&(u=u-s+t.offsetWidth),(u=u+s+c>r("width")?r("width")-s-c:u)r()&&(i.top>f+c&&i.top<=r()?a=i.top-f-2*c:n.allowBottomOut||(a=r()-f-2*c)<0&&(a=0)),(s=n.position)&&(e.style.position=s),e.style.left=u+("fixed"===s?0:o(1))+"px",e.style.top=a+("fixed"===s?0:o())+"px",d.hasScrollbar()||(f=e.getBoundingClientRect(),!n.SYSTEM_RELOAD&&f.bottom+c>r()&&(n.SYSTEM_RELOAD=!0,setTimeout(function(){d.position(t,e,n)},50))))},d.options=function(t,e){if(e="object"==typeof e?e:{attr:e},t===h)return{};var t=d(t),n=e.attr||"lay-options",t=t.attr(n);try{return new Function("return "+(t||"{}"))()}catch(i){return layui.hint().error(e.errorText||[n+'="'+t+'"',"\n parseerror: "+i].join("\n"),"error"),{}}},d.isTopElem=function(n){var t=[h,d("body")[0]],i=!1;return d.each(t,function(t,e){if(e===n)return i=!0}),i},d.clipboard={writeText:function(n){var i=String(n.text);function t(){var t=h.createElement("textarea");t.value=i,t.style.position="fixed",t.style.opacity="0",t.style.top="0px",t.style.left="0px",h.body.appendChild(t),t.select();try{h.execCommand("copy"),"function"==typeof n.done&&n.done()}catch(e){"function"==typeof n.error&&n.error(e)}finally{t.remove?t.remove():h.body.removeChild(t)}}navigator&&"clipboard"in navigator?navigator.clipboard.writeText(i).then(n.done,function(){t()}):t()}},d.passiveSupported=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});l.addEventListener("test",null,e),l.removeEventListener("test",null,e)}catch(n){}return t}(),d.touchEventsSupported=function(){return"ontouchstart"in l},d.touchSwipe=function(t,e){var n,i,o,r=e,c=d(t)[0];c&&d.touchEventsSupported()&&(n={pointerStart:{x:0,y:0},pointerEnd:{x:0,y:0},distanceX:0,distanceY:0,direction:"none",timeStart:null},e=function(t){1===t.touches.length&&(c.addEventListener("touchmove",i,!!d.passiveSupported&&{passive:!1}),c.addEventListener("touchend",o),c.addEventListener("touchcancel",o),n.timeStart=Date.now(),n.pointerStart.x=n.pointerEnd.x=t.touches[0].clientX,n.pointerStart.y=n.pointerEnd.y=t.touches[0].clientY,n.distanceX=n.distanceY=0,n.direction="none",r.onTouchStart)&&r.onTouchStart(t,n)},i=function(t){t.preventDefault(),n.pointerEnd.x=t.touches[0].clientX,n.pointerEnd.y=t.touches[0].clientY,n.distanceX=n.pointerStart.x-n.pointerEnd.x,n.distanceY=n.pointerStart.y-n.pointerEnd.y,Math.abs(n.distanceX)>Math.abs(n.distanceY)?n.direction=0]|&(?=#[a-zA-Z0-9]+)/g.test(e+="")?e.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,"""):e}},i=function(e){return new RegExp(e,"g")},u=function(e,r){var n="Laytpl Error: ";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e},n=function(e,r){var n=this,e=(n.config=n.config||{},n.template=e,function(e){for(var r in e)n.config[r]=e[r]});e(c),e(r)},r=(n.prototype.tagExp=function(e,r,n){var c=this.config;return i((r||"")+c.open+["#([\\s\\S])+?","([^{#}])*?"][e||0]+c.close+(n||""))},n.prototype.parse=function(e,r){var n=this,c=n.config,t=e,o=i("^"+c.open+"#",""),p=i(c.close+"$","");if("string"!=typeof e)return e;e='"use strict";var view = "'+(e=e.replace(/\s+|\r|\t|\n/g," ").replace(i(c.open+"#"),c.open+"# ").replace(i(c.close+"}"),"} "+c.close).replace(/\\/g,"\\\\").replace(i(c.open+"!(.+?)!"+c.close),function(e){return e=e.replace(i("^"+c.open+"!"),"").replace(i("!"+c.close),"").replace(i(c.open+"|"+c.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(n.tagExp(),function(e){return'";'+(e=e.replace(o,"").replace(p,"")).replace(/\\(.)/g,"$1")+';view+="'}).replace(n.tagExp(1),function(e){var r='"+laytpl.escape(';return e.replace(/\s/g,"")===c.open+c.close?"":(e=e.replace(i(c.open+"|"+c.close),""),/^=/.test(e)?e=e.replace(/^=/,""):/^-/.test(e)&&(e=e.replace(/^-/,""),r='"+('),r+e.replace(/\\(.)/g,"$1")+')+"')}))+'";return view;';try{return n.cache=e=new Function("d, laytpl",e),e(r,l)}catch(a){return delete n.cache,u(a,t)}},n.prototype.render=function(e,r){e=e||{};var n=this,e=n.cache?n.cache(e,l):n.parse(n.template,e);return"function"==typeof r&&r(e),e},function(e,r){return new n(e,r)});r.config=function(e){for(var r in e=e||{})c[r]=e[r]},r.v="2.0.0",e("laytpl",r)});layui.define(function(e){"use strict";var r=document,u="getElementById",c="getElementsByTagName",a="layui-disabled",t=function(e){var a=this;a.config=e||{},a.config.index=++o.index,a.render(!0)},o=(t.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return e.elem.length===undefined?2:3},t.prototype.view=function(){var i,e,t,n=this.config,r=n.groups="groups"in n?Number(n.groups)||0:5,u=(n.layout="object"==typeof n.layout?n.layout:["prev","page","next"],n.count=Number(n.count)||0,n.curr=Number(n.curr)||1,n.limits="object"==typeof n.limits?n.limits:[10,20,30,40,50],n.limit=Number(n.limit)||10,n.pages=Math.ceil(n.count/n.limit)||1,n.curr>n.pages?n.curr=n.pages:n.curr<1&&(n.curr=1),r<0?r=1:r>n.pages&&(r=n.pages),n.prev="prev"in n?n.prev:"上一页",n.next="next"in n?n.next:"下一页",n.pages>r?Math.ceil((n.curr+(1'+n.prev+"":"",page:function(){var e=[];if(n.count<1)return"";1'+(n.first||1)+"");var a=Math.floor((r-1)/2),t=1n.pages?n.pages:a:r;for(i-t…');t<=i;t++)t===n.curr?e.push('"+t+""):e.push(''+t+"");return n.pages>r&&n.pages>i&&!1!==n.last&&(i+1…'),0!==r)&&e.push(''+(n.last||n.pages)+""),e.join("")}(),next:n.next?''+n.next+"":"",count:''+(e="object"==typeof n.countText?n.countText:["\u5171 "," \u6761"])[0]+n.count+e[1]+"",limit:(i=['"),refresh:['','',""].join(""),skip:[''+(e="object"==typeof n.skipText?n.skipText:["到第","页","确定"])[0],'',e[1]+'",""].join("")};return['
',(t=[],layui.each(n.layout,function(e,a){l[a]&&t.push(l[a])}),t.join("")),"
"].join("")},t.prototype.jump=function(e,a){if(e){var t=this,i=t.config,n=e.children,r=e[c]("button")[0],u=e[c]("input")[0],e=e[c]("select")[0],l=function(){var e=Number(u.value.replace(/\s|\D/g,""));e&&(i.curr=e,t.render())};if(a)return l();for(var s=0,p=n.length;si.pages||(i.curr=e,t.render())});e&&o.on(e,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),r&&o.on(r,"click",function(){l()})}},t.prototype.skip=function(t){var i,e;t&&(i=this,e=t[c]("input")[0])&&o.on(e,"keyup",function(e){var a=this.value,e=e.keyCode;/^(37|38|39|40)$/.test(e)||(/\D/.test(a)&&(this.value=a.replace(/\D/,"")),13===e&&i.jump(t,!0))})},t.prototype.render=function(e){var a=this,t=a.config,i=a.type(),n=a.view(),i=(2===i?t.elem&&(t.elem.innerHTML=n):3===i?t.elem.html(n):r[u](t.elem)&&(r[u](t.elem).innerHTML=n),t.jump&&t.jump(t,e),r[u]("layui-laypage-"+t.index));a.jump(i),t.hash&&!e&&(location.hash="!"+t.hash+"="+t.curr),a.skip(i)},{render:function(e){return new t(e).index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(a,e,t){return a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1),this}});e("laypage",o)});!function(i,v){"use strict";var n=i.layui&&layui.define,l={getPath:i.lay&&lay.getPath?lay.getPath:"",link:function(e,t,a){D.path&&i.lay&&lay.layui&&lay.layui.link(D.path+e,t,a)}},e=i.LAYUI_GLOBAL||{},a="laydate",d="layui-"+a+"-id",D={v:"5.5.0",config:{weekStart:0},index:i.laydate&&i.laydate.v?1e5:0,path:e.laydate_dir||l.getPath,set:function(e){var t=this;return t.config=lay.extend({},t.config,e),t},ready:function(e){var t="laydate",a=(n?"modules/":"")+"laydate.css?v="+D.v;return n?layui["layui.all"]?"function"==typeof e&&e():layui.addcss(a,e,t):l.link(a,e,t),this}},s=function(){var t=this,e=t.config.id;return(s.that[e]=t).inst={hint:function(e){t.hint.call(t,e)},reload:function(e){t.reload.call(t,e)},config:t.config}},x="layui-this",k="laydate-disabled",h=[100,2e5],T="layui-laydate-static",w="layui-laydate-list",o="laydate-selected",r="layui-laydate-hint",y="laydate-day-prev",m="laydate-day-next",C=".laydate-btns-confirm",M="laydate-time-text",L="laydate-btns-time",E="layui-laydate-preview",S="layui-laydate-shade",I=function(e){var t,a=this,n=(a.index=++D.index,a.config=lay.extend({},a.config,D.config,e),lay(e.elem||a.config.elem));return 1\u8bf7\u91cd\u65b0\u9009\u62e9",invalidDate:"\u4e0d\u5728\u6709\u6548\u65e5\u671f\u6216\u65f6\u95f4\u8303\u56f4\u5185",formatError:["\u65e5\u671f\u683c\u5f0f\u4e0d\u5408\u6cd5
\u5fc5\u987b\u9075\u5faa\u4e0b\u8ff0\u683c\u5f0f\uff1a
","
\u5df2\u4e3a\u4f60\u91cd\u7f6e"],preview:"\u5f53\u524d\u9009\u4e2d\u7684\u7ed3\u679c"},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"},timeout:"End time cannot be less than start Time
Please re-select",invalidDate:"Invalid date",formatError:["The date format error
Must be followed\uff1a
","
It has been reset"],preview:"The selected result"}};return e[this.config.lang]||e.cn},I.prototype.reload=function(e){this.config=lay.extend({},this.config,e),this.init()},I.prototype.init=function(){var r=this,o=r.config,e="static"===o.position,t={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};o.elem=lay(o.elem),o.eventElem=lay(o.eventElem),o.elem[0]&&("array"!==layui.type(o.theme)&&(o.theme=[o.theme]),o.fullPanel&&("datetime"!==o.type||o.range)&&delete o.fullPanel,r.rangeStr=o.range?"string"==typeof o.range?o.range:"-":"",r.rangeLinked=!(!o.range||!o.rangeLinked||"date"!==o.type&&"datetime"!==o.type),r.autoCalendarModel=function(){var e=r.rangeLinked;return r.rangeLinked=o.range&&("date"===o.type||"datetime"===o.type)&&(!r.startDate||!r.endDate||r.startDate&&r.endDate&&r.startDate.year===r.endDate.year&&r.startDate.month===r.endDate.month),lay(r.elem)[r.rangeLinked?"addClass":"removeClass"]("layui-laydate-linkage"),r.rangeLinked!=e},r.autoCalendarModel.auto=r.rangeLinked&&"auto"===o.rangeLinked,"array"===layui.type(o.range)&&(r.rangeElem=[lay(o.range[0]),lay(o.range[1])]),t[o.type]||(i.console&&console.error&&console.error("laydate type error:'"+o.type+"' is not supported"),o.type="date"),o.format===t.date&&(o.format=t[o.type]||t.date),r.format=s.formatArr(o.format),o.weekStart&&!/^[0-6]$/.test(o.weekStart)&&(t=r.lang(),o.weekStart=t.weeks.indexOf(o.weekStart),-1===o.weekStart)&&(o.weekStart=0),r.EXP_IF="",r.EXP_SPLIT="",lay.each(r.format,function(e,t){e=new RegExp(c).test(t)?"\\d{"+(new RegExp(c).test(r.format[0===e?e+1:e-1]||"")?/^yyyy|y$/.test(t)?4:t.length:/^yyyy$/.test(t)?"1,4":/^y$/.test(t)?"1,308":"1,2")+"}":"\\"+t;r.EXP_IF=r.EXP_IF+e,r.EXP_SPLIT=r.EXP_SPLIT+"("+e+")"}),r.EXP_IF_ONE=new RegExp("^"+r.EXP_IF+"$"),r.EXP_IF=new RegExp("^"+(o.range?r.EXP_IF+"\\s\\"+r.rangeStr+"\\s"+r.EXP_IF:r.EXP_IF)+"$"),r.EXP_SPLIT=new RegExp("^"+r.EXP_SPLIT+"$",""),r.isInput(o.elem[0])||"focus"===o.trigger&&(o.trigger="click"),o.elem.attr("lay-key",r.index),o.eventElem.attr("lay-key",r.index),o.elem.attr(d,o.id),o.mark=lay.extend({},o.calendar&&"cn"===o.lang?{"0-1-1":"\u5143\u65e6","0-2-14":"\u60c5\u4eba","0-3-8":"\u5987\u5973","0-3-12":"\u690d\u6811","0-4-1":"\u611a\u4eba","0-5-1":"\u52b3\u52a8","0-5-4":"\u9752\u5e74","0-6-1":"\u513f\u7ae5","0-9-10":"\u6559\u5e08","0-10-1":"\u56fd\u5e86","0-12-25":"\u5723\u8bde"}:{},o.mark),lay.each(["min","max"],function(e,t){var a=[],n=[];if("number"==typeof o[t])var i=o[t],l=new Date,l=r.newDate({year:l.getFullYear(),month:l.getMonth(),date:l.getDate(),hours:e?23:0,minutes:e?59:0,seconds:e?59:0}).getTime(),e=new Date(i?i<864e5?l+864e5*i:i:l),a=[e.getFullYear(),e.getMonth()+1,e.getDate()],n=[e.getHours(),e.getMinutes(),e.getSeconds()];else if("string"==typeof o[t])a=(o[t].match(/\d+-\d+-\d+/)||[""])[0].split("-"),n=(o[t].match(/\d+:\d+:\d+/)||[""])[0].split(":");else if("object"==typeof o[t])return o[t];o[t]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|n[0],minutes:0|n[1],seconds:0|n[2]}}),r.elemID="layui-laydate"+o.elem.attr("lay-key"),(o.show||e)&&r.render(),e||r.events(),o.value)&&o.isInitValue&&("date"===layui.type(o.value)?r.setValue(r.parse(0,r.systemDate(o.value))):r.setValue(o.value))},I.prototype.render=function(){var a,n,i,l,r=this,o=r.config,d=r.lang(),s="static"===o.position,y=r.elem=lay.elem("div",{id:r.elemID,"class":["layui-laydate",o.range?" layui-laydate-range":"",r.rangeLinked?" layui-laydate-linkage":"",s?" "+T:"",o.fullPanel?" laydate-theme-fullpanel":"",(a="",lay.each(o.theme,function(e,t){"default"===t||/^#/.test(t)||(a+=" laydate-theme-"+t)}),a)].join("")}),m=r.elemMain=[],c=r.elemHeader=[],u=r.elemCont=[],h=r.table=[],e=r.footer=lay.elem("div",{"class":"layui-laydate-footer"}),t=r.shortcut=lay.elem("ul",{"class":"layui-laydate-shortcut"}),f=(o.zIndex&&(y.style.zIndex=o.zIndex),lay.each(new Array(2),function(e){if(!o.range&&0'+d.timeTips+""),(o.range||"datetime"!==o.type||o.fullPanel)&&f.push(''),lay.each(o.btns,function(e,t){var a=d.tools[t]||"btn";o.range&&"now"===t||(s&&"clear"===t&&(a="cn"===o.lang?"\u91cd\u7f6e":"Reset"),n.push(''+a+""))}),f.push('"),f.join(""))),o.shortcuts&&(y.appendChild(t),lay(t).html((i=[],lay.each(o.shortcuts,function(e,t){i.push('
  • '+t.text+"
  • ")}),i.join(""))).find("li").on("click",function(e){var t=o.shortcuts[this.dataset.index]||{},t=("function"==typeof t.value?t.value():t.value)||[],n=(layui.isArray(t)||(t=[t]),o.type),t=(lay.each(t,function(e,t){var a=[o.dateTime,r.endDate][e];"time"===n&&"date"!==layui.type(t)?r.EXP_IF.test(t)&&(t=(t.match(r.EXP_SPLIT)||[]).slice(1),lay.extend(a,{hours:0|t[0],minutes:0|t[2],seconds:0|t[4]})):lay.extend(a,r.systemDate("date"===layui.type(t)?t:new Date(t))),"time"!==n&&"datetime"!==n||(r[["startTime","endTime"][e]]={hours:a.hours,minutes:a.minutes,seconds:a.seconds}),0===e?r.startDate=lay.extend({},a):r.endState=!0,"year"===n||"month"===n||"time"===n?r.listYM[e]=[a.year,a.month+1]:e&&r.autoCalendarModel.auto&&r.autoCalendarModel()}),r.checkDate("limit").calendar(null,null,"init"),lay(r.footer).find("."+L).removeClass(k));t&&"date"===t.attr("lay-type")&&t[0].click(),r.done(null,"change"),lay(this).addClass(x),"static"!==o.position&&r.setValue(r.parse()).done().remove()})),lay.each(m,function(e,t){y.appendChild(t)}),o.showBottom&&y.appendChild(e),lay.elem("style")),p=[],g=!0,t=(lay.each(o.theme,function(e,t){g&&/^#/.test(t)?(g=!(l=!0),p.push(["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}",-1!==o.theme.indexOf("circle")?"":"#{{id}} .layui-this{background-color:{{theme}} !important;}","#{{id}} .laydate-day-now{color:{{theme}} !important;}","#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,r.elemID).replace(/{{theme}}/g,t))):!g&&/^#/.test(t)&&p.push(["#{{id}} .laydate-selected>div{background-color:{{theme}} !important;}","#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,r.elemID).replace(/{{theme}}/g,t))}),o.shortcuts&&o.range&&p.push("#{{id}}.layui-laydate-range{width: 628px;}".replace(/{{id}}/g,r.elemID)),p.length&&(p=p.join(""),"styleSheet"in f?(f.setAttribute("type","text/css"),f.styleSheet.cssText=p):f.innerHTML=p,l&&lay(y).addClass("laydate-theme-molv"),y.appendChild(f)),r.remove(I.thisElemDate),D.thisId=o.id,s?o.elem.append(y):(v.body.appendChild(y),r.position()),o.shade?'
    ':"");y.insertAdjacentHTML("beforebegin",t),r.checkDate().calendar(null,0,"init"),r.changeEvent(),I.thisElemDate=r.elemID,r.renderAdditional(),"function"==typeof o.ready&&o.ready(lay.extend({},o.dateTime,{month:o.dateTime.month+1})),r.preview()},I.prototype.remove=function(e){var t=this,a=t.config,n=lay("#"+(e||t.elemID));return n[0]&&(n.hasClass(T)||t.checkDate(function(){n.remove(),delete t.startDate,delete t.endDate,delete t.endState,delete t.startTime,delete t.endTime,delete D.thisId,"function"==typeof a.close&&a.close(t)}),lay("."+S).remove()),t},I.prototype.position=function(){var e=this.config;return lay.position(e.elem[0],this.elem,{position:e.position}),this},I.prototype.hint=function(e){var t=this,a=(t.config,lay.elem("div",{"class":r}));t.elem&&(a.innerHTML=(e="object"==typeof e?e||{}:{content:e}).content||"",lay(t.elem).find("."+r).remove(),t.elem.appendChild(a),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){lay(t.elem).find("."+r).remove()},"ms"in e?e.ms:3e3))},I.prototype.getAsYM=function(e,t,a){return a?t--:t++,t<0&&(t=11,e--),11h[1]&&(e.year=h[1],o=!0),11t)&&(e.date=t,o=!0)},u=function(n,i,l){var r=["startTime","endTime"];i=(i.match(d.EXP_SPLIT)||[]).slice(1),l=l||0,s.range&&(d[r[l]]=d[r[l]]||{}),lay.each(d.format,function(e,t){var a=parseFloat(i[e]);i[e].lengthd.getDateTime(s.max)?(r=s.dateTime=lay.extend({},s.max),i=!0):d.getDateTime(r)d.getDateTime(s.max))&&(d.endDate=lay.extend({},s.max),i=!0),d.startTime={hours:s.dateTime.hours,minutes:s.dateTime.minutes,seconds:s.dateTime.seconds},d.endTime={hours:d.endDate.hours,minutes:d.endDate.minutes,seconds:d.endDate.seconds},"month"===s.type)&&(s.dateTime.date=1,d.endDate.date=1),i&&m&&(d.setValue(d.parse()),d.hint("value "+l.invalidDate+l.formatError[1])),d.startDate=d.startDate||m&&lay.extend({},s.dateTime),d.autoCalendarModel.auto&&d.autoCalendarModel(),d.endState=!s.range||!d.rangeLinked||!(!d.startDate||!d.endDate),e&&e()),d},I.prototype.mark=function(e,a){var n,t=this.config;return lay.each(t.mark,function(e,t){e=e.split("-");e[0]!=a[0]&&0!=e[0]||e[1]!=a[1]&&0!=e[1]||e[2]!=a[2]||(n=t||a[2])}),n&&e.find("div").html(''+n+""),this},I.prototype.holidays=function(n,i){var e=this.config,l=["","work"];return"array"===layui.type(e.holidays)&&lay.each(e.holidays,function(a,e){lay.each(e,function(e,t){t===n.attr("lay-ymd")&&n.find("div").html('"+i[2]+"")})}),this},I.prototype.limit=function(t){t=t||{};var i=this,e=i.config,l={},a=t.index>(t.time?0:41)?i.endDate:e.dateTime;return lay.each({now:lay.extend({},a,t.date||{}),min:e.min,max:e.max},function(e,a){var n;l[e]=i.newDate(lay.extend({year:a.year,month:"year"===t.type?0:a.month,date:"year"===t.type||"month"===t.type?1:a.date},(n={},lay.each(t.time,function(e,t){n[t]=a[t]}),n))).getTime()}),a=l.nowh[1]&&(d.year=h[1],o.hint(y.invalidDate)),o.firstDate||(o.firstDate=lay.extend({},d)),s.setFullYear(d.year,d.month,1),i=(s.getDay()+(7-n.weekStart))%7,l=D.getEndDate(d.month||12,d.year),r=D.getEndDate(d.month+1,d.year),lay.each(c,function(e,t){var a,n=[d.year,d.month];(t=lay(t)).removeAttr("class"),e"+n[2]+""),o.mark(t,n).holidays(t,n).limit({elem:t,date:{year:n[0],month:n[1]-1,date:n[2]},index:e})}),lay(u[0]).attr("lay-ym",d.year+"-"+(d.month+1)),lay(u[1]).attr("lay-ym",d.year+"-"+(d.month+1)),"cn"===n.lang?(lay(u[0]).attr("lay-type","year").html(d.year+" \u5e74"),lay(u[1]).attr("lay-type","month").html(d.month+1+" \u6708")):(lay(u[0]).attr("lay-type","month").html(y.month[d.month]),lay(u[1]).attr("lay-type","year").html(d.year)),m&&(n.range?!e&&"init"===a||(o.listYM=[[(o.startDate||n.dateTime).year,(o.startDate||n.dateTime).month+1],[o.endDate.year,o.endDate.month+1]],o.list(n.type,0).list(n.type,1),"time"===n.type?o.setBtnStatus("\u65f6\u95f4",lay.extend({},o.systemDate(),o.startTime),lay.extend({},o.systemDate(),o.endTime)):o.setBtnStatus(!0)):(o.listYM=[[d.year,d.month+1]],o.list(n.type,0))),n.range&&"init"===a&&(o.rangeLinked?(s=o.getAsYM(d.year,d.month,t?"sub":null),o.calendar(lay.extend({},d,{year:s[0],month:s[1]}),1-t)):o.calendar(null,1-t)),n.range||(c=["hours","minutes","seconds"],o.limit({elem:lay(o.footer).find(".laydate-btns-now"),date:o.systemDate(/^(datetime|time)$/.test(n.type)?new Date:null),index:0,time:c}),o.limit({elem:lay(o.footer).find(C),index:0,time:c})),o.setBtnStatus(),lay(o.shortcut).find("li."+x).removeClass(x),n.range&&!m&&"init"!==a&&o.stampRange(),o},I.prototype.list=function(n,i){var l,r,e,o,d=this,s=d.config,y=d.rangeLinked?s.dateTime:[s.dateTime,d.endDate][i],m=d.lang(),t=s.range&&"date"!==s.type&&"datetime"!==s.type,c=lay.elem("ul",{"class":w+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[n]}),a=d.elemHeader[i],u=lay(a[2]).find("span"),h=d.elemCont[i||0],f=lay(h).find("."+w)[0],p="cn"===s.lang,g=p?"\u5e74":"",v=d.listYM[i]||{},D=["hours","minutes","seconds"],T=["startTime","endTime"][i];return v[0]<1&&(v[0]=1),"year"===n?(e=l=v[0]-7,l<1&&(e=l=1),lay.each(new Array(15),function(e){var t=lay.elem("li",{"lay-ym":l}),a={year:l,month:0,date:1};l==v[0]&&lay(t).addClass(x),t.innerHTML=l+g,c.appendChild(t),d.limit({elem:lay(t),date:a,index:i,type:n}),l++}),lay(u[p?0:1]).attr("lay-ym",l-8+"-"+v[1]).html(e+g+" - "+(l-1)+g)):"month"===n?(lay.each(new Array(12),function(e){var t=lay.elem("li",{"lay-ym":e}),a={year:v[0],month:e,date:1};e+1==v[1]&&lay(t).addClass(x),t.innerHTML=m.month[e]+(p?"\u6708":""),c.appendChild(t),d.limit({elem:lay(t),date:a,index:i,type:n})}),lay(u[p?0:1]).attr("lay-ym",v[0]+"-"+v[1]).html(v[0]+g)):"time"===n&&(r=function(){lay(c).find("ol").each(function(a,e){lay(e).find("li").each(function(e,t){d.limit({elem:lay(t),date:[{hours:e},{hours:d[T].hours,minutes:e},{hours:d[T].hours,minutes:d[T].minutes,seconds:e}][a],index:i,time:[["hours"],["hours","minutes"],["hours","minutes","seconds"]][a]})})}),s.range||d.limit({elem:lay(d.footer).find(C),date:d[T],index:0,time:["hours","minutes","seconds"]})},s.range?d[T]||(d[T]="startTime"===T?y:d.endDate):d[T]=y,lay.each([24,60,60],function(t,e){var a=lay.elem("li"),n=["

    "+m.time[t]+"

      "];lay.each(new Array(e),function(e){n.push(""+lay.digit(e,2)+"")}),a.innerHTML=n.join("")+"
    ",c.appendChild(a)}),r()),f&&h.removeChild(f),h.appendChild(c),"year"===n||"month"===n?(lay(d.elemMain[i]).addClass("laydate-ym-show"),lay(c).find("li").on("click",function(){var e=0|lay(this).attr("lay-ym");lay(this).hasClass(k)||(d.rangeLinked?lay.extend(y,{year:"year"===n?e:v[0],month:"year"===n?v[1]-1:e}):y[n]=e,"year"===s.type||"month"===s.type?(lay(c).find("."+x).removeClass(x),lay(this).addClass(x),"month"===s.type&&"year"===n&&(d.listYM[i][0]=e,t&&((i?d.endDate:y).year=e),d.list("month",i))):(d.checkDate("limit").calendar(y,i,"init"),d.closeList()),d.setBtnStatus(),!s.range&&s.autoConfirm&&("month"===s.type&&"month"===n||"year"===s.type&&"year"===n)&&d.setValue(d.parse()).done().remove(),d.autoCalendarModel.auto&&!d.rangeLinked?d.choose(lay(h).find("td.layui-this"),i):d.endState&&d.done(null,"change"),lay(d.footer).find("."+L).removeClass(k))})):(e=lay.elem("span",{"class":M}),o=function(){lay(c).find("ol").each(function(e){var a=this,t=lay(a).find("li");a.scrollTop=30*(d[T][D[e]]-2),a.scrollTop<=0&&t.each(function(e,t){if(!lay(this).hasClass(k))return a.scrollTop=30*(e-2),!0})})},u=lay(a[2]).find("."+M),o(),e.innerHTML=s.range?[m.startTime,m.endTime][i]:m.timeTips,lay(d.elemMain[i]).addClass("laydate-time-show"),u[0]&&u.remove(),a[2].appendChild(e),(f=lay(c).find("ol")).each(function(t){var a=this;lay(a).find("li").on("click",function(){var e=0|this.innerHTML;lay(this).hasClass(k)||(s.range?d[T][D[t]]=e:y[D[t]]=e,lay(a).find("."+x).removeClass(x),lay(this).addClass(x),r(),o(),(d.endDate||"time"===s.type||"datetime"===s.type&&s.fullPanel)&&d.done(null,"change"),d.setBtnStatus())})}),layui.device().mobile&&f.css({overflowY:"auto",touchAction:"pan-y"})),d},I.prototype.listYM=[],I.prototype.closeList=function(){var a=this;a.config;lay.each(a.elemCont,function(e,t){lay(this).find("."+w).remove(),lay(a.elemMain[e]).removeClass("laydate-ym-show laydate-time-show")}),lay(a.elem).find("."+M).remove()},I.prototype.setBtnStatus=function(e,t,a){var n=this,i=n.config,l=n.lang(),r=lay(n.footer).find(C);i.range&&"time"!==i.type&&(t=t||(n.rangeLinked?n.startDate:i.dateTime),a=a||n.endDate,i=!n.endState||n.newDate(t).getTime()>n.newDate(a).getTime(),n.limit({date:t})||n.limit({date:a})?r.addClass(k):r[i?"addClass":"removeClass"](k),e)&&i&&n.hint("string"==typeof e?l.timeout.replace(/\u65e5\u671f/g,e):l.timeout)},I.prototype.parse=function(e,t){var a=this,n=a.config,i=a.rangeLinked?a.startDate:n.dateTime,t=t||("end"==e?lay.extend({},a.endDate,a.endTime):n.range?lay.extend({},i||n.dateTime,a.startTime):n.dateTime),i=D.parse(t,a.format,1);return n.range&&e===undefined?i+" "+a.rangeStr+" "+a.parse("end"):i},I.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},I.prototype.getDateTime=function(e){return this.newDate(e).getTime()},I.prototype.setValue=function(e){var t=this,a=t.config,n=a.elem[0];return"static"!==a.position&&(e=e||"",t.isInput(n)?lay(n).val(e):(a=t.rangeElem)?("array"!==layui.type(e)&&(e=e.split(" "+t.rangeStr+" ")),a[0].val(e[0]||""),a[1].val(e[1]||"")):(0===lay(n).find("*").length&&lay(n).html(e),lay(n).attr("lay-date",e))),t},I.prototype.preview=function(){var e,t=this,a=t.config;a.isPreview&&(e=lay(t.elem).find("."+E),a=!a.range||(t.rangeLinked?t.endState:t.endDate)?t.parse():"",e.html(a),e.html())&&(e.css({color:"#16b777"}),setTimeout(function(){e.css({color:"#777"})},300))},I.prototype.renderAdditional=function(){this.config.fullPanel&&this.list("time",0)},I.prototype.stampRange=function(){var n,i=this,l=i.config,r=i.rangeLinked?i.startDate:l.dateTime,e=lay(i.elem).find("td");l.range&&!i.endState&&lay(i.footer).find(C).addClass(k),r=r&&i.newDate({year:r.year,month:r.month,date:r.date}).getTime(),n=i.endState&&i.endDate&&i.newDate({year:i.endDate.year,month:i.endDate.month,date:i.endDate.date}).getTime(),lay.each(e,function(e,t){var a=lay(t).attr("lay-ymd").split("-"),a=i.newDate({year:a[0],month:a[1]-1,date:a[2]}).getTime();l.rangeLinked&&!i.startDate&&a===i.newDate(i.systemDate()).getTime()&&lay(t).addClass(lay(t).hasClass(y)||lay(t).hasClass(m)?"":"laydate-day-now"),lay(t).removeClass(o+" "+x),a!==r&&a!==n||(i.rangeLinked||!i.rangeLinked&&(e<42?a===r:a===n))&&lay(t).addClass(lay(t).hasClass(y)||lay(t).hasClass(m)?o:x),rn.getDateTime(i.max)&&(n[t]={hours:i.max.hours,minutes:i.max.minutes,seconds:i.max.seconds},lay.extend(l,n[t])))}),a||(n.startDate=lay.extend({},l)),n.endState&&!n.limit({date:n.thisDateTime(1-a)})&&(((r=n.endState&&n.autoCalendarModel.auto?n.autoCalendarModel():r)||n.rangeLinked&&n.endState)&&n.newDate(n.startDate)>n.newDate(n.endDate)&&(n.startDate.year===n.endDate.year&&n.startDate.month===n.endDate.month&&n.startDate.date===n.endDate.date&&(o=n.startTime,n.startTime=n.endTime,n.endTime=o),o=n.startDate,n.startDate=lay.extend({},n.endDate,n.startTime),i.dateTime=lay.extend({},n.startDate),n.endDate=lay.extend({},o,n.endTime)),r)&&(i.dateTime=lay.extend({},n.startDate)),n.rangeLinked?(e=lay.extend({},l),!t||a||r||(o=n.getAsYM(l.year,l.month,"sub"),lay.extend(i.dateTime,{year:o[0],month:o[1]})),n.calendar(e,t,r?"init":null)):n.calendar(null,a,r?"init":null),n.endState&&n.done(null,"change")):"static"===i.position?n.calendar().done().done(null,"change"):"date"===i.type?i.autoConfirm?n.setValue(n.parse()).done().remove():n.calendar().done(null,"change"):"datetime"===i.type&&n.calendar().done(null,"change"))},I.prototype.tool=function(t,e){var a=this,n=a.config,i=a.lang(),l=n.dateTime,r="static"===n.position,o={datetime:function(){lay(t).hasClass(k)||(a.list("time",0),n.range&&a.list("time",1),lay(t).attr("lay-type","date").html(a.lang().dateTips))},date:function(){a.closeList(),lay(t).attr("lay-type","datetime").html(a.lang().timeTips)},clear:function(){r&&(lay.extend(l,a.firstDate),a.calendar()),n.range&&(delete n.dateTime,delete a.endDate,delete a.startTime,delete a.endTime),a.setValue(""),a.done(null,"onClear").done(["",{},{}]).remove()},now:function(){var e=new Date;if(lay(t).hasClass(k))return a.hint(i.tools.now+", "+i.invalidDate);lay.extend(l,a.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),a.setValue(a.parse()),r&&a.calendar(),a.done(null,"onNow").done().remove()},confirm:function(){if(n.range){if(lay(t).hasClass(k))return a.hint("time"===n.type?i.timeout.replace(/\u65e5\u671f/g,"\u65f6\u95f4"):i.timeout)}else if(lay(t).hasClass(k))return a.hint(i.invalidDate);a.setValue(a.parse()),a.done(null,"onConfirm").done().remove()}};o[e]&&o[e]()},I.prototype.change=function(n){var i=this,l=i.config,r=i.thisDateTime(n),o=l.range&&("year"===l.type||"month"===l.type),d=i.elemCont[n||0],s=i.listYM[n],e=function(e){var t=lay(d).find(".laydate-year-list")[0],a=lay(d).find(".laydate-month-list")[0];return t&&(s[0]=e?s[0]-15:s[0]+15,i.list("year",n)),a&&(e?s[0]--:s[0]++,i.list("month",n)),(t||a)&&(lay.extend(r,{year:s[0]}),o&&(r.year=s[0]),l.range||i.done(null,"change"),l.range||i.limit({elem:lay(i.footer).find(C),date:{year:s[0]}})),i.setBtnStatus(),t||a};return{prevYear:function(){e("sub")||(i.rangeLinked?(l.dateTime.year--,i.checkDate("limit").calendar(null,null,"init")):(r.year--,i.checkDate("limit").calendar(null,n),i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change")))},prevMonth:function(){i.rangeLinked&&(r=l.dateTime);var e=i.getAsYM(r.year,r.month,"sub");lay.extend(r,{year:e[0],month:e[1]}),i.checkDate("limit").calendar(null,null,"init"),i.rangeLinked||(i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change"))},nextMonth:function(){i.rangeLinked&&(r=l.dateTime);var e=i.getAsYM(r.year,r.month);lay.extend(r,{year:e[0],month:e[1]}),i.checkDate("limit").calendar(null,null,"init"),i.rangeLinked||(i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change"))},nextYear:function(){e()||(i.rangeLinked?(l.dateTime.year++,i.checkDate("limit").calendar(null,0,"init")):(r.year++,i.checkDate("limit").calendar(null,n),i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change")))}}},I.prototype.changeEvent=function(){var i=this;i.config;lay(i.elem).on("click",function(e){lay.stope(e)}).on("mousedown",function(e){lay.stope(e)}),lay.each(i.elemHeader,function(n,e){lay(e[0]).on("click",function(e){i.change(n).prevYear()}),lay(e[1]).on("click",function(e){i.change(n).prevMonth()}),lay(e[2]).find("span").on("click",function(e){var t=lay(this),a=t.attr("lay-ym"),t=t.attr("lay-type");a&&(a=a.split("-"),i.listYM[n]=[0|a[0],0|a[1]],i.list(t,n),lay(i.footer).find("."+L).addClass(k))}),lay(e[3]).on("click",function(e){i.change(n).nextMonth()}),lay(e[4]).on("click",function(e){i.change(n).nextYear()})}),lay.each(i.table,function(e,t){lay(t).find("td").on("click",function(){i.choose(lay(this),e)})}),lay(i.footer).find("span").on("click",function(){var e=lay(this).attr("lay-type");i.tool(this,e)})},I.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())||/INPUT|TEXTAREA/.test(e.tagName)},I.prototype.events=function(){var e,t=this,a=t.config;a.elem[0]&&!a.elem[0].eventHandler&&(a.elem.on(a.trigger,e=function(){D.thisId!==a.id&&t.render()}),a.elem[0].eventHandler=!0,a.eventElem.on(a.trigger,e),t.unbind=function(){t.remove(),a.elem.off(a.trigger,e),a.elem.removeAttr("lay-key"),a.elem.removeAttr(d),a.elem[0].eventHandler=!1,a.eventElem.off(a.trigger,e),a.eventElem.removeAttr("lay-key"),delete s.that[a.id]})},s.that={},s.getThis=function(e){var t=s.that[e];return!t&&n&&layui.hint().error(e?a+" instance with ID '"+e+"' not found":"ID argument required"),t},l.run=function(n){n(v).on("mousedown",function(e){var t,a;D.thisId&&(t=s.getThis(D.thisId))&&(a=t.config,e.target===a.elem[0]||e.target===a.eventElem[0]||e.target===n(a.closeStop)[0]||a.elem[0]&&a.elem[0].contains(e.target)||t.remove())}).on("keydown",function(e){var t;D.thisId&&(t=s.getThis(D.thisId))&&"static"!==t.config.position&&13===e.keyCode&&n("#"+t.elemID)[0]&&t.elemID===I.thisElemDate&&(e.preventDefault(),n(t.footer).find(C)[0].click())}),n(i).on("resize",function(){if(D.thisId){var e=s.getThis(D.thisId);if(e)return!(!e.elem||!n(".layui-laydate")[0])&&void e.position()}})},D.render=function(e){e=new I(e);return s.call(e)},D.reload=function(e,t){e=s.getThis(e);if(e)return e.reload(t)},D.getInst=function(e){e=s.getThis(e);if(e)return e.inst},D.hint=function(e,t){e=s.getThis(e);if(e)return e.hint(t)},D.unbind=function(e){e=s.getThis(e);if(e)return e.unbind()},D.close=function(e){e=s.getThis(e||D.thisId);if(e)return e.remove()},D.parse=function(a,n,i){return a=a||{},n=((n="string"==typeof n?s.formatArr(n):n)||[]).concat(),lay.each(n,function(e,t){/yyyy|y/.test(t)?n[e]=lay.digit(a.year,t.length):/MM|M/.test(t)?n[e]=lay.digit(a.month+(i||0),t.length):/dd|d/.test(t)?n[e]=lay.digit(a.date,t.length):/HH|H/.test(t)?n[e]=lay.digit(a.hours,t.length):/mm|m/.test(t)?n[e]=lay.digit(a.minutes,t.length):/ss|s/.test(t)&&(n[e]=lay.digit(a.seconds,t.length))}),n.join("")},D.getEndDate=function(e,t){var a=new Date;return a.setFullYear(t||a.getFullYear(),e||a.getMonth()+1,1),new Date(a.getTime()-864e5).getDate()},n?(D.ready(),layui.define("lay",function(e){D.path=layui.cache.dir,l.run(lay),e(a,D)})):"function"==typeof define&&define.amd?define(function(){return l.run(lay),D}):(D.ready(),l.run(i.lay),i.laydate=D)}(window,window.document);!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(T,M){var f=[],g=T.document,c=f.slice,O=f.concat,R=f.push,P=f.indexOf,B={},W=B.toString,m=B.hasOwnProperty,y={},e="1.12.4",C=function(e,t){return new C.fn.init(e,t)},I=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,$=/^-ms-/,z=/-([\da-z])/gi,X=function(e,t){return t.toUpperCase()};function U(e){var t=!!e&&"length"in e&&e.length,n=C.type(e);return"function"!==n&&!C.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+a+")"+a+"*"),ee=new RegExp("="+a+"*([^\\]'\"]*?)"+a+"*\\]","g"),te=new RegExp(G),ne=new RegExp("^"+s+"$"),f={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+J),PSEUDO:new RegExp("^"+G),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},re=/^(?:input|select|textarea|button)$/i,ie=/^h\d$/i,c=/^[^{]+\{\s*\[native \w/,oe=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ae=/[+~]/,se=/'|\\/g,d=new RegExp("\\\\([\\da-f]{1,6}"+a+"?|("+a+")|.)","ig"),p=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(65536+r):String.fromCharCode(r>>10|55296,1023&r|56320)},ue=function(){C()};try{D.apply(n=V.call(v.childNodes),v.childNodes),n[v.childNodes.length].nodeType}catch(F){D={apply:n.length?function(e,t){U.apply(e,V.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function H(e,t,n,r){var i,o,a,s,u,l,c,f,d=t&&t.ownerDocument,p=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==p&&9!==p&&11!==p)return n;if(!r&&((t?t.ownerDocument||t:v)!==E&&C(t),t=t||E,N)){if(11!==p&&(l=oe.exec(e)))if(i=l[1]){if(9===p){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(d&&(a=d.getElementById(i))&&y(t,a)&&a.id===i)return n.push(a),n}else{if(l[2])return D.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&g.getElementsByClassName&&t.getElementsByClassName)return D.apply(n,t.getElementsByClassName(i)),n}if(g.qsa&&!A[e+" "]&&(!m||!m.test(e))){if(1!==p)d=t,f=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(se,"\\$&"):t.setAttribute("id",s=k),o=(c=w(e)).length,u=ne.test(s)?"#"+s:"[id='"+s+"']";o--;)c[o]=u+" "+_(c[o]);f=c.join(","),d=ae.test(e)&&de(t.parentNode)||t}if(f)try{return D.apply(n,d.querySelectorAll(f)),n}catch(h){}finally{s===k&&t.removeAttribute("id")}}}return P(e.replace(L,"$1"),t,n,r)}function le(){var n=[];function r(e,t){return n.push(e+" ")>b.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function q(e){return e[k]=!0,e}function h(e){var t=E.createElement("div");try{return!!e(t)}catch(F){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function ce(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function x(a){return q(function(o){return o=+o,q(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function de(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in g=H.support={},O=H.isXML=function(e){e=e&&(e.ownerDocument||e).documentElement;return!!e&&"HTML"!==e.nodeName},C=H.setDocument=function(e){var e=e?e.ownerDocument||e:v;return e!==E&&9===e.nodeType&&e.documentElement&&(t=(E=e).documentElement,N=!O(E),(e=E.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",ue,!1):e.attachEvent&&e.attachEvent("onunload",ue)),g.attributes=h(function(e){return e.className="i",!e.getAttribute("className")}),g.getElementsByTagName=h(function(e){return e.appendChild(E.createComment("")),!e.getElementsByTagName("*").length}),g.getElementsByClassName=c.test(E.getElementsByClassName),g.getById=h(function(e){return t.appendChild(e).id=k,!E.getElementsByName||!E.getElementsByName(k).length}),g.getById?(b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&N)return(e=t.getElementById(e))?[e]:[]},b.filter.ID=function(e){var t=e.replace(d,p);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var t=e.replace(d,p);return function(e){e="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}}),b.find.TAG=g.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):g.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=g.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&N)return t.getElementsByClassName(e)},r=[],m=[],(g.qsa=c.test(E.querySelectorAll))&&(h(function(e){t.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+a+"*(?:value|"+Y+")"),e.querySelectorAll("[id~="+k+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||m.push(".#.+[+~]")}),h(function(e){var t=E.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+a+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(g.matchesSelector=c.test(i=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.msMatchesSelector))&&h(function(e){g.disconnectedMatch=i.call(e,"div"),i.call(e,"[s!='']:x"),r.push("!=",G)}),m=m.length&&new RegExp(m.join("|")),r=r.length&&new RegExp(r.join("|")),e=c.test(t.compareDocumentPosition),y=e||c.test(t.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},$=e?function(e,t){var n;return e===t?(l=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===E||e.ownerDocument===v&&y(v,e)?-1:t===E||t.ownerDocument===v&&y(v,t)?1:u?j(u,e)-j(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===E?-1:t===E?1:i?-1:o?1:u?j(u,e)-j(u,t):0;if(i===o)return fe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?fe(a[r],s[r]):a[r]===v?-1:s[r]===v?1:0}),E},H.matches=function(e,t){return H(e,null,null,t)},H.matchesSelector=function(e,t){if((e.ownerDocument||e)!==E&&C(e),t=t.replace(ee,"='$1']"),g.matchesSelector&&N&&!A[t+" "]&&(!r||!r.test(t))&&(!m||!m.test(t)))try{var n=i.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(F){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(d,p),e[3]=(e[3]||e[4]||e[5]||"").replace(d,p),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||H.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&H.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return f.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&te.test(n)&&(t=(t=w(n,!0))&&n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(d,p).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&W(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=H.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1(?:<\/\1>|)$/,G=/^.[^:#\[\.,]*$/;function K(e,n,r){if(C.isFunction(n))return C.grep(e,function(e,t){return!!n.call(e,t,e)!==r});if(n.nodeType)return C.grep(e,function(e){return e===n!==r});if("string"==typeof n){if(G.test(n))return C.filter(n,e,r);n=C.filter(n,e)}return C.grep(e,function(e){return-1)[^>]*|#([\w-]*))$/,ee=((C.fn.init=function(e,t,n){if(e){if(n=n||Q,"string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):C.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(C):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),C.makeArray(e,this));if(!(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:Z.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:g,!0)),J.test(r[1])&&C.isPlainObject(t))for(var r in t)C.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r])}else{if((n=g.getElementById(r[2]))&&n.parentNode){if(n.id!==r[2])return Q.find(e);this.length=1,this[0]=n}this.context=g,this.selector=e}}return this}).prototype=C.fn,Q=C(g),/^(?:parents|prev(?:Until|All))/),te={children:!0,contents:!0,next:!0,prev:!0};function ne(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t,n=C(e,this),r=n.length;return this.filter(function(){for(t=0;t
    a",y.leadingWhitespace=3===S.firstChild.nodeType,y.tbody=!S.getElementsByTagName("tbody").length,y.htmlSerialize=!!S.getElementsByTagName("link").length,y.html5Clone="<:nav>"!==g.createElement("nav").cloneNode(!0).outerHTML,q.type="checkbox",q.checked=!0,k.appendChild(q),y.appendChecked=q.checked,S.innerHTML="",y.noCloneChecked=!!S.cloneNode(!0).lastChild.defaultValue,k.appendChild(S),(q=g.createElement("input")).setAttribute("type","radio"),q.setAttribute("checked","checked"),q.setAttribute("name","t"),S.appendChild(q),y.checkClone=S.cloneNode(!0).cloneNode(!0).lastChild.checked,y.noCloneEvent=!!S.addEventListener,S[C.expando]=1,y.attributes=!S.getAttribute(C.expando);var x={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:y.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]};function b(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):undefined;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||C.nodeName(r,t)?o.push(r):C.merge(o,b(r,t));return t===undefined||t&&C.nodeName(e,t)?C.merge([e],o):o}function we(e,t){for(var n,r=0;null!=(n=e[r]);r++)C._data(n,"globalEval",!t||C._data(t[r],"globalEval"))}x.optgroup=x.option,x.tbody=x.tfoot=x.colgroup=x.caption=x.thead,x.th=x.td;var Te=/<|&#?\w+;/,Ce=/"!==f[1]||Ce.test(a)?0:u:u.firstChild)&&a.childNodes.length;o--;)C.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(C.merge(h,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=p.lastChild}else h.push(t.createTextNode(a));for(u&&p.removeChild(u),y.appendChecked||C.grep(b(h,"input"),Ee),g=0;a=h[g++];)if(r&&-1]","i"),Pe=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Be=/\s*$/g,ze=be(g).appendChild(g.createElement("div"));function Xe(e,t){return C.nodeName(e,"table")&&C.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ue(e){return e.type=(null!==C.find.attr(e,"type"))+"/"+e.type,e}function Ve(e){var t=Ie.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ye(e,t){if(1===t.nodeType&&C.hasData(e)){var n,r,i,e=C._data(e),o=C._data(t,e),a=e.events;if(a)for(n in delete o.handle,o.events={},a)for(r=0,i=a[n].length;r")},clone:function(e,t,n){var r,i,o,a,s,u=C.contains(e.ownerDocument,e);if(y.html5Clone||C.isXMLDoc(e)||!Re.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(ze.innerHTML=e.outerHTML,ze.removeChild(o=ze.firstChild)),!(y.noCloneEvent&&y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(r=b(o),s=b(e),a=0;null!=(i=s[a]);++a)if(r[a]){f=c=l=p=d=void 0;var l,c,f,d=i,p=r[a];if(1===p.nodeType){if(l=p.nodeName.toLowerCase(),!y.noCloneEvent&&p[C.expando]){for(c in(f=C._data(p)).events)C.removeEvent(p,c,f.handle);p.removeAttribute(C.expando)}"script"===l&&p.text!==d.text?(Ue(p).text=d.text,Ve(p)):"object"===l?(p.parentNode&&(p.outerHTML=d.outerHTML),y.html5Clone&&d.innerHTML&&!C.trim(p.innerHTML)&&(p.innerHTML=d.innerHTML)):"input"===l&&ge.test(d.type)?(p.defaultChecked=p.checked=d.checked,p.value!==d.value&&(p.value=d.value)):"option"===l?p.defaultSelected=p.selected=d.defaultSelected:"input"!==l&&"textarea"!==l||(p.defaultValue=d.defaultValue)}}if(t)if(n)for(s=s||b(e),r=r||b(o),a=0;null!=(i=s[a]);a++)Ye(i,r[a]);else Ye(e,o);return 0<(r=b(o,"script")).length&&we(r,!u&&b(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=C.expando,u=C.cache,l=y.attributes,c=C.event.special;null!=(n=e[a]);a++)if((t||v(n))&&(o=(i=n[s])&&u[i])){if(o.events)for(r in o.events)c[r]?C.event.remove(n,r):C.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=undefined:n.removeAttribute(s),f.push(i))}}}),C.fn.extend({domManip:w,detach:function(e){return Je(this,e,!0)},remove:function(e){return Je(this,e)},text:function(e){return d(this,function(e){return e===undefined?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||g).createTextNode(e))},null,e,arguments.length)},append:function(){return w(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Xe(this,e).appendChild(e)})},prepend:function(){return w(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Xe(this,e)).insertBefore(e,t.firstChild)})},before:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&C.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&C.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return d(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined)return 1===t.nodeType?t.innerHTML.replace(Oe,""):undefined;if("string"==typeof e&&!Be.test(e)&&(y.htmlSerialize||!Re.test(e))&&(y.leadingWhitespace||!ve.test(e))&&!x[(me.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n")).appendTo(t.documentElement))[0].contentWindow||Ge[0].contentDocument).document).write(),t.close(),n=Qe(e,t),Ge.detach()),Ke[e]=n),n}var n,et,tt,nt,rt,it,ot,a,at=/^margin/,st=new RegExp("^("+e+")(?!px)[a-z%]+$","i"),ut=function(e,t,n,r){var i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.apply(e,r||[]),t)e.style[i]=o[i];return r},lt=g.documentElement;function t(){var e,t=g.documentElement;t.appendChild(ot),a.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",n=tt=it=!1,et=rt=!0,T.getComputedStyle&&(e=T.getComputedStyle(a),n="1%"!==(e||{}).top,it="2px"===(e||{}).marginLeft,tt="4px"===(e||{width:"4px"}).width,a.style.marginRight="50%",et="4px"===(e||{marginRight:"4px"}).marginRight,(e=a.appendChild(g.createElement("div"))).style.cssText=a.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",e.style.marginRight=e.style.width="0",a.style.width="1px",rt=!parseFloat((T.getComputedStyle(e)||{}).marginRight),a.removeChild(e)),a.style.display="none",(nt=0===a.getClientRects().length)&&(a.style.display="",a.innerHTML="
    t
    ",a.childNodes[0].style.borderCollapse="separate",(e=a.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",nt=0===e[0].offsetHeight)&&(e[0].style.display="",e[1].style.display="none",nt=0===e[0].offsetHeight),t.removeChild(ot)}ot=g.createElement("div"),(a=g.createElement("div")).style&&(a.style.cssText="float:left;opacity:.5",y.opacity="0.5"===a.style.opacity,y.cssFloat=!!a.style.cssFloat,a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===a.style.backgroundClip,(ot=g.createElement("div")).style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.innerHTML="",ot.appendChild(a),y.boxSizing=""===a.style.boxSizing||""===a.style.MozBoxSizing||""===a.style.WebkitBoxSizing,C.extend(y,{reliableHiddenOffsets:function(){return null==n&&t(),nt},boxSizingReliable:function(){return null==n&&t(),tt},pixelMarginRight:function(){return null==n&&t(),et},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),rt},reliableMarginLeft:function(){return null==n&&t(),it}}));var l,p,ct=/^(top|right|bottom|left)$/;function ft(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}T.getComputedStyle?(l=function(e){var t=e.ownerDocument.defaultView;return(t=t&&t.opener?t:T).getComputedStyle(e)},p=function(e,t,n){var r,i,o=e.style;return""!==(i=(n=n||l(e))?n.getPropertyValue(t)||n[t]:undefined)&&i!==undefined||C.contains(e.ownerDocument,e)||(i=C.style(e,t)),n&&!y.pixelMarginRight()&&st.test(i)&&at.test(t)&&(e=o.width,t=o.minWidth,r=o.maxWidth,o.minWidth=o.maxWidth=o.width=i,i=n.width,o.width=e,o.minWidth=t,o.maxWidth=r),i===undefined?i:i+""}):lt.currentStyle&&(l=function(e){return e.currentStyle},p=function(e,t,n){var r,i,o,a=e.style;return null==(n=(n=n||l(e))?n[t]:undefined)&&a&&a[t]&&(n=a[t]),st.test(n)&&!ct.test(t)&&(r=a.left,(o=(i=e.runtimeStyle)&&i.left)&&(i.left=e.currentStyle.left),a.left="fontSize"===t?"1em":n,n=a.pixelLeft+"px",a.left=r,o)&&(i.left=o),n===undefined?n:n+""||"auto"});var dt=/alpha\([^)]*\)/i,pt=/opacity\s*=\s*([^)]*)/i,ht=/^(none|table(?!-c[ea]).+)/,gt=new RegExp("^("+e+")(.*)$","i"),mt={position:"absolute",visibility:"hidden",display:"block"},yt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"],xt=g.createElement("div").style;function bt(e){if(e in xt)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=vt.length;n--;)if((e=vt[n]+t)in xt)return e}function wt(e,t){for(var n,r,i,o=[],a=0,s=e.length;a
    a",F=q.getElementsByTagName("a")[0],k.setAttribute("type","checkbox"),q.appendChild(k),(F=q.getElementsByTagName("a")[0]).style.cssText="top:1px",y.getSetAttribute="t"!==q.className,y.style=/top/.test(F.getAttribute("style")),y.hrefNormalized="/a"===F.getAttribute("href"),y.checkOn=!!k.value,y.optSelected=e.selected,y.enctype=!!g.createElement("form").enctype,S.disabled=!0,y.optDisabled=!e.disabled,(k=g.createElement("input")).setAttribute("value",""),y.input=""===k.getAttribute("value"),k.value="t",k.setAttribute("type","radio"),y.radioValue="t"===k.value;var Lt=/\r/g,Ht=/[\x20\t\r\n\f]+/g;C.fn.extend({val:function(t){var n,e,r,i=this[0];return arguments.length?(r=C.isFunction(t),this.each(function(e){1!==this.nodeType||(null==(e=r?t.call(this,e,C(this).val()):t)?e="":"number"==typeof e?e+="":C.isArray(e)&&(e=C.map(e,function(e){return null==e?"":e+""})),(n=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in n&&n.set(this,e,"value")!==undefined)||(this.value=e)})):i?(n=C.valHooks[i.type]||C.valHooks[i.nodeName.toLowerCase()])&&"get"in n&&(e=n.get(i,"value"))!==undefined?e:"string"==typeof(e=i.value)?e.replace(Lt,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:C.trim(C.text(e)).replace(Ht," ")}},select:{get:function(e){for(var t,n=e.options,r=e.selectedIndex,i="select-one"===e.type||r<0,o=i?null:[],a=i?r+1:n.length,s=r<0?a:i?r:0;s").append(C.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this)},C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.expr.filters.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length},C.offset={setOffset:function(e,t,n){var r,i,o,a,s=C.css(e,"position"),u=C(e),l={};"static"===s&&(e.style.position="relative"),o=u.offset(),r=C.css(e,"top"),a=C.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1'+(s?a.title[0]:a.title)+"":"";return a.zIndex=o,t([a.shade?'
    ':"",'
    '+(e&&2!=a.type?"":s)+"'+(n=["layui-icon-tips","layui-icon-success","layui-icon-error","layui-icon-question","layui-icon-lock","layui-icon-face-cry","layui-icon-face-smile"],o="layui-anim layui-anim-rotate layui-anim-loop",0==a.type&&-1!==a.icon?'':3==a.type?(i=["layui-icon-loading","layui-icon-loading-1"],2==a.icon?'
    ':''):"")+((1!=a.type||!e)&&a.content||"")+'
    '+(n=[],l&&(n.push(''),n.push('')),a.closeBtn&&n.push(''),n.join(""))+"
    "+(a.btn?function(){var e="";"string"==typeof a.btn&&(a.btn=[a.btn]);for(var t,i=0,n=a.btn.length;i'+a.btn[i]+"";return'
    '+e+"
    "}():"")+(a.resize?'':"")+""],s,m('
    ')),this},t.pt.creat=function(){var e,t,i,n,a,o=this,s=o.config,l=o.index,r="object"==typeof(f=s.content),c=m("body");if(s.id&&m("."+u[0]).find("#"+s.id)[0])e=m("#"+s.id).closest("."+u[0]),t=e.attr("times"),i=e.data("config"),n=m("#"+u.SHADE+t),"min"===(e.data("maxminStatus")||{})?g.restore(t):i.hideOnClose&&(n.show(),e.show());else{switch(s.removeFocus&&document.activeElement.blur(),"string"==typeof s.area&&(s.area="auto"===s.area?["",""]:[s.area,""]),s.shift&&(s.anim=s.shift),6==g.ie&&(s.fixed=!1),s.type){case 0:s.btn="btn"in s?s.btn:d.btn[0],g.closeAll("dialog");break;case 2:var f=s.content=r?s.content:[s.content||"","auto"];s.content='';break;case 3:delete s.title,delete s.closeBtn,-1===s.icon&&s.icon,g.closeAll("loading");break;case 4:r||(s.content=[s.content,"body"]),s.follow=s.content[1],s.content=s.content[0]+'',delete s.title,s.tips="object"==typeof s.tips?s.tips:[s.tips,!0],s.tipsMore||g.closeAll("tips")}o.vessel(r,function(e,t,i){c.append(e[0]),r?2==s.type||4==s.type?m("body").append(e[1]):f.parents("."+u[0])[0]||(f.data("display",f.css("display")).show().addClass("layui-layer-wrap").wrap(e[1]),m("#"+u[0]+l).find("."+u[5]).before(t)):c.append(e[1]),m("#"+u.MOVE)[0]||c.append(d.moveElem=i),o.layero=m("#"+u[0]+l),o.shadeo=m("#"+u.SHADE+l),s.scrollbar||d.setScrollbar(l)}).auto(l),o.shadeo.css({"background-color":s.shade[1]||"#000",opacity:s.shade[0]||s.shade}),2==s.type&&6==g.ie&&o.layero.find("iframe").attr("src",f[0]),4==s.type?o.tips():(o.offset(),parseInt(d.getStyle(document.getElementById(u.MOVE),"z-index"))||(o.layero.css("visibility","hidden"),g.ready(function(){o.offset(),o.layero.css("visibility","visible")}))),!s.fixed||d.events.resize[o.index]||(d.events.resize[o.index]=function(){o.resize()},h.on("resize",d.events.resize[o.index])),s.time<=0||setTimeout(function(){g.close(o.index)},s.time),o.move().callback(),u.anim[s.anim]&&(a="layer-anim "+u.anim[s.anim],o.layero.addClass(a).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){m(this).removeClass(a)})),o.layero.data("config",s)}},t.pt.resize=function(){var e=this,t=e.config;e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(e.index),4==t.type&&e.tips()},t.pt.auto=function(e){var t=this.config,i=m("#"+u[0]+e),n=(""===t.area[0]&&0t.maxWidth)&&i.width(t.maxWidth),[i.innerWidth(),i.innerHeight()]),a=i.find(u[1]).outerHeight()||0,o=i.find("."+u[6]).outerHeight()||0,e=function(e){(e=i.find(e)).height(n[1]-a-o-2*(0|parseFloat(e.css("padding-top"))))};return 2===t.type?e("iframe"):""===t.area[1]?0t.maxHeight?(n[1]=t.maxHeight,e("."+u[5])):t.fixed&&n[1]>=h.height()&&(n[1]=h.height(),e("."+u[5])):e("."+u[5]),this},t.pt.offset=function(){var e=this,t=e.config,i=e.layero,n=[i.outerWidth(),i.outerHeight()],a="object"==typeof t.offset;e.offsetTop=(h.height()-n[1])/2,e.offsetLeft=(h.width()-n[0])/2,a?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=h.width()-n[0]:"b"===t.offset?e.offsetTop=h.height()-n[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=h.height()-n[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=h.width()-n[0]):"rb"===t.offset?(e.offsetTop=h.height()-n[1],e.offsetLeft=h.width()-n[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?h.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?h.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=h.scrollTop(),e.offsetLeft+=h.scrollLeft()),"min"===i.data("maxminStatus")&&(e.offsetTop=h.height()-(i.find(u[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},t.pt.tips=function(){var e=this.config,t=this.layero,i=[t.outerWidth(),t.outerHeight()],n=m(e.follow),a={width:(n=n[0]?n:m("body")).outerWidth(),height:n.outerHeight(),top:n.offset().top,left:n.offset().left},o=t.find(".layui-layer-TipsG"),n=e.tips[0];e.tips[1]||o.remove(),a.autoLeft=function(){0h.width()&&(o=h.width()-180-(d.minStackArr.edgeIndex=d.minStackArr.edgeIndex||0,d.minStackArr.edgeIndex+=3))<0&&(o=0),t.minStack&&(l.left=o,l.top=h.height()-n,a||d.minStackIndex++,r.attr("minLeft",o)),r.attr("position",s),g.style(e,l,!0),i.hide(),"page"===r.attr("type")&&r.find(u[4]).hide(),d.restScrollbar(e),c.hide())},g.restore=function(e){var t=m("#"+u[0]+e),i=m("#"+u.SHADE+e),n=t.attr("area").split(","),a=t.attr("type"),o=t.data("config")||{};t.removeData("maxminStatus"),g.style(e,{width:n[0],height:n[1],top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===a&&t.find(u[4]).show(),o.scrollbar?d.restScrollbar(e):d.setScrollbar(e),i.show()},g.full=function(t){var i=m("#"+u[0]+t),e=i.data("maxminStatus");"max"!==e&&("min"===e&&g.restore(t),i.data("maxminStatus","max"),d.record(i),u.html.attr("layer-full")||d.setScrollbar(t),setTimeout(function(){var e="fixed"===i.css("position");g.style(t,{top:e?0:h.scrollTop(),left:e?0:h.scrollLeft(),width:"100%",height:"100%"},!0),i.find(".layui-layer-min").hide()},100))},g.title=function(e,t){m("#"+u[0]+(t||g.index)).find(u[1]).html(e)},g.close=function(o,s){var l,e,r=(t=m("."+u[0]).children("#"+o).closest("."+u[0]))[0]?(o=t.attr("times"),t):m("#"+u[0]+o),c=r.attr("type"),t=r.data("config")||{},f=t.id&&t.hideOnClose;r[0]&&(l={slideDown:"layer-anim-slide-down-out",slideLeft:"layer-anim-slide-left-out",slideUp:"layer-anim-slide-up-out",slideRight:"layer-anim-slide-right-out"}[t.anim]||"layer-anim-close",e=function(){var e="layui-layer-wrap";if(f)return r.removeClass("layer-anim "+l),r.hide();if(c===d.type[1]&&"object"===r.attr("conType")){r.children(":not(."+u[5]+")").remove();for(var t=r.find("."+e),i=0;i<2;i++)t.unwrap();t.css("display",t.data("display")).removeClass(e)}else{if(c===d.type[2])try{var n=m("#"+u[4]+o)[0];n.contentWindow.document.write(""),n.contentWindow.close(),r.find("."+u[5])[0].removeChild(n)}catch(a){}r[0].innerHTML="",r.remove()}"function"==typeof d.end[o]&&d.end[o](),delete d.end[o],"function"==typeof s&&s(),d.events.resize[o]&&(h.off("resize",d.events.resize[o]),delete d.events.resize[o])},m("#"+u.SHADE+o)[f?"hide":"remove"](),t.isOutAnim&&r.addClass("layer-anim "+l),6==g.ie&&d.reselect(),d.restScrollbar(o),"string"==typeof r.attr("minLeft")&&(d.minStackIndex--,d.minStackArr.push(r.attr("minLeft"))),g.ie&&g.ie<10||!t.isOutAnim?e():setTimeout(function(){e()},200))},g.closeAll=function(n,a){"function"==typeof n&&(a=n,n=null);var o=m("."+u[0]);m.each(o,function(e){var t=m(this),i=n?t.attr("type")===n:1;i&&g.close(t.attr("times"),e===o.length-1?a:null)}),0===o.length&&"function"==typeof a&&a()},g.closeLast=function(e,t){g.close(m(".layui-layer-"+(e=e||"page")+":last").attr("times"),t)},g.cache||{}),v=function(e){return i.skin?" "+i.skin+" "+i.skin+"-"+e:""};g.prompt=function(i,n){var e="",t="";"function"==typeof(i=i||{})&&(n=i),i.area&&(e='style="width: '+(o=i.area)[0]+"; height: "+o[1]+';"',delete i.area),i.placeholder&&(t=' placeholder="'+i.placeholder+'"');var a,o=2==i.formType?'":'",s=i.success;return delete i.success,g.open(m.extend({type:1,btn:["确定","取消"],content:o,skin:"layui-layer-prompt"+v("prompt"),maxWidth:h.width(),success:function(e){(a=e.find(".layui-layer-input")).val(i.value||"").focus(),"function"==typeof s&&s(e)},resize:!1,yes:function(e){var t=a.val();t.length>(i.maxlength||500)?g.tips("最多输入"+(i.maxlength||500)+"个字数",a,{tips:1}):n&&n(t,e,a)}},i))},g.tab=function(n){var a=(n=n||{}).tab||{},o="layui-this",s=n.success;return delete n.success,g.open(m.extend({type:1,skin:"layui-layer-tab"+v("tab"),resize:!1,title:function(){var e=a.length,t=1,i="";if(0'+a[0].title+"";t"+a[t].title+"";return i}(),content:'
      '+function(){var e=a.length,t=1,i="";if(0'+(a[0].content||"no content")+"";t'+(a[t].content||"no content")+"";return i}()+"
    ",success:function(e){var t=e.find(".layui-layer-title").children(),i=e.find(".layui-layer-tabmain").children();t.on("mousedown",function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0;var e=m(this),t=e.index();e.addClass(o).siblings().removeClass(o),i.eq(t).show().siblings().hide(),"function"==typeof n.change&&n.change(t)}),"function"==typeof s&&s(e)}},n))},g.photos=function(n,e,a){var s={};if((n=m.extend(!0,{toolbar:!0,footer:!0},n)).photos){var t=!("string"==typeof n.photos||n.photos instanceof m),i=t?n.photos:{},o=i.data||[],l=i.start||0,r=n.success;if(s.imgIndex=1+(0|l),n.img=n.img||"img",delete n.success,t){if(0===o.length)return g.msg("没有图片")}else{var c=m(n.photos),f=function(){o=[],c.find(n.img).each(function(e){var t=m(this);t.attr("layer-index",e),o.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("lay-src")||t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(f(),0===o.length)return;if(e||c.on("click",n.img,function(){f();var e=m(this).attr("layer-index");g.photos(m.extend(n,{photos:{start:e,data:o,tab:n.tab},full:n.full}),!0)}),!e)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=o.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>o.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){var t;s.end||(t=e.keyCode,e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&g.close(s.index))},s.tabimg=function(e){if(!(o.length<=1))return i.start=s.imgIndex-1,g.close(s.index),g.photos(n,!0,e)},s.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},s.image={},s.getTransform=function(e){var t=[],i=e.rotate,n=e.scaleX,e=e.scale;return s.isNumber(i)&&0!==i&&t.push("rotate("+i+"deg)"),s.isNumber(n)&&1!==n&&t.push("scaleX("+n+")"),s.isNumber(e)&&t.push("scale("+e+")"),t.length?t.join(" "):"none"},s.event=function(e,i,n){var a,o;s.main.find(".layui-layer-photos-prev").on("click",function(e){e.preventDefault(),s.imgprev(!0)}),s.main.find(".layui-layer-photos-next").on("click",function(e){e.preventDefault(),s.imgnext(!0)}),m(document).on("keyup",s.keyup),e.off("click").on("click","*[toolbar-event]",function(){var e=m(this);switch(e.attr("toolbar-event")){case"rotate":s.image.rotate=((s.image.rotate||0)+Number(e.attr("data-option")))%360,s.imgElem.css({transform:s.getTransform(s.image)});break;case"scalex":s.image.scaleX=-1===s.image.scaleX?1:-1,s.imgElem.css({transform:s.getTransform(s.image)});break;case"zoom":var t=Number(e.attr("data-option"));s.image.scale=(s.image.scale||1)+t,t<0&&s.image.scale<0-t&&(s.image.scale=0-t),s.imgElem.css({transform:s.getTransform(s.image)});break;case"reset":s.image.scaleX=1,s.image.scale=1,s.image.rotate=0,s.imgElem.css({transform:"none"});break;case"close":g.close(i)}n.offset(),n.auto(i)}),s.main.on("mousewheel DOMMouseScroll",function(e){var t=e.originalEvent.wheelDelta||-e.originalEvent.detail,i=s.main.find('[toolbar-event="zoom"]');(0n)&&("left"===t.direction?s.imgnext(!0):"right"===t.direction&&s.imgprev(!0))},m.each([n.shadeo,s.main],function(e,t){a.touchSwipe(t,{onTouchEnd:o})}))},s.loadi=g.load(1,{shade:!("shade"in n)&&.9,scrollbar:!1});var t=o[l].src,d=function(e){g.close(s.loadi);var t,i=o[l].alt||"";a&&(n.anim=-1),s.index=g.open(m.extend({type:1,id:"layui-layer-photos",area:(e=[e.width,e.height],t=[m(p).width()-100,m(p).height()-100],!n.full&&(t[0]'+i+''+(t=['
    '],1','','',"
    "].join("")),n.toolbar&&t.push(['
    ','','','','','','',"
    "].join("")),n.footer&&t.push(['"].join("")),t.push(""),t.join(""))+"",success:function(e,t,i){s.main=e.find(".layer-layer-photos-main"),s.footer=e.find(".layui-layer-photos-footer"),s.imgElem=s.main.children("img"),s.event(e,t,i),n.tab&&n.tab(o[l],e),"function"==typeof r&&r(e)},end:function(){s.end=!0,m(document).off("keyup",s.keyup)}},n))},u=function(){g.close(s.loadi),g.msg("当前图片地址异常
    是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){1").addClass(r));layui.each(i.bars,function(t,e){var n=s('
  • ');n.addClass(e.icon).attr({"lay-type":e.type,style:e.style||(i.bgcolor?"background-color: "+i.bgcolor:"")}).html(e.content),n.on("click",function(){var t=s(this).attr("lay-type");"top"===t&&("body"===i.target?s("html,body"):u).animate({scrollTop:0},i.duration),"function"==typeof i.click&&i.click.call(this,t)}),"object"===layui.type(i.on)&&layui.each(i.on,function(t,e){n.on(t,function(){var t=s(this).attr("lay-type");"function"==typeof e&&e.call(this,t)})}),"top"===e.type&&(n.addClass("layui-fixbar-top"),o=n),l.append(n)}),c.find("."+r).remove(),"object"==typeof i.css&&l.css(i.css),c.append(l),o&&(e=function e(){return u.scrollTop()>=i.margin?t||(o.show(),t=1):t&&(o.hide(),t=0),e}()),u.on("scroll",function(){e&&(clearTimeout(n),n=setTimeout(function(){e()},100))})},countdown:function(i){i=s.extend(!0,{date:new Date,now:new Date},i);var o=arguments,r=(1]|&(?=#[a-zA-Z0-9]+)/g.test(t+="")?t.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,"""):t},unescape:function(t){return t!==undefined&&null!==t||(t=""),(t+="").replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/\'/g,"'").replace(/\"/g,'"')},openWin:function(t){var e=(t=t||{}).window||window.open(t.url||"",t.target,t.specs);t.url||(e.document.open("text/html","replace"),e.document.write(t.content||""),e.document.close())},toVisibleArea:function(t){var e,n,i,o,r,a,c,u;(t=s.extend({margin:160,duration:200,type:"y"},t)).scrollElem[0]&&t.thisElem[0]&&(e=t.scrollElem,c=t.thisElem,i=(r="y"===t.type)?"top":"left",o=e[n=r?"scrollTop":"scrollLeft"](),r=e[r?"height":"width"](),a=e.offset()[i],u={},(c=c.offset()[i]-a)>r-t.margin||c."+v,E=function(e){var i=this;i.index=++h.index,i.config=c.extend({},i.config,h.config,e),i.init()};E.prototype.config={trigger:"click",content:"",className:"",style:"",show:!1,isAllowSpread:!0,isSpreadItem:!0,data:[],delay:[200,300],shade:0,accordion:!1},E.prototype.reload=function(e,i){var t=this;t.config=c.extend({},t.config,e),t.init(!0,i)},E.prototype.init=function(e,i){var t,n=this,a=n.config,l=c(a.elem);return 1');return 0No data
  • '),e},u=function(r,e){return layui.each(e,function(e,i){var t,n=i[s.children]&&0",(t="href"in i?''+l+"":l,n?'
    '+t+("parent"===o?'':"group"===o&&d.isAllowSpread?'':"")+"
    ":'
    '+t+"
    "),""].join(""))).data("item",i),n&&(a=c('
    '),t=c("
      "),"parent"===o?(a.append(u(t,i[s.children])),l.append(a)):l.append(u(t,i[s.children]))),r.append(l))}),r},a=['
      ',"
      "].join("");!(e="contextmenu"!==d.trigger&&!lay.isTopElem(d.elem[0])?e:!0)&&d.elem.data(y+"_opened")||(l.elemView=c("."+g+'[lay-id="'+d.id+'"]'),"reloadData"===i&&l.elemView.length?l.elemView.html(d.content||n()):(l.elemView=c(a),l.elemView.append(d.content||n()),d.className&&l.elemView.addClass(d.className),d.style&&l.elemView.attr("style",d.style),h.thisId=d.id,l.remove(),t.append(l.elemView),d.elem.data(y+"_opened",!0),e=d.shade?'
      ':"",l.elemView.before(e),"mouseenter"===d.trigger&&l.elemView.on("mouseenter",function(){clearTimeout(f.timer)}).on("mouseleave",function(){l.delayRemove()})),l.position(),(f.prevElem=l.elemView).data("prevElem",d.elem),l.elemView.find(".layui-menu").on(o,function(e){layui.stope(e)}),l.elemView.find(".layui-menu li").on("click",function(e){var i=c(this),t=i.data("item")||{},n=t[s.children]&&0n.width()&&(t.addClass(x),(i=t[0].getBoundingClientRect()).left<0)&&t.removeClass(x),i.bottom>n.height())&&t.eq(0).css("margin-top",-(i.bottom-n.height()+5))}).on("mouseleave",t,function(e){var i=c(this).children("."+C);i.removeClass(x),i.css("margin-top",0)}),h.close=function(e){e=f.getThis(e);return e?(e.remove(),f.call(e)):this},h.reload=function(e,i,t){e=f.getThis(e);return e?(e.reload(i,t),f.call(e)):this},h.reloadData=function(){var t=c.extend([],arguments),n=(t[2]="reloadData",new RegExp("^("+["data","templet","content"].join("|")+")$"));return layui.each(t[1],function(e,i){n.test(e)||delete t[1][e]}),h.reload.apply(null,t)},h.render=function(e){e=new E(e);return f.call(e)},e(r,h)});layui.define(["jquery","lay"],function(e){"use strict";var g=layui.$,x=layui.lay,m={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=g.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,i,e,t)}},i="slider",f="layui-disabled",b="layui-slider-bar",T="layui-slider-wrap",w="layui-slider-wrap-btn",M="layui-slider-tips",L="layui-slider-input-txt",E="layui-slider-hover",t=function(e){var t=this;t.index=++m.index,t.config=g.extend({},t.config,m.config,e),t.render()};t.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,tipsAlways:!1,input:!1,range:!1,height:200,disabled:!1,theme:"#16baaa"},t.prototype.render=function(){var n=this,a=n.config,e=g(a.elem);if(1a.max&&(a.value=a.max),l=Math.floor((a.value-a.min)/(a.max-a.min)*100)+"%");var t,e=a.disabled?"#c2c2c2":a.theme,i='
      '+(a.tips?'
      ":"")+'
      '+(a.range?'
      ':"")+"
      ",l=g(a.elem),s=l.next(".layui-slider");if(s[0]&&s.remove(),n.elemTemp=g(i),a.range?(n.elemTemp.find("."+T).eq(0).data("value",a.value[0]),n.elemTemp.find("."+T).eq(1).data("value",a.value[1])):n.elemTemp.find("."+T).data("value",a.value),l.html(n.elemTemp),"vertical"===a.type&&n.elemTemp.height(a.height+"px"),a.showstep){for(var o=(a.max-a.min)/a.step,r="",u=1;u<1+o;u++){var d=100*u/o;d<100&&(r+='
      ')}n.elemTemp.append(r)}function c(e){e=e.parent().data("value"),e=a.setTips?a.setTips(e):e;n.elemTemp.find("."+M).html(e)}function v(e){var t="vertical"===a.type?a.height:n.elemTemp[0].offsetWidth,i=n.elemTemp.find("."+T);return("vertical"===a.type?t-e.parent()[0].offsetTop-i.height():e.parent()[0].offsetLeft)/t*100}function p(e){"vertical"===a.type?n.elemTemp.find("."+M).css({bottom:e+"%","margin-bottom":"20px",display:"inline-block"}):n.elemTemp.find("."+M).css({left:e+"%",display:"inline-block"})}a.input&&!a.range&&(e=g('
      '),l.css("position","relative"),l.append(e),l.find("."+L).children("input").val(a.value),"vertical"===a.type?e.css({left:0,top:-48}):n.elemTemp.css("margin-right",e.outerWidth()+15)),a.disabled?(n.elemTemp.addClass(f),n.elemTemp.find("."+w).addClass(f)):n.slide(),a.tips&&(a.tipsAlways?(c(s=n.elemTemp.find("."+w)),p(v(s))):n.elemTemp.find("."+w).on("mouseover",function(){c(g(this));var e=v(g(this));clearTimeout(t),t=setTimeout(function(){p(e)},300)}).on("mouseout",function(){clearTimeout(t),a.tipsAlways||n.elemTemp.find("."+M).css("display","none")}))},t.prototype.slide=function(e,t,i){var u=this,d=u.config,c=u.elemTemp,v=function(){return"vertical"===d.type?d.height:c[0].offsetWidth},p=c.find("."+T),o=c.next(".layui-slider-input"),r=o.children("."+L).children("input").val(),m=100/((d.max-d.min)/Math.ceil(d.step)),f=function(e,t,i){e=(e=100<(e=100n[1]&&n.reverse(),u.value=d.range?n:l,d.change&&d.change(u.value),"done"===i&&d.done&&d.done(u.value)},h=function(e){var t=e/v()*100/m,i=Math.round(t)*m;return i=e==v()?Math.ceil(t)*m:i},y=g(['
      v()?v():t)/v()*100/m;f(t,o),r.addClass(E),c.find("."+M).show(),e.preventDefault()},n=function(e){r.removeClass(E),d.tipsAlways||setTimeout(function(){c.find("."+M).hide()},e)},a=function(){n&&n(x.touchEventsSupported()?1e3:0),y.remove(),d.done&&d.done(u.value),x.touchEventsSupported()&&(t[0].removeEventListener("touchmove",i,!!x.passiveSupported&&{passive:!1}),t[0].removeEventListener("touchend",a),t[0].removeEventListener("touchcancel",a))},g("#LAY-slider-moving")[0]||g("body").append(y),y.on("mousemove",i),y.on("mouseup",a).on("mouseleave",a),x.touchEventsSupported()&&(t[0].addEventListener("touchmove",i,!!x.passiveSupported&&{passive:!1}),t[0].addEventListener("touchend",a),t[0].addEventListener("touchcancel",a))})}),c.on("click",function(e){var t=g("."+w),i=g(this);!t.is(event.target)&&0===t.has(event.target).length&&t.length&&(i=(t=(t=(t="vertical"===d.type?v()-e.clientY+i.offset().top-g(window).scrollTop():e.clientX-i.offset().left-g(window).scrollLeft())<0?0:t)>v()?v():t)/v()*100/m,t=d.range?"vertical"===d.type?Math.abs(t-parseInt(g(p[0]).css("bottom")))>Math.abs(t-parseInt(g(p[1]).css("bottom")))?1:0:Math.abs(t-p[0].offsetLeft)>Math.abs(t-p[1].offsetLeft)?1:0:0,f(i,t,"done"),e.preventDefault())}),o.children(".layui-slider-input-btn").children("i").each(function(t){g(this).on("click",function(){r=o.children("."+L).children("input").val();var e=((r=1==t?r-d.stepd.max?d.max:Number(r)+d.step)-d.min)/(d.max-d.min)*100/m;f(e,0,"done")})});var n=function(){var e=this.value,e=(e=(e=(e=isNaN(e)?0:e)d.max?d.max:e,((this.value=e)-d.min)/(d.max-d.min)*100/m);f(e,0,"done")};o.children("."+L).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),n.call(this))}).on("change",n)},t.prototype.events=function(){this.config},m.render=function(e){e=new t(e);return function(){var i=this,n=i.config;return{setValue:function(e,t){return e=(e=e>n.max?n.max:e)',"",'','',"","","
      "].join("")),t=i.elem=k(i.elem);i.size&&o.addClass("layui-colorpicker-"+i.size),t.addClass("layui-inline").html(e.elemColorBox=o),i.id="id"in i?i.id:t.attr("id")||e.index,e.color=e.elemColorBox.find("."+C)[0].style.background,e.events()},d.prototype.renderPicker=function(){var o,e=this,i=e.config,t=e.elemColorBox[0],r=e.elemPicker=k(['
      ','
      ','
      ','
      ','
      ','
      ',"
      ",'
      ','
      ',"
      ","
      ",'
      ','
      ','
      ',"
      ","
      ",i.predefine?(o=['
      '],layui.each(i.colors,function(e,i){o.push(['
      ','
      ',"
      "].join(""))}),o.push("
      "),o.join("")):"",'
      ','
      ','',"
      ",'
      ','','',"","
      "].join(""));e.elemColorBox.find("."+C)[0];k(a)[0]&&k(a).data("index")==e.index?e.removePicker(d.thisElemInd):(e.removePicker(d.thisElemInd),k("body").append(r)),n.thisId=i.id,d.thisElemInd=e.index,d.thisColor=t.style.background,e.position(),e.pickerEvents()},d.prototype.removePicker=function(e){var i=this.config,e=k("#layui-colorpicker"+(e||this.index));return e[0]&&(e.remove(),delete n.thisId,"function"==typeof i.close)&&i.close(this.color),this},d.prototype.position=function(){var e=this,i=e.config;return r.position(e.bindElem||e.elemColorBox[0],e.elemPicker[0],{position:i.position,align:"center"}),e},d.prototype.val=function(){var e,i=this,o=(i.config,i.elemColorBox.find("."+C)),t=i.elemPicker.find("."+M),r=o[0].style.backgroundColor;r?(e=Y(F(r)),o=o.attr("lay-type"),i.select(e.h,e.s,e.b),"torgb"===o?t.find("input").val(r):"rgba"===o?(o=F(r),3===(r.match(/[0-9]{1,3}/g)||[]).length?(t.find("input").val("rgba("+o.r+", "+o.g+", "+o.b+", 1)"),i.elemPicker.find("."+D).css("left",280)):(t.find("input").val(r),r=280*r.slice(r.lastIndexOf(",")+1,r.length-1),i.elemPicker.find("."+D).css("left",r)),i.elemPicker.find("."+T)[0].style.background="linear-gradient(to right, rgba("+o.r+", "+o.g+", "+o.b+", 0), rgb("+o.r+", "+o.g+", "+o.b+"))"):t.find("input").val("#"+j(e))):(i.select(0,100,100),t.find("input").val(""),i.elemPicker.find("."+T)[0].style.background="",i.elemPicker.find("."+D).css("left",280))},d.prototype.side=function(){var n=this,l=n.config,c=n.elemColorBox.find("."+C),a=c.attr("lay-type"),s=n.elemPicker.find(".layui-colorpicker-side"),e=n.elemPicker.find("."+B),d=n.elemPicker.find("."+I),t=n.elemPicker.find("."+E),u=n.elemPicker.find("."+T),f=n.elemPicker.find("."+D),p=e[0].offsetTop/180*360,h=100-(t[0].offsetTop+3)/180*100,g=(t[0].offsetLeft+3)/260*100,v=Math.round(f[0].offsetLeft/280*100)/100,y=n.elemColorBox.find("."+w),i=n.elemPicker.find(".layui-colorpicker-pre").children("div"),m=function(e,i,o,t){n.select(e,i,o);var r=X({h:e,s:i,b:o}),e=j({h:e,s:i,b:o}),i=n.elemPicker.find("."+M).find("input");y.addClass(x).removeClass(P),c[0].style.background="rgb("+r.r+", "+r.g+", "+r.b+")","torgb"===a?i.val("rgb("+r.r+", "+r.g+", "+r.b+")"):"rgba"===a?(f.css("left",280*t),i.val("rgba("+r.r+", "+r.g+", "+r.b+", "+t+")"),c[0].style.background="rgba("+r.r+", "+r.g+", "+r.b+", "+t+")",u[0].style.background="linear-gradient(to right, rgba("+r.r+", "+r.g+", "+r.b+", 0), rgb("+r.r+", "+r.g+", "+r.b+"))"):i.val("#"+e),l.change&&l.change(k.trim(n.elemPicker.find("."+M).find("input").val()))},o=k(['
      '].join("")),b=function(e){k("#LAY-colorpicker-moving")[0]||k("body").append(o),o.on("mousemove",e),o.on("mouseup",function(){o.remove()}).on("mouseleave",function(){o.remove()})};e.on("mousedown",function(e){var t=this.offsetTop,r=e.clientY;b(function(e){var i=t+(e.clientY-r),o=s[0].offsetHeight,o=(i=o<(i=i<0?0:i)?o:i)/180*360;m(p=o,g,h,v),e.preventDefault()}),e.preventDefault()}),s.on("click",function(e){var i=e.clientY-k(this).offset().top+L.scrollTop(),i=(i=(i=i<0?0:i)>this.offsetHeight?this.offsetHeight:i)/180*360;m(p=i,g,h,v),e.preventDefault()}),t.on("mousedown",function(e){var n=this.offsetTop,l=this.offsetLeft,c=e.clientY,a=e.clientX;layui.stope(e),b(function(e){var i=n+(e.clientY-c),o=l+(e.clientX-a),t=d[0].offsetHeight-3,r=d[0].offsetWidth-3,r=((o=r<(o=o<-3?-3:o)?r:o)+3)/260*100,o=100-((i=t<(i=i<-3?-3:i)?t:i)+3)/180*100;m(p,g=r,h=o,v),e.preventDefault()}),e.preventDefault()}),d.on("mousedown",function(e){var i=e.clientY-k(this).offset().top-3+L.scrollTop(),o=e.clientX-k(this).offset().left-3+L.scrollLeft(),o=((i=i<-3?-3:i)>this.offsetHeight-3&&(i=this.offsetHeight-3),((o=(o=o<-3?-3:o)>this.offsetWidth-3?this.offsetWidth-3:o)+3)/260*100),i=100-(i+3)/180*100;m(p,g=o,h=i,v),layui.stope(e),e.preventDefault(),t.trigger(e,"mousedown")}),f.on("mousedown",function(e){var t=this.offsetLeft,r=e.clientX;b(function(e){var i=t+(e.clientX-r),o=u[0].offsetWidth,o=(o<(i=i<0?0:i)&&(i=o),Math.round(i/280*100)/100);m(p,g,h,v=o),e.preventDefault()}),e.preventDefault()}),u.on("click",function(e){var i=e.clientX-k(this).offset().left,i=((i=i<0?0:i)>this.offsetWidth&&(i=this.offsetWidth),Math.round(i/280*100)/100);m(p,g,h,v=i),e.preventDefault()}),i.each(function(){k(this).on("click",function(){k(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e=this.style.backgroundColor,i=Y(F(e)),o=e.slice(e.lastIndexOf(",")+1,e.length-1);p=i.h,g=i.s,h=i.b,3===(e.match(/[0-9]{1,3}/g)||[]).length&&(o=1),v=o,m(i.h,i.s,i.b,o)})}),r.touchEventsSupported()&&layui.each([{elem:s,eventType:"click"},{elem:u,eventType:"click"},{elem:d,eventType:"mousedown"}],function(e,t){r.touchSwipe(t.elem,{onTouchMove:function(e){var i,o;e=e,i=t.eventType,e=e.touches[0],(o=document.createEvent("MouseEvent")).initMouseEvent(i,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(o)}})})},d.prototype.select=function(e,i,o,t){this.config;var r=j({h:e,s:100,b:100}),e=(j({h:e,s:i,b:o}),e/360*180),o=180-o/100*180-3,i=i/100*260-3;this.elemPicker.find("."+B).css("top",e),this.elemPicker.find("."+I)[0].style.background="#"+r,this.elemPicker.find("."+E).css({top:o,left:i})},d.prototype.pickerEvents=function(){var c=this,a=c.config,s=c.elemColorBox.find("."+C),d=c.elemPicker.find("."+M+" input"),o={clear:function(e){s[0].style.background="",c.elemColorBox.find("."+w).removeClass(x).addClass(P),c.color="",a.done&&a.done(""),c.removePicker()},confirm:function(e,i){var o,t,r,n,l=k.trim(d.val());-1>16,g:(65280&r)>>8,b:255&r},t=Y(n),s[0].style.background=o="#"+j(t),c.elemColorBox.find("."+w).removeClass(P).addClass(x)),"change"===i?(c.select(t.h,t.s,t.b,i),a.change&&a.change(o)):(c.color=l,a.done&&a.done(l),c.removePicker())}};c.elemPicker.on("click","*[colorpicker-events]",function(){var e=k(this),i=e.attr("colorpicker-events");o[i]&&o[i].call(this,e)}),d.on("keyup",function(e){var i=k(this);o.confirm.call(this,i,13===e.keyCode?null:"change")})},d.prototype.events=function(){var e=this;e.config;e.elemColorBox.on("click",function(){e.renderPicker(),k(a)[0]&&(e.val(),e.side())})},s.on(i,function(e){var i,o,t;n.thisId&&(i=l.getThis(n.thisId))&&(o=i.config,t=i.elemColorBox.find("."+C),k(e.target).hasClass(c)||k(e.target).parents("."+c)[0]||k(e.target).hasClass(a.replace(/\./g,""))||k(e.target).parents(a)[0]||i.elemPicker&&(i.color?(e=Y(F(i.color)),i.select(e.h,e.s,e.b)):i.elemColorBox.find("."+w).removeClass(x).addClass(P),t[0].style.background=i.color||"","function"==typeof o.cancel&&o.cancel(i.color),i.removePicker()))}),L.on("resize",function(){if(n.thisId){var e=l.getThis(n.thisId);if(e)return!(!e.elemPicker||!k(a)[0])&&void e.position()}}),l.that={},l.getThis=function(e){var i=l.that[e];return i||o.error(e?t+" instance with ID '"+e+"' not found":"ID argument required"),i},n.render=function(e){e=new d(e);return l.call(e)},e(t,n)});layui.define("jquery",function(t){"use strict";var u=layui.$,d=(layui.hint(),layui.device()),c="element",r="layui-this",h="layui-show",o=".layui-tab-title",i=function(){this.config={}},y=(i.prototype.set=function(t){return u.extend(!0,this.config,t),this},i.prototype.on=function(t,i){return layui.onevent.call(this,c,t,i)},i.prototype.tabAdd=function(t,i){var a,e=u(".layui-tab[lay-filter="+t+"]"),l=e.children(o),n=l.children(".layui-tab-bar"),e=e.children(".layui-tab-content"),s=""+(i.title||"unnaming")+"";return n[0]?n.before(s):l.append(s),e.append('
      '+(i.content||"")+"
      "),i.change&&this.tabChange(t,i.id),l.data("LAY_TAB_CHANGE",i.change),C.tabAuto(i.change?"change":null),this},i.prototype.tabDelete=function(t,i){t=u(".layui-tab[lay-filter="+t+"]").children(o).find('>li[lay-id="'+i+'"]');return C.tabDelete(null,t),this},i.prototype.tabChange=function(t,i){t=u(".layui-tab[lay-filter="+t+"]").children(o).find('>li[lay-id="'+i+'"]');return C.tabClick.call(t[0],{liElem:t}),this},i.prototype.tab=function(a){a=a||{},e.on("click",a.headerElem,function(t){var i=u(this).index();C.tabClick.call(this,{index:i,options:a})})},i.prototype.progress=function(t,i){var a="layui-progress",t=u("."+a+"[lay-filter="+t+"]").find("."+a+"-bar"),a=t.find("."+a+"-text");return t.css("width",function(){return/^.+\/.+$/.test(i)?100*new Function("return "+i)()+"%":i}).attr("lay-percent",i),a.text(i),this},".layui-nav"),f="layui-nav-item",p="layui-nav-bar",b="layui-nav-tree",v="layui-nav-child",m="layui-nav-more",g="layui-anim layui-anim-upbit",C={tabClick:function(t){var i=(t=t||{}).options||{},a=t.liElem||u(this),e=i.headerElem?a.parent():a.parents(".layui-tab").eq(0),i=i.bodyElem?u(i.bodyElem):e.children(".layui-tab-content").children(".layui-tab-item"),l=a.find("a"),l="javascript:;"!==l.attr("href")&&"_blank"===l.attr("target"),n="string"==typeof a.attr("lay-unselect"),s=e.attr("lay-filter"),t="index"in t?t.index:a.parent().children("li").index(a);l||n||(a.addClass(r).siblings().removeClass(r),i.eq(t).addClass(h).siblings().removeClass(h)),layui.event.call(this,c,"tab("+s+")",{elem:e,index:t})},tabDelete:function(t,i){var i=i||u(this).parent(),a=i.parent().children("li").index(i),e=i.closest(".layui-tab"),l=e.children(".layui-tab-content").children(".layui-tab-item"),n=e.attr("lay-filter");i.hasClass(r)&&(i.next()[0]&&i.next().is("li")?C.tabClick.call(i.next()[0],{index:a+1}):i.prev()[0]&&i.prev().is("li")&&C.tabClick.call(i.prev()[0],null,a-1)),i.remove(),l.eq(a).remove(),setTimeout(function(){C.tabAuto()},50),layui.event.call(this,c,"tabDelete("+n+")",{elem:e,index:a})},tabAuto:function(l){var n="layui-tab-more",s="layui-tab-bar",o="layui-tab-close",c=this;u(".layui-tab").each(function(){var t,i=u(this),a=i.children(".layui-tab-title"),e=(i.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),e=u('');c===window&&d.ie,i.attr("lay-allowclose")&&a.find("li").each(function(){var t,i=u(this);i.find("."+o)[0]||((t=u('')).on("click",C.tabDelete),i.append(t))}),"string"!=typeof i.attr("lay-unauto")&&(a.prop("scrollWidth")>a.outerWidth()+1||a.find("li").length&&a.height()>(t=a.find("li").eq(0).height())+t/2?("change"===l&&a.data("LAY_TAB_CHANGE")&&a.addClass(n),a.find("."+s)[0]||(a.append(e),i.attr("overflow",""),e.on("click",function(t){var i=a.hasClass(n);a[i?"removeClass":"addClass"](n)}))):(a.find("."+s).remove(),i.removeAttr("overflow")))})},hideTabMore:function(t){var i=u(".layui-tab-title");!0!==t&&"tabmore"===u(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=u(this),i=t.closest(y),a=i.attr("lay-filter"),e=t.parent(),l=t.siblings("."+v),n="string"==typeof e.attr("lay-unselect");if("javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||n||l[0]||(i.find("."+r).removeClass(r),e.addClass(r)),i.hasClass(b)){var n=f+"ed",s=!e.hasClass(n),o=function(){u(this).css({display:""}),i.children("."+p).css({opacity:0})};if(l.is(":animated"))return;l.removeClass(g),l[0]&&(s?(l.slideDown(200,o),e.addClass(n)):(e.removeClass(n),l.show().slideUp(200,o)),"string"!=typeof i.attr("lay-accordion")&&"all"!==i.attr("lay-shrink")||((s=e.siblings("."+n)).removeClass(n),s.children("."+v).show().stop().slideUp(200,o)))}layui.event.call(this,c,"nav("+a+")",t)},collapse:function(){var t=u(this),i=t.find(".layui-colla-icon"),a=t.siblings(".layui-colla-content"),e=t.parents(".layui-collapse").eq(0),l=e.attr("lay-filter"),n="none"===a.css("display");"string"==typeof e.attr("lay-accordion")&&((e=e.children(".layui-colla-item").children("."+h)).siblings(".layui-colla-title").children(".layui-colla-icon").html(""),e.removeClass(h)),a[n?"addClass":"removeClass"](h),i.html(n?"":""),layui.event.call(this,c,"collapse("+l+")",{title:t,content:a,show:n})}},a=(i.prototype.render=i.prototype.init=function(t,i){var a=i?'[lay-filter="'+i+'"]':"",i={tab:function(){C.tabAuto.call({})},nav:function(){var s={},o={},c={},r="layui-nav-title";u(y+a).each(function(t){var i=u(this),a=u(''),e=i.find("."+f);i.find("."+p)[0]||(i.append(a),(i.hasClass(b)?e.find("dd,>."+r):e).on("mouseenter",function(){!function(t,i,a){var e,l=u(this),n=l.find("."+v);i.hasClass(b)?n[0]||(e=l.children("."+r),t.css({top:l.offset().top-i.offset().top,height:(e[0]?e:l).outerHeight(),opacity:1})):(n.addClass(g),n.hasClass("layui-nav-child-c")&&n.css({left:-(n.outerWidth()-l.width())/2}),n[0]?t.css({left:t.position().left+t.width()/2,width:0,opacity:0}):t.css({left:l.position().left+parseFloat(l.css("marginLeft")),top:l.position().top+l.height()-t.height()}),s[a]=setTimeout(function(){t.css({width:n[0]?0:l.width(),opacity:n[0]?0:1})},d.ie&&d.ie<10?0:200),clearTimeout(c[a]),"block"===n.css("display")&&clearTimeout(o[a]),o[a]=setTimeout(function(){n.addClass(h),l.find("."+m).addClass(m+"d")},300))}.call(this,a,i,t)}).on("mouseleave",function(){i.hasClass(b)?a.css({height:0,opacity:0}):(clearTimeout(o[t]),o[t]=setTimeout(function(){i.find("."+v).removeClass(h),i.find("."+m).removeClass(m+"d")},300))}),i.on("mouseleave",function(){clearTimeout(s[t]),c[t]=setTimeout(function(){i.hasClass(b)||a.css({width:0,left:a.position().left+a.width()/2,opacity:0})},200)})),e.find("a").each(function(){var t=u(this);t.parent();t.siblings("."+v)[0]&&!t.children("."+m)[0]&&t.append(''),t.off("click",C.clickThis).on("click",C.clickThis)})})},breadcrumb:function(){u(".layui-breadcrumb"+a).each(function(){var t=u(this),i="lay-separator",a=t.attr(i)||"/",e=t.find("a");e.next("span["+i+"]")[0]||(e.each(function(t){t!==e.length-1&&u(this).after(""+a+"")}),t.css("visibility","visible"))})},progress:function(){var e="layui-progress";u("."+e+a).each(function(){var t=u(this),i=t.find(".layui-progress-bar"),a=i.attr("lay-percent");i.css("width",function(){return/^.+\/.+$/.test(a)?100*new Function("return "+a)()+"%":a}),t.attr("lay-showpercent")&&setTimeout(function(){i.html(''+a+"")},350)})},collapse:function(){u(".layui-collapse"+a).each(function(){u(this).find(".layui-colla-item").each(function(){var t=u(this),i=t.find(".layui-colla-title"),t="none"===t.find(".layui-colla-content").css("display");i.find(".layui-colla-icon").remove(),i.append(''+(t?"":"")+""),i.off("click",C.collapse).on("click",C.collapse)})})}};return i[t]?i[t]():layui.each(i,function(t,i){i()})},new i),e=u(document);u(function(){a.render()}),e.on("click",".layui-tab-title li",C.tabClick),u(window).on("resize",C.tabAuto),t(c,a)});layui.define(["lay","layer"],function(e){"use strict";var x=layui.$,a=layui.lay,i=layui.layer,b=layui.device(),t="upload",r="layui_"+t+"_index",o={config:{},index:layui[t]?layui[t].index+1e4:0,set:function(e){var i=this;return i.config=x.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,t,e,i)}},l=function(){var i=this,e=i.config.id;return{upload:function(e){i.upload.call(i,e)},reload:function(e){i.reload.call(i,e)},config:(l.that[e]=i).config}},u="layui-upload-file",f="layui-upload-form",F="layui-upload-iframe",w="layui-upload-choose",L="UPLOADING",j=function(e){var i=this;i.index=++o.index,i.config=x.extend({},i.config,o.config,e),i.render()};j.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",force:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1,text:{"cross-domain":"Cross-domain requests are not supported","data-format-error":"Please return JSON data format","check-error":"",error:"","limit-number":null,"limit-size":null}},j.prototype.reload=function(e){var i=this;i.config=x.extend({},i.config,e),i.render(!0)},j.prototype.render=function(e){var i=this,t=i.config,n=x(t.elem);return 1"].join("")),n=i.elem.next();(n.hasClass(u)||n.hasClass(f))&&n.remove(),b.ie&&b.ie<10&&i.elem.wrap('
      '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(t),b.ie&&b.ie<10&&e.initIE()},j.prototype.initIE=function(){var t,e=this.config,i=x(''),n=x(['
      ',"
      "].join(""));x("#"+F)[0]||x("body").append(i),e.elem.next().hasClass(f)||(this.elemFile.wrap(n),e.elem.next("."+f).append((t=[],layui.each(e.data,function(e,i){i="function"==typeof i?i():i,t.push('')}),t.join(""))))},j.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},j.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},j.prototype.preview=function(n){window.FileReader&&layui.each(this.chooseFiles,function(e,i){var t=new FileReader;t.readAsDataURL(i),t.onload=function(){n&&n(e,i,this.result)}})},j.prototype.upload=function(e,i){var t,n,a,o,u=this,f=u.config,c=f.text||{},l=u.elemFile[0],s=function(){return e||u.files||u.chooseFiles||l.files},r=function(){var a=0,o=0,l=s(),r=function(){f.multiple&&a+o===u.fileLength&&"function"==typeof f.allDone&&f.allDone({total:u.fileLength,successful:a,failed:o})},t=function(t){var n=new FormData,i=function(e){t.unified?layui.each(l,function(e,i){delete i[L]}):delete e[L]};if(layui.each(f.data,function(e,i){i="function"==typeof i?t.unified?i():i(t.index,t.file):i,n.append(e,i)}),t.unified)layui.each(l,function(e,i){i[L]||(i[L]=!0,n.append(f.field,i))});else{if(t.file[L])return;n.append(f.field,t.file),t.file[L]=!0}var e={url:f.url,type:"post",data:n,dataType:f.dataType||"json",contentType:!1,processData:!1,headers:f.headers||{},success:function(e){f.unified?a+=u.fileLength:a++,p(t.index,e),r(t.index),i(t.file)},error:function(e){f.unified?o+=u.fileLength:o++,u.msg(c.error||["Upload failed, please try again.","status: "+(e.status||"")+" - "+(e.statusText||"error")].join("
      ")),m(t.index),r(t.index),i(t.file)}};"function"==typeof f.progress&&(e.xhr=function(){var e=x.ajaxSettings.xhr();return e.upload.addEventListener("progress",function(e){var i;e.lengthComputable&&(i=Math.floor(e.loaded/e.total*100),f.progress(i,(f.item||f.elem)[0],e,t.index))}),e}),x.ajax(e)};f.unified?t({unified:!0,index:0}):layui.each(l,function(e,i){t({index:e,file:i})})},d=function(){var n=x("#"+F);u.elemFile.parent().submit(),clearInterval(j.timer),j.timer=setInterval(function(){var e,i=n.contents().find("body");try{e=i.text()}catch(t){u.msg(c["cross-domain"]),clearInterval(j.timer),m()}e&&(clearInterval(j.timer),i.html(""),p(0,e))},30)},p=function(e,i){if(u.elemFile.next("."+w).remove(),l.value="","json"===f.force&&"object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},u.msg(c["data-format-error"])}"function"==typeof f.done&&f.done(i,e||0,function(e){u.upload(e)})},m=function(e){f.auto&&(l.value=""),"function"==typeof f.error&&f.error(e||0,function(e){u.upload(e)})},h=f.exts,g=(n=[],layui.each(e||u.chooseFiles,function(e,i){n.push(i.name)}),n),v={preview:function(e){u.preview(e)},upload:function(e,i){var t={};t[e]=i,u.upload(t)},pushFile:function(){return u.files=u.files||{},layui.each(u.chooseFiles,function(e,i){u.files[e]=i}),u.files},resetFile:function(e,i,t){i=new File([i],t);u.files=u.files||{},u.files[e]=i}},y={file:"\u6587\u4ef6",images:"\u56fe\u7247",video:"\u89c6\u9891",audio:"\u97f3\u9891"}[f.accept]||"\u6587\u4ef6",g=0===g.length?l.value.match(/[^\/\\]+\..+/g)||[]:g;if(0!==g.length){switch(f.accept){case"file":layui.each(g,function(e,i){if(h&&!RegExp(".\\.("+h+")$","i").test(escape(i)))return t=!0});break;case"video":layui.each(g,function(e,i){if(!RegExp(".\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(i)))return t=!0});break;case"audio":layui.each(g,function(e,i){if(!RegExp(".\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(i)))return t=!0});break;default:layui.each(g,function(e,i){if(!RegExp(".\\.("+(h||"jpg|png|gif|bmp|jpeg|svg")+")$","i").test(escape(i)))return t=!0})}if(t)return u.msg(c["check-error"]||"\u9009\u62e9\u7684"+y+"\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),l.value="";if("choose"!==i&&!f.auto||(f.choose&&f.choose(v),"choose"!==i)){if(u.fileLength=(a=0,y=s(),layui.each(y,function(){a++}),a),f.number&&u.fileLength>f.number)return u.msg("function"==typeof c["limit-number"]?c["limit-number"](f,u.fileLength):"\u540c\u65f6\u6700\u591a\u53ea\u80fd\u4e0a\u4f20: "+f.number+" \u4e2a\u6587\u4ef6
      \u60a8\u5f53\u524d\u5df2\u7ecf\u9009\u62e9\u4e86: "+u.fileLength+" \u4e2a\u6587\u4ef6");if(01024*f.size&&(i=1<=(i=f.size/1024)?i.toFixed(2)+"MB":f.size+"KB",l.value="",o=i)}),o)return u.msg("function"==typeof c["limit-size"]?c["limit-size"](f,o):"\u6587\u4ef6\u5927\u5c0f\u4e0d\u80fd\u8d85\u8fc7 "+o);if(!f.before||!1!==f.before(v))b.ie?(9'+e+"")};a.elem.off("upload.start").on("upload.start",function(){var e=x(this);n.config.item=e,n.elemFile[0].click()}),b.ie&&b.ie<10||a.elem.off("upload.over").on("upload.over",function(){x(this).attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){x(this).removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(e,i){var t=x(this),i=i.originalEvent.dataTransfer.files||[];t.removeAttr("lay-over"),o(i),a.auto?n.upload():l(i)}),n.elemFile.on("change",function(){var e=this.files||[];0!==e.length&&(o(e),a.auto?n.upload():l(e))}),a.bindAction.off("upload.action").on("upload.action",function(){n.upload()}),a.elem.data(r)||(a.elem.on("click",function(){n.isFile()||x(this).trigger("upload.start")}),a.drag&&a.elem.on("dragover",function(e){e.preventDefault(),x(this).trigger("upload.over")}).on("dragleave",function(e){x(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),x(this).trigger("upload.drop",e)}),a.bindAction.on("click",function(){x(this).trigger("upload.action")}),a.elem.data(r,a.id))},l.that={},l.getThis=function(e){var i=l.that[e];return i||hint.error(e?t+" instance with ID '"+e+"' not found":"ID argument required"),i},o.render=function(e){e=new j(e);return l.call(e)},e(t,o)});layui.define(["lay","layer","util"],function(e){"use strict";var C=layui.$,h=layui.layer,d=layui.util,l=layui.hint(),w=(layui.device(),"form"),o=".layui-form",N="layui-this",T="layui-hide",$="layui-disabled",t=function(){this.config={verify:{required:function(e){if(!/[\S]+/.test(e))return"\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a"},phone:function(e){if(e&&!/^1\d{10}$/.test(e))return"\u624b\u673a\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e"},email:function(e){if(e&&!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e))return"\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e"},url:function(e){if(e&&!/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/.test(e))return"\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e"},number:function(e){if(e&&isNaN(e))return"\u53ea\u80fd\u586b\u5199\u6570\u5b57"},date:function(e){if(e&&!/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/.test(e))return"\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e"},identity:function(e){if(e&&!/(^\d{15}$)|(^\d{17}(x|X|\d)$)/.test(e))return"\u8eab\u4efd\u8bc1\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e"}},autocomplete:null}},i=(t.prototype.set=function(e){return C.extend(!0,this.config,e),this},t.prototype.verify=function(e){return C.extend(!0,this.config.verify,e),this},t.prototype.getFormElem=function(e){return C(o+(e?'[lay-filter="'+e+'"]':""))},t.prototype.on=function(e,t){return layui.onevent.call(this,w,e,t)},t.prototype.val=function(e,i){return this.getFormElem(e).each(function(e,t){var a=C(this);layui.each(i,function(e,t){var i,e=a.find('[name="'+e+'"]');e[0]&&("checkbox"===(i=e[0].type)?e[0].checked=t:"radio"===i?e.each(function(){this.checked=this.value==t}):e.val(t))})}),r.render(null,e),this.getValue(e)},t.prototype.getValue=function(e,t){t=t||this.getFormElem(e);var a={},n={},e=t.find("input,select,textarea");return layui.each(e,function(e,t){var i;C(this);t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name&&(/^.*\[\]$/.test(t.name)&&(i=t.name.match(/^(.*)\[\]$/g)[0],a[i]=0|a[i],i=t.name.replace(/^(.*)\[\]$/,"$1["+a[i]+++"]")),/^(checkbox|radio)$/.test(t.type)&&!t.checked||(n[i||t.name]=t.value))}),n},t.prototype.render=function(e,t){var i=this.config,a=C(o+(t?'[lay-filter="'+t+'"]':"")),n={input:function(e){var e=e||a.find("input,textarea"),t=(i.autocomplete&&e.attr("autocomplete",i.autocomplete),function(e,t){var i=e.val(),a=Number(i),n=Number(e.attr("step"))||1,l=Number(e.attr("min")),r=Number(e.attr("max")),s=Number(e.attr("lay-precision")),o="click"!==t&&""===i,c="init"===t;isNaN(a)||("click"===t&&(a=!!C(this).index()?a-n:a+n),t=function(e){return((e.toString().match(/\.(\d+$)/)||[])[1]||"").length},s=0<=s?s:Math.max(t(n),t(i)),o||(c||r<=(a=a<=l?l:a)&&(a=r),s&&(a=a.toFixed(s)),e.val(a)),e[(a'),e=layui.isArray(i.value)?i.value:[i.value],e=C((a=[],layui.each(e,function(e,t){a.push('')}),a.join(""))),n=(t.append(e),i.split&&t.addClass("layui-input-split"),i.className&&t.addClass(i.className),r.next("."+u)),l=(n[0]&&n.remove(),r.parent().hasClass(o)||r.wrap('
      '),r.next("."+c));l[0]?((n=l.find("."+u))[0]&&n.remove(),l.prepend(t),r.css("padding-right",function(){return(r.closest(".layui-input-group")[0]?0:l.outerWidth())+t.outerWidth()})):(t.addClass(c),r.after(t)),"auto"===i.show&&d(t,r.val()),"function"==typeof i.init&&i.init.call(this,r,i),r.on("input propertychange",function(){var e=this.value;"auto"===i.show&&d(t,e)}),r.on("blur",function(){"function"==typeof i.blur&&i.blur.call(this,r,i)}),e.on("click",function(){var e=r.attr("lay-filter");C(this).hasClass($)||("function"==typeof i.click&&i.click.call(this,r,i),layui.event.call(this,w,"input-affix("+e+")",{elem:r[0],affix:s,options:i}))})},f={eye:{value:"eye-invisible",click:function(e,t){var i="LAY_FORM_INPUT_AFFIX_SHOW",a=e.data(i);e.attr("type",a?"password":"text").data(i,!a),n({value:a?"eye-invisible":"eye"})}},clear:{value:"clear",click:function(e){e.val("").focus(),d(C(this).parent(),null)},show:"auto",disabled:e},number:{value:["up","down"],split:!0,className:"layui-input-number",disabled:r.is("[disabled]"),init:function(e){t.call(this,e,"init")},click:function(e){t.call(this,e,"click")},blur:function(e){t.call(this,e,"blur")}}};n()})},select:function(e){var p,c="\u8bf7\u9009\u62e9",m="layui-form-select",g="layui-select-title",x="layui-select-none",b="",e=e||a.find("select"),k=function(e,t){C(e.target).parent().hasClass(g)&&!t||(C("."+m).removeClass(m+"ed "+m+"up"),p&&b&&p.val(b)),p=null},u=function(a,e,t){var s,r,i,n,o,l,c=C(this),u=a.find("."+g),d=u.find("input"),f=a.find("dl"),h=f.children("dd"),y=f.children("dt"),v=this.selectedIndex;e||(r=c.attr("lay-search"),i=function(){var e=a.offset().top+a.outerHeight()+5-F.scrollTop(),t=f.outerHeight();v=c[0].selectedIndex,a.addClass(m+"ed"),h.removeClass(T),y.removeClass(T),s=null,h.removeClass(N),0<=v&&h.eq(v).addClass(N),e+t>F.height()&&t<=e&&a.addClass(m+"up"),o()},n=function(e){a.removeClass(m+"ed "+m+"up"),d.blur(),s=null,e||l(d.val(),function(e){var t=c[0].selectedIndex;e&&(b=C(c[0].options[t]).html(),0===t&&b===d.attr("placeholder")&&(b=""),d.val(b||""))})},o=function(){var e,t,i=f.children("dd."+N);i[0]&&(e=i.position().top,t=f.height(),i=i.height(),t\u65e0\u5339\u914d\u9879

      '):f.find("."+x).remove()},"keyup"),""===t&&(c.val(""),f.find("."+N).removeClass(N),(c[0].options[0]||{}).value||f.children("dd:eq(0)").addClass(N),f.find("."+x).remove()),o()}).on("blur",function(e){var t=c[0].selectedIndex;p=d,b=C(c[0].options[t]).text(),0===t&&b===d.attr("placeholder")&&(b=""),setTimeout(function(){l(d.val(),function(e){b||d.val("")},"blur")},200)})),h.on("click",function(){var e=C(this),t=e.attr("lay-value"),i=c.attr("lay-filter");return e.hasClass($)||(e.hasClass("layui-select-tips")?d.val(""):(d.val(e.text()),e.addClass(N)),e.siblings().removeClass(N),c.val(t).removeClass("layui-form-danger"),layui.event.call(this,w,"select("+i+")",{elem:c[0],value:t,othis:a}),n(!0)),!1}),a.find("dl>dt").on("click",function(e){return!1}),C(document).off("click",k).on("click",k))};e.each(function(e,t){var i=C(this),a=i.next("."+m),n=this.disabled,l=t.value,r=C(t.options[t.selectedIndex]),t=t.options[0];if("string"==typeof i.attr("lay-ignore"))return i.show();var s,o="string"==typeof i.attr("lay-search"),t=t&&!t.value&&t.innerHTML||c,r=C(['
      ','
      ','','
      ','
      ',(t=i.find("*"),s=[],layui.each(t,function(e,t){var i=t.tagName.toLowerCase();0!==e||t.value||"optgroup"===i?s.push("optgroup"===i?"
      "+t.label+"
      ":'
      '+C.trim(t.innerHTML)+"
      "):s.push('
      '+C.trim(t.innerHTML||c)+"
      ")}),0===s.length&&s.push('
      \u6ca1\u6709\u9009\u9879
      '),s.join("")+"
      "),"
      "].join(""));a[0]&&a.remove(),i.after(r),u.call(this,r,n,o)})},checkbox:function(e){var o={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],"switch":["layui-form-switch","layui-form-onswitch","switch"],SUBTRA:"layui-icon-indeterminate"},e=e||a.find("input[type=checkbox]");e.each(function(e,t){var i=C(this),a=i.attr("lay-skin")||"primary",n=d.escape(C.trim(t.title||(t.title=i.attr("lay-text")||""))),l=this.disabled,r=o[a]||o.checkbox,s=i.next("."+r[0]);if(s[0]&&s.remove(),i.next("[lay-checkbox]")[0]&&(n=i.next().html()||""),n="switch"===a?n.split("|"):[n],"string"==typeof i.attr("lay-ignore"))return i.show();l=C(['
      ",(s={checkbox:[n[0]?"
      "+n[0]+"
      ":"primary"===a?"":"
      ",''].join(""),"switch":"
      "+((t.checked?n[0]:n[1])||"")+"
      "})[a]||s.checkbox,"
      "].join(""));i.after(l),function(a,n){var l=C(this);a.on("click",function(){var e=C(this),t=l.attr("lay-filter"),e=e.next("*[lay-checkbox]")[0]?e.next().html():l.attr("title")||"",i=l.attr("lay-skin")||"primary",e="switch"===i?e.split("|"):[e];l[0].disabled||(l[0].indeterminate&&(l[0].indeterminate=!1,a.find("."+o.SUBTRA).removeClass(o.SUBTRA).addClass("layui-icon-ok")),l[0].checked?(l[0].checked=!1,a.removeClass(n[1]),"switch"===i&&a.children("div").html(e[1])):(l[0].checked=!0,a.addClass(n[1]),"switch"===i&&a.children("div").html(e[0])),layui.event.call(l[0],w,n[2]+"("+t+")",{elem:l[0],value:l[0].value,othis:a}))})}.call(this,l,r)})},radio:function(e){var r="layui-form-radio",s=["layui-icon-radio","layui-icon-circle"],e=e||a.find("input[type=radio]");e.each(function(e,t){var i=C(this),a=i.next("."+r),n=this.disabled;if("string"==typeof i.attr("lay-ignore"))return i.show();a[0]&&a.remove();n=C(['
      ','',"
      "+(a=d.escape(t.title||""),a=i.next("[lay-radio]")[0]?i.next().html():a)+"
      ","
      "].join(""));i.after(n),function(a){var n=C(this),l="layui-anim-scaleSpring";a.on("click",function(){var e=n[0].name,t=n.parents(o),i=n.attr("lay-filter"),e=t.find("input[name="+e.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(e,function(){var e=C(this).next("."+r);this.checked=!1,e.removeClass(r+"ed"),e.children(".layui-icon").removeClass(l+" "+s[0]).addClass(s[1])}),n[0].checked=!0,a.addClass(r+"ed"),a.children(".layui-icon").addClass(l+" "+s[0]),layui.event.call(n[0],w,"radio("+i+")",{elem:n[0],value:n[0].value,othis:a}))})}.call(this,n)})}},t=function(){layui.each(n,function(e,t){t()})};return"object"===layui.type(e)?C(e).is(o)?(a=C(e),t()):e.each(function(e,t){var i=C(t);i.closest(o).length&&("SELECT"===t.tagName?n.select(i):"INPUT"===t.tagName&&("checkbox"===(t=t.type)||"radio"===t?n[t](i):n.input(i)))}):e?n[e]?n[e]():l.error('\u4e0d\u652f\u6301\u7684 "'+e+'" \u8868\u5355\u6e32\u67d3'):t(),this},t.prototype.validate=function(e){var u,d=this.config.verify,f="layui-form-danger";return!(e=C(e))[0]||(e.attr("lay-verify")!==undefined||!1!==this.validate(e.find("*[lay-verify]")))&&(layui.each(e,function(e,r){var s=C(this),t=(s.attr("lay-verify")||"").split("|"),o=s.attr("lay-vertype"),c=C.trim(s.val());if(s.removeClass(f),layui.each(t,function(e,t){var i="",a=d[t];if(a){var n="function"==typeof a?i=a(c,r):!a[0].test(c),l="select"===r.tagName.toLowerCase()||/^(checkbox|radio)$/.test(r.type),i=i||a[1];if("required"===t&&(i=s.attr("lay-reqtext")||i),n)return"tips"===o?h.tips(i,"string"!=typeof s.attr("lay-ignore")&&l?s.next():s,{tips:1}):"alert"===o?h.alert(i,{title:"\u63d0\u793a",shadeClose:!0}):/\b(string|number)\b/.test(typeof i)&&h.msg(i,{icon:5,shift:6}),setTimeout(function(){(l?s.next().find("input"):r).focus()},7),s.addClass(f),u=!0}}),u)return u}),!u)},t.prototype.submit=function(e,t){var i={},a=C(this),e="string"==typeof e?e:a.attr("lay-filter"),n=this.getFormElem?this.getFormElem(e):a.parents(o).eq(0),l=n.find("*[lay-verify]");return!!r.validate(l)&&(i=r.getValue(null,n),l={elem:this.getFormElem?window.event&&window.event.target:this,form:(this.getFormElem?n:a.parents("form"))[0],field:i},"function"==typeof t&&t(l),layui.event.call(this,w,"submit("+e+")",l))}),r=new t,t=C(document),F=C(window);C(function(){r.render()}),t.on("reset",o,function(){var e=C(this).attr("lay-filter");setTimeout(function(){r.render(null,e)},50)}),t.on("submit",o,i).on("click","*[lay-submit]",i),e(w,r)});layui.define(["lay","laytpl","laypage","form","util"],function(n){"use strict";var f=layui.$,r=layui.lay,m=layui.laytpl,O=layui.laypage,p=layui.layer,v=layui.form,g=layui.util,x=layui.hint(),b=layui.device(),k={config:{checkName:"LAY_CHECKED",indexName:"LAY_INDEX",numbersName:"LAY_NUM",disabledName:"LAY_DISABLED"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){return this.config=f.extend({},this.config,e),this},on:function(e,t){return layui.onevent.call(this,N,e,t)}},w=function(){var a=this,e=a.config,i=e.id||e.index;return{config:e,reload:function(e,t){a.reload.call(a,e,t)},reloadData:function(e,t){k.reloadData(i,e,t)},setColsWidth:function(){a.setColsWidth.call(a)},resize:function(){a.resize.call(a)}}},C=function(e){var t=w.that[e];return t||x.error(e?"The table instance with ID '"+e+"' not found":"ID argument required"),t||null},l=function(e){var t=w.config[e];return t||x.error(e?"The table instance with ID '"+e+"' not found":"ID argument required"),t||null},T=function(e){var t=this.config||{},a=(e=e||{}).item3,i=e.content;"numbers"===a.type&&(i=e.tplData[k.config.numbersName]);("escape"in a?a:t).escape&&(i=g.escape(i));t=e.text&&a.exportTemplet||a.templet||a.toolbar;return t&&(i="function"==typeof t?t.call(a,e.tplData,e.obj):m(function(e){try{return r(e).html()}catch(t){return e}}(t)||String(i)).render(f.extend({LAY_COL:a},e.tplData))),e.text?f("
      "+i+"
      ").text():i},N="table",t=".layui-table",R="layui-hide",y="layui-hide-v",h="layui-none",D="layui-table-view",o=".layui-table-header",L=".layui-table-body",u=".layui-table-fixed-r",I=".layui-table-pageview",E=".layui-table-sort",A="layui-table-checked",_="layui-table-edit",M="layui-table-hover",P="laytable-cell-group",W="layui-table-col-special",j="layui-table-tool-panel",H="layui-table-expanded",S="LAY_TABLE_MOVE_DICT",e=function(e){return['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',(e=e||{}).fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':"","{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
      ','
      ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{-item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
      ","
      "].join("")},a=['',"","
      "].join(""),s=[,"{{# if(d.data.toolbar){ }}",'
      ','
      ','
      ',"
      ","{{# } }}",'
      ',"{{# if(d.data.loading){ }}",'
      ','',"
      ","{{# } }}","{{# var left, right; }}",'
      ',e(),"
      ",'
      ',a,"
      ","{{# if(left){ }}",'
      ','
      ',e({fixed:!0}),"
      ",'
      ',a,"
      ","
      ","{{# }; }}","{{# if(right){ }}",'
      ','
      ',e({fixed:"right"}),'
      ',"
      ",'
      ',a,"
      ","
      ","{{# }; }}","
      ","{{# if(d.data.totalRow){ }}",'
      ','','',"
      ","
      ","{{# } }}",'
      ','
      ',"
      "].join(""),d=f(window),F=f(document),i=function(e){this.index=++k.index,this.config=f.extend({},this.config,k.config,e),this.render()},c=(i.prototype.config={limit:10,loading:!0,escape:!0,cellMinWidth:60,cellMaxWidth:Number.MAX_VALUE,editTrigger:"click",defaultToolbar:["filter","exports","print"],defaultContextmenu:!0,autoSort:!0,text:{none:"\u65e0\u6570\u636e"},cols:[]},i.prototype.render=function(e){var t=this,a=t.config,i=(a.elem=f(a.elem),a.where=a.where||{},a.id="id"in a?a.id:a.elem.attr("id")||t.index);if(w.that[i]=t,(w.config[i]=a).request=f.extend({pageName:"page",limitName:"limit"},a.request),a.response=f.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",totalRowName:"totalRow",countName:"count"},a.response),null!==a.page&&"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,t.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return t;if(a.elem.attr("lay-filter")||a.elem.attr("lay-filter",a.id),"reloadData"===e)return t.pullData(t.page,{type:"reloadData"});a.index=t.index,t.key=a.id||a.index,t.setInit(),a.height&&/^full-.+$/.test(a.height)?(t.fullHeightGap=a.height.split("-")[1],a.height=d.height()-(parseFloat(t.fullHeightGap)||0)):a.height&&/^#\w+\S*-.+$/.test(a.height)?(i=a.height.split("-"),t.parentHeightGap=i.pop(),t.parentDiv=i.join("-"),a.height=f(t.parentDiv).height()-(parseFloat(t.parentHeightGap)||0)):"function"==typeof a.height&&(t.customHeightFunc=a.height,a.height=t.customHeightFunc());var l,e=a.elem,i=e.next("."+D),n=t.elem=f("
      ");n.addClass((l=[D,D+"-"+t.index,"layui-form","layui-border-box"],a.className&&l.push(a.className),l.join(" "))).attr({"lay-filter":"LAY-TABLE-FORM-DF-"+t.index,"lay-id":a.id,style:(l=[],a.width&&l.push("width:"+a.width+"px;"),l.join(""))}).html(m(s,{open:"{{",close:"}}"}).render({data:a,index:t.index})),t.renderStyle(),i[0]&&i.remove(),e.after(n),t.layTool=n.find(".layui-table-tool"),t.layBox=n.find(".layui-table-box"),t.layHeader=n.find(o),t.layMain=n.find(".layui-table-main"),t.layBody=n.find(L),t.layFixed=n.find(".layui-table-fixed"),t.layFixLeft=n.find(".layui-table-fixed-l"),t.layFixRight=n.find(u),t.layTotal=n.find(".layui-table-total"),t.layPage=n.find(".layui-table-page"),t.renderToolbar(),t.renderPagebar(),t.fullSize(),t.pullData(t.page),t.events()},i.prototype.initOpts=function(e){this.config;e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||{checkbox:50,radio:50,space:30,numbers:60}[e.type])},i.prototype.setInit=function(e){var l,a,d=this,r=d.config;if(r.clientWidth=r.width||(l=function(e){var t,a=(e=e||r.elem.parent()).width();try{t="none"===e.css("display")}catch(i){}return!e[0]||a&&!t?a:l(e.parent())})(),"width"===e)return r.clientWidth;r.height=r.maxHeight||r.height,r.css&&-1===r.css.indexOf(D)&&(a=r.css.split("}"),layui.each(a,function(e,t){t&&(a[e]="."+D+"-"+d.index+" "+t)}),r.css=a.join("}"));var c=function(a,e,i,l){var n,o;l?(l.key=[r.index,a,i].join("-"),l.colspan=l.colspan||0,l.rowspan=l.rowspan||0,d.initOpts(l),(n=a+(parseInt(l.rowspan)||1)) td:hover > .layui-table-cell{overflow: auto;}"].concat(b.ie?[".layui-table-edit{height: "+i+";}","td[data-edit]:hover:after{height: "+i+";}"]:[]),function(e,t){t&&o.push(a+" "+t)})),l.css&&o.push(l.css),r.style({target:this.elem[0],text:o.join(""),id:"DF-table-"+n})},i.prototype.renderToolbar=function(){var e=this.config,t=['
      ','
      ','
      '].join(""),a=this.layTool.find(".layui-table-tool-temp"),i=("default"===e.toolbar?a.html(t):"string"==typeof e.toolbar&&(t=f(e.toolbar).html()||"")&&a.html(m(t).render(e)),{filter:{title:"\u7b5b\u9009\u5217",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"\u5bfc\u51fa",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"\u6253\u5370",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}}),l=[];"object"==typeof e.defaultToolbar&&layui.each(e.defaultToolbar,function(e,t){t="string"==typeof t?i[t]:t;t&&l.push('
      ')}),this.layTool.find(".layui-table-tool-self").html(l.join(""))},i.prototype.renderPagebar=function(){var e,t=this.config,a=this.layPagebar=f('
      ');t.pagebar&&((e=f(t.pagebar).html()||"")&&a.append(m(e).render(t)),this.layPage.append(a))},i.prototype.setParentCol=function(e,t){var a=this.config,i=this.layHeader.find('th[data-key="'+t+'"]'),l=parseInt(i.attr("colspan"))||0;i[0]&&(t=t.split("-"),t=a.cols[t[1]][t[2]],e?l--:l++,i.attr("colspan",l),i[l?"removeClass":"addClass"](R),t.colspan2=l,t.hide=l<1,a=i.data("parentkey"))&&this.setParentCol(e,a)},i.prototype.setColsPatch=function(){var a=this,e=a.config;layui.each(e.cols,function(e,t){layui.each(t,function(e,t){t.hide&&a.setParentCol(t.hide,t.parentKey)})})},i.prototype.setGroupWidth=function(i){var e,l=this;l.config.cols.length<=1||((e=l.layHeader.find((i?"th[data-key="+i.data("parentkey")+"]>":"")+"."+P)).css("width",0),layui.each(e.get().reverse(),function(){var e=f(this),t=e.parent().data("key"),a=0;l.layHeader.eq(0).find("th[data-parentkey="+t+"]").width(function(e,t){f(this).hasClass(R)||0 tr:first-child > th:last-child")).data("field")&&e.prev()[0]?t(e.prev()):e})()).data("key"),n.cssRules(e,function(e){var t=e.style.width||a.outerWidth();e.style.width=parseFloat(t)+l+"px",0'+(e||"Error")+"
      ");a[0]&&(t.layNone.remove(),a.remove()),t.layFixed.addClass(R),t.layMain.find("tbody").html(""),t.layMain.append(t.layNone=e),t.layTotal.addClass(y),t.layPage.find(I).addClass(y),k.cache[t.key]=[],t.syncCheckAll(),t.renderForm(),t.setColsWidth()},i.prototype.page=1,i.prototype.pullData=function(a,t){var e,i,l=this,n=l.config,o=(n.HAS_SET_COLS_PATCH||l.setColsPatch(),n.HAS_SET_COLS_PATCH=!0,n.request),d=n.response,r=function(){"object"==typeof n.initSort&&l.sort({field:n.initSort.field,type:n.initSort.type,reloadType:t.type})},c=function(e,t){l.setColsWidth(),"function"==typeof n.done&&n.done(e,a,e[d.countName],t)};t=t||{},"function"==typeof n.before&&n.before(n),l.startTime=(new Date).getTime(),t.renderData?((e={})[d.dataName]=k.cache[l.key],e[d.countName]=n.url?"object"===layui.type(n.page)?n.page.count:e[d.dataName].length:n.data.length,"object"==typeof n.totalRow&&(e[d.totalRowName]=f.extend({},l.totalRow)),l.renderData({res:e,curr:a,count:e[d.countName],type:t.type,sort:!0}),c(e,"renderData")):n.url?(i={},n.page&&(i[o.pageName]=a,i[o.limitName]=n.limit),o=f.extend(i,n.where),n.contentType&&0==n.contentType.indexOf("application/json")&&(o=JSON.stringify(o)),l.loading(),f.ajax({type:n.method||"get",url:n.url,contentType:n.contentType,data:o,dataType:n.dataType||"json",jsonpCallback:n.jsonpCallback,headers:n.headers||{},complete:"function"==typeof n.complete?n.complete:undefined,success:function(e){(e="function"==typeof n.parseData?n.parseData(e)||e:e)[d.statusName]!=d.statusCode?l.errorView(e[d.msgName]||'\u8fd4\u56de\u7684\u6570\u636e\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6b63\u786e\u7684\u6210\u529f\u72b6\u6001\u7801\u5e94\u4e3a\uff1a"'+d.statusName+'": '+d.statusCode):(l.totalRow=e[d.totalRowName],l.renderData({res:e,curr:a,count:e[d.countName],type:t.type}),r(),n.time=(new Date).getTime()-l.startTime+" ms"),c(e)},error:function(e,t){l.errorView("\u8bf7\u6c42\u5f02\u5e38\uff0c\u9519\u8bef\u63d0\u793a\uff1a"+t),"function"==typeof n.error&&n.error(e,t)}})):"array"===layui.type(n.data)&&(e={},i=a*n.limit-n.limit,o=n.data.concat(),e[d.dataName]=n.page?o.splice(i,n.limit):o,e[d.countName]=n.data.length,"object"==typeof n.totalRow&&(e[d.totalRowName]=f.extend({},n.totalRow)),l.totalRow=e[d.totalRowName],l.renderData({res:e,curr:a,count:e[d.countName],type:t.type}),r(),c(e))},i.prototype.eachCols=function(e){return k.eachCols(null,e,this.config.cols),this},i.prototype.col=function(e){try{return e=e.split("-"),this.config.cols[e[1]][e[2]]||{}}catch(t){return x.error(t),{}}},i.prototype.getTrHtml=function(a,l,n,e){var s=this,u=s.config,y=e&&e.trs||[],h=e&&e.trs_fixed||[],p=e&&e.trs_fixed_r||[];return n=n||1,layui.each(a,function(e,o){var i=[],d=[],r=[],c=e+u.limit*(n-1)+1;if("object"!=typeof o){a[e]=o={LAY_KEY:o};try{k.cache[s.key][e]=o}catch(t){}}"array"===layui.type(o)&&0===o.length||(o[k.config.numbersName]=c,l||(o[k.config.indexName]=e),s.eachCols(function(e,l){var t,e=l.field||e,a=l.key,n=o[e];n!==undefined&&null!==n||(n=""),l.colGroup||(e=['','
      "+function(){var e,t=f.extend(!0,{LAY_COL:l},o),a=k.config.checkName,i=k.config.disabledName;switch(l.type){case"checkbox":return'';case"radio":return'';case"numbers":return c}return l.toolbar?m(f(l.toolbar).html()||"").render(t):T.call(s,{item3:l,content:n,tplData:t})}(),"
      "].join(""),i.push(e),l.fixed&&"right"!==l.fixed&&d.push(e),"right"===l.fixed&&r.push(e))}),e=['data-index="'+e+'"'],o[k.config.checkName]&&e.push('class="'+A+'"'),e=e.join(" "),y.push(""+i.join("")+""),h.push(""+d.join("")+""),p.push(""+r.join("")+""))}),{trs:y,trs_fixed:h,trs_fixed_r:p}},k.getTrHtml=function(e,t){e=C(e);return e.getTrHtml(t,null,e.page)},i.prototype.renderData=function(e){var a=this,i=a.config,t=e.res,l=e.curr,n=a.count=e.count,o=e.sort,d=t[i.response.dataName]||[],t=t[i.response.totalRowName],r=[],c=[],s=[],u=function(){if(!o&&a.sortKey)return a.sort({field:a.sortKey.field,type:a.sortKey.sort,pull:!0,reloadType:e.type});a.getTrHtml(d,o,l,{trs:r,trs_fixed:c,trs_fixed_r:s}),"fixed"===i.scrollPos&&"reloadData"===e.type||a.layBody.scrollTop(0),"reset"===i.scrollPos&&a.layBody.scrollLeft(0),a.layMain.find("."+h).remove(),a.layMain.find("tbody").html(r.join("")),a.layFixLeft.find("tbody").html(c.join("")),a.layFixRight.find("tbody").html(s.join("")),a.syncCheckAll(),a.renderForm(),a.fullSize(),a.haveInit?a.scrollPatch():setTimeout(function(){a.scrollPatch()},50),a.haveInit=!0,p.close(a.tipsIndex)};return k.cache[a.key]=d,a.layTotal[0==d.length?"addClass":"removeClass"](y),a.layPage[i.page||i.pagebar?"removeClass":"addClass"](R),a.layPage.find(I)[!i.page||0==n||0===d.length&&1==l?"addClass":"removeClass"](y),0===d.length?a.errorView(i.text.none):(a.layFixLeft.removeClass(R),o?u():(u(),a.renderTotal(d,t),a.layTotal&&a.layTotal.removeClass(R),void(i.page&&(i.page=f.extend({elem:"layui-table-page"+i.index,count:n,limit:i.limit,limits:i.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(a.page=e.curr,i.limit=e.limit,a.pullData(e.curr))}},i.page),i.page.count=n,O.render(i.page)))))},k.renderData=function(e){e=C(e);e&&e.pullData(e.page,{renderData:!0,type:"reloadData"})},i.prototype.renderTotal=function(e,o){var d,r=this,c=r.config,s={};c.totalRow&&(layui.each(e,function(e,i){"array"===layui.type(i)&&0===i.length||r.eachCols(function(e,t){var e=t.field||e,a=i[e];t.totalRow&&(s[e]=(s[e]||0)+(parseFloat(a)||0))})}),r.dataTotal=[],d=[],r.eachCols(function(e,t){var a,e=t.field||e,i=o&&o[t.field],l="totalRowDecimals"in t?t.totalRowDecimals:2,l=s[e]?parseFloat(s[e]||0).toFixed(l):"",l=(a=t.totalRowText||"",(n={LAY_COL:t})[e]=l,n=t.totalRow&&T.call(r,{item3:t,content:l,tplData:n})||a,i||n),n=(t.field&&r.dataTotal.push({field:t.field,total:f("
      "+l+"
      ").text()}),['','
      "+("string"==typeof(a=t.totalRow||c.totalRow)?m(a).render(f.extend({TOTAL_NUMS:i||s[e],TOTAL_ROW:o||{},LAY_COL:t},t)):l),"
      "].join(""));d.push(n)}),e=r.layTotal.find(".layui-table-patch"),r.layTotal.find("tbody").html(""+d.join("")+(e.length?e.get(0).outerHTML:"")+""))},i.prototype.getColElem=function(e,t){return e.eq(0).find(".laytable-cell-"+t+":eq(0)")},i.prototype.renderForm=function(e){this.config;var t=this.elem.attr("lay-filter");v.render(e,t)},i.prototype.renderFormByElem=function(a){layui.each(["input","select"],function(e,t){v.render(a.find(t))})},i.prototype.syncCheckAll=function(){var a,e=this,i=e.config,t=e.layHeader.find('input[name="layTableCheckbox"]'),l=k.checkStatus(e.key);t[0]&&(a=l.isAll,e.eachCols(function(e,t){"checkbox"===t.type&&(t[i.checkName]=a)}),t.prop({checked:l.isAll,indeterminate:!l.isAll&&l.data.length}),v.render(t))},i.prototype.setRowActive=function(e,t,a){this.config;e=this.layBody.find('tr[data-index="'+e+'"]');if(t=t||"layui-table-click",a)return e.removeClass(t);e.addClass(t),e.siblings("tr").removeClass(t)},i.prototype.setRowChecked=function(i){var e=this,l=e.config,n="all"===i.index,o="array"===layui.type(i.index),d=(t=e.layBody.find("tr"),n?t:t.filter(o?function(){var e=f(this).data("index");return-1!==i.index.indexOf(e)}:'[data-index="'+i.index+'"]')),t=(i=f.extend({type:"checkbox"},i),k.cache[e.key]),a="checked"in i,r=function(e){return"radio"===i.type||(a?i.checked:!e)},t=(layui.each(t,function(e,t){var a;"array"===layui.type(t)||t[l.disabledName]||(n||(o?-1!==i.index.indexOf(e):Number(i.index)===e)?(a=t[l.checkName]=r(t[l.checkName]),(e=d.filter('[data-index="'+e+'"]'))[a?"addClass":"removeClass"](A),"radio"===i.type&&e.siblings().removeClass(A)):"radio"===i.type&&delete t[l.checkName])}),d.find('input[lay-type="'+({radio:"layTableRadio",checkbox:"layTableCheckbox"}[i.type]||"checkbox")+'"]:not(:disabled)')),c=t.last(),s=c.closest(u);("radio"===i.type&&s.hasClass(R)?t.first():t).prop("checked",r(c.prop("checked"))),e.syncCheckAll(),e.renderForm(i.type)},i.prototype.sort=function(l){var e,t=this,a={},i=t.config,n=i.elem.attr("lay-filter"),o=k.cache[t.key];"string"==typeof(l=l||{}).field&&(d=l.field,t.layHeader.find("th").each(function(e,t){var a=f(this),i=a.data("field");if(i===l.field)return l.field=a,d=i,!1}));try{var d=d||l.field.data("field"),r=l.field.data("key");if(t.sortKey&&!l.pull&&d===t.sortKey.field&&l.type===t.sortKey.sort)return;var c=t.layHeader.find("th .laytable-cell-"+r).find(E);t.layHeader.find("th").find(E).removeAttr("lay-sort"),c.attr("lay-sort",l.type||null),t.layFixed.find("th")}catch(s){x.error("Table modules: sort field '"+d+"' not matched")}t.sortKey={field:d,sort:l.type},i.autoSort&&("asc"===l.type?e=layui.sort(o,d,null,!0):"desc"===l.type?e=layui.sort(o,d,!0,!0):(e=layui.sort(o,k.config.indexName,null,!0),delete t.sortKey,delete i.initSort)),a[i.response.dataName]=e||o,t.renderData({res:a,curr:t.page,count:t.count,sort:!0,type:l.reloadType}),l.fromEvent&&(i.initSort={field:d,type:l.type},layui.event.call(l.field,N,"sort("+n+")",f.extend({config:i},i.initSort)))},i.prototype.loading=function(e){var t=this;t.config.loading&&(e?(t.layInit&&t.layInit.remove(),delete t.layInit,t.layBox.find(".layui-table-init").remove()):(t.layInit=f(['
      ','',"
      "].join("")),t.layBox.append(t.layInit)))},i.prototype.cssRules=function(t,a){var e=this.elem.children("style")[0];r.getStyleRules(e,function(e){if(e.selectorText===".laytable-cell-"+t)return a(e),!0})},i.prototype.fullSize=function(){var e,a,i=this,t=i.config,l=t.height;i.fullHeightGap?(l=d.height()-i.fullHeightGap)<135&&(l=135):i.parentDiv&&i.parentHeightGap?(l=f(i.parentDiv).height()-i.parentHeightGap)<135&&(l=135):i.customHeightFunc&&(l=i.customHeightFunc())<135&&(l=135),1
      ')).find("div").css({width:a}),e.find("tr").append(t)):e.find(".layui-table-patch").remove()};n(e.layHeader),n(e.layTotal);n=e.layMain.height()-i;e.layFixed.find(L).css("height",t.height()>=n?n:"auto").scrollTop(e.layMain.scrollTop()),e.layFixRight[k.cache[e.key]&&k.cache[e.key].length&&0');a.html(t),s.height&&a.css("max-height",s.height-(c.layTool.outerHeight()||50)),i.find("."+j)[0]||i.append(a),c.renderForm(),a.on("click",function(e){layui.stope(e)}),e.done&&e.done(a,t)};switch(layui.stope(e),F.trigger("table.tool.panel.remove"),p.close(c.tipsIndex),t){case"LAYTABLE_COLS":n({list:(a=[],c.eachCols(function(e,t){t.field&&"normal"==t.type&&a.push('
    • "+(t.fieldTitle||t.title||t.field)+"
    • ").text())+'" lay-filter="LAY_TABLE_TOOL_COLS">')}),a.join("")),done:function(){v.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var e=f(e.elem),t=this.checked,a=e.data("key"),i=c.col(a),l=i.hide,e=e.data("parentkey");i.key&&(i.hide=!t,c.elem.find('*[data-key="'+a+'"]')[t?"removeClass":"addClass"](R),l!=i.hide&&c.setParentCol(!t,e),c.resize(),layui.event.call(this,N,"colToggled("+u+")",{col:i,config:s}))})}});break;case"LAYTABLE_EXPORT":if(!l.length)return p.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e",this,{tips:3});b.ie?p.tips("\u5bfc\u51fa\u529f\u80fd\u4e0d\u652f\u6301 IE\uff0c\u8bf7\u7528 Chrome \u7b49\u9ad8\u7ea7\u6d4f\u89c8\u5668\u5bfc\u51fa",this,{tips:3}):n({list:['
    • \u5bfc\u51fa csv \u683c\u5f0f\u6587\u4ef6
    • ','
    • \u5bfc\u51fa xls \u683c\u5f0f\u6587\u4ef6
    • '].join(""),done:function(e,t){t.on("click",function(){var e=f(this).data("type");k.exportFile.call(c,s.id,null,e)})}});break;case"LAYTABLE_PRINT":if(!l.length)return p.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e",this,{tips:3});var o=window.open("about:blank","_blank"),d=[""].join(""),r=f(c.layHeader.html());r.append(c.layMain.find("table").html()),r.append(c.layTotal.find("table").html()),r.find("th.layui-table-patch").remove(),r.find("thead>tr>th."+W).filter(function(e,t){return!f(t).children("."+P).length}).remove(),r.find("tbody>tr>td."+W).remove(),o.document.write(d+r.prop("outerHTML")),o.document.close(),layui.device("edg").edg?(o.onafterprint=o.close,o.print()):(o.print(),o.close())}layui.event.call(this,N,"toolbar("+u+")",f.extend({event:t,config:s},{}))}),c.layHeader.on("click","*[lay-event]",function(e){var t=f(this),a=t.attr("lay-event"),t=t.closest("th").data("key"),t=c.col(t);layui.event.call(this,N,"colTool("+u+")",f.extend({event:a,config:s,col:t},{}))}),c.layPagebar.on("click","*[lay-event]",function(e){var t=f(this).attr("lay-event");layui.event.call(this,N,"pagebar("+u+")",f.extend({event:t,config:s},{}))}),e.on("mousemove",function(e){var t=f(this),a=t.offset().left,e=e.clientX-a;t.data("unresize")||w.eventMoveElem||(d.allowResize=t.width()-e<=10,o.css("cursor",d.allowResize?"col-resize":""))}).on("mouseleave",function(){f(this);w.eventMoveElem||o.css("cursor","")}).on("mousedown",function(e){var t,a=f(this);d.allowResize&&(t=a.data("key"),e.preventDefault(),d.offset=[e.clientX,e.clientY],c.cssRules(t,function(e){var t=e.style.width||a.outerWidth();d.rule=e,d.ruleWidth=parseFloat(t),d.minWidth=a.data("minwidth")||s.cellMinWidth,d.maxWidth=a.data("maxwidth")||s.cellMaxWidth}),a.data(S,d),w.eventMoveElem=a)}),w.docEvent||F.on("mousemove",function(e){var t,a;w.eventMoveElem&&(t=w.eventMoveElem.data(S)||{},w.eventMoveElem.data("resizing",1),e.preventDefault(),t.rule)&&(e=t.ruleWidth+e.clientX-t.offset[0],a=w.eventMoveElem.closest("."+D).attr("lay-id"),a=C(a))&&((e=et.maxWidth&&(e=t.maxWidth),t.rule.style.width=e+"px",a.setGroupWidth(w.eventMoveElem),p.close(c.tipsIndex))}).on("mouseup",function(e){var t,a,i,l,n;w.eventMoveElem&&(i=(t=w.eventMoveElem).closest("."+D).attr("lay-id"),a=C(i))&&(i=t.data("key"),l=a.col(i),n=a.config.elem.attr("lay-filter"),d={},o.css("cursor",""),a.scrollPatch(),t.removeData(S),delete w.eventMoveElem,a.cssRules(i,function(e){l.width=parseFloat(e.style.width),layui.event.call(t[0],N,"colResized("+n+")",{col:l,config:a.config})}))}),w.docEvent=!0,e.on("click",function(e){var t=f(this),a=t.find(E),i=a.attr("lay-sort");if(!a[0]||1===t.data("resizing"))return t.removeData("resizing");c.sort({field:t,type:"asc"===i?"desc":"desc"===i?null:"asc",fromEvent:!0})}).find(E+" .layui-edge ").on("click",function(e){var t=f(this),a=t.index(),t=t.parents("th").eq(0).data("field");layui.stope(e),0===a?c.sort({field:t,type:"asc",fromEvent:!0}):c.sort({field:t,type:"desc",fromEvent:!0})}),c.commonMember=function(e){var a=f(this).parents("tr").eq(0).data("index"),t=c.layBody.find('tr[data-index="'+a+'"]'),i=(k.cache[c.key]||[])[a]||{},l={tr:t,config:s,data:k.clearCacheKey(i),dataCache:i,index:a,del:function(){k.cache[c.key][a]=[],t.remove(),c.scrollPatch()},update:function(e,t){c.updateRow({index:a,data:e=e||{},related:t},function(e,t){l.data[e]=t})},setRowChecked:function(e){c.setRowChecked(f.extend({index:a},e))}};return f.extend(l,e)}),a=(c.elem.on("click",'input[name="layTableCheckbox"]+',function(e){var t=f(this),a=t.closest("td"),t=t.prev(),i=(c.layBody.find('input[name="layTableCheckbox"]'),t.parents("tr").eq(0).data("index")),l=t[0].checked,n="layTableAllChoose"===t.attr("lay-filter");t[0].disabled||(n?c.setRowChecked({index:"all",checked:l}):(c.setRowChecked({index:i,checked:l}),layui.stope(e)),layui.event.call(t[0],N,"checkbox("+u+")",r.call(t[0],{checked:l,type:n?"all":"one",getCol:function(){return c.col(a.data("key"))}})))}),c.elem.on("click",'input[lay-type="layTableRadio"]+',function(e){var t=f(this),a=t.closest("td"),t=t.prev(),i=t[0].checked,l=t.parents("tr").eq(0).data("index");if(layui.stope(e),t[0].disabled)return!1;c.setRowChecked({type:"radio",index:l}),layui.event.call(t[0],N,"radio("+u+")",r.call(t[0],{checked:i,getCol:function(){return c.col(a.data("key"))}}))}),c.layBody.on("mouseenter","tr",function(){var e=f(this),t=e.index();e.data("off")||c.layBody.find("tr:eq("+t+")").addClass(M)}).on("mouseleave","tr",function(){var e=f(this),t=e.index();e.data("off")||c.layBody.find("tr:eq("+t+")").removeClass(M)}).on("click","tr",function(e){var t=[".layui-form-checkbox",".layui-form-switch",".layui-form-radio","[lay-unrow]"].join(",");f(e.target).is(t)||f(e.target).closest(t)[0]||a.call(this,"row")}).on("dblclick","tr",function(){a.call(this,"rowDouble")}).on("contextmenu","tr",function(e){s.defaultContextmenu||e.preventDefault(),a.call(this,"rowContextmenu")}),function(e){var t=f(this);t.data("off")||layui.event.call(this,N,e+"("+u+")",r.call(t.children("td")[0]))}),n=function(e,t){var a,i,l;(e=f(e)).data("off")||(l=e.data("field"),i=e.data("key"),i=c.col(i),a=e.closest("tr").data("index"),a=k.cache[c.key][a],e.children(y),(i="function"==typeof i.edit?i.edit(a):i.edit)&&((i=f("textarea"===i?'':''))[0].value=(l=e.data("content")||a[l])===undefined||null===l?"":l,e.find("."+_)[0]||e.append(i),i.focus(),t)&&layui.stope(t))},i=(c.layBody.on("change","."+_,function(){var e=f(this),t=e.parent(),a=this.value,i=e.parent().data("field"),e=e.closest("tr").data("index"),e=k.cache[c.key][e],l=r.call(t[0],{value:a,field:i,oldValue:e[i],td:t,reedit:function(){setTimeout(function(){n(l.td);var e={};e[i]=l.oldValue,l.update(e)})},getCol:function(){return c.col(t.data("key"))}}),e={};e[i]=a,l.update(e),layui.event.call(t[0],N,"edit("+u+")",l)}).on("blur","."+_,function(){f(this).remove()}),c.layBody.on(s.editTrigger,"td",function(e){n(this,e)}).on("mouseenter","td",function(){t.call(this)}).on("mouseleave","td",function(){t.call(this,"hide")}),c.layTotal.on("mouseenter","td",function(){t.call(this)}).on("mouseleave","td",function(){t.call(this,"hide")}),"layui-table-grid-down"),t=function(e){var t=f(this),a=t.children(y);t.data("off")||t.parent().hasClass(H)||(e?t.find(".layui-table-grid-down").remove():!(a.prop("scrollWidth")>a.outerWidth()||0'))},l=function(e,t){var a=f(this),i=a.parent(),l=i.data("key"),n=c.col(l),o=i.parent().data("index"),d=i.children(y),i="layui-table-cell-c",r=f('');"tips"===(t=t||n.expandedMode||s.cellExpandedMode)?c.tipsIndex=p.tips(['
      ',d.html(),"
      ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:b.ios||b.android?300:c.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){p.close(t)})}}):(c.elem.find("."+i).trigger("click"),c.cssRules(l,function(e){var t=e.style.width,a=n.expandedWidth||s.cellExpandedWidth;atr").each(function(i){n.cols[i]=[],f(this).children().each(function(e){var t=f(this),a=t.attr("lay-data"),a=r.options(this,{attr:a?"lay-data":null,errorText:d+(a||t.attr("lay-options"))}),t=f.extend({title:t.text(),colspan:parseInt(t.attr("colspan"))||1,rowspan:parseInt(t.attr("rowspan"))||1},a);n.cols[i].push(t)})}),e.find("tbody>tr")),t=k.render(n);!a.length||o.data||t.config.url||(l=0,k.eachCols(t.config.id,function(e,i){a.each(function(e){n.data[e]=n.data[e]||{};var t=f(this),a=i.field;n.data[e][a]=t.children("td").eq(l).html()}),l++}),t.reloadData({data:n.data}))}),this},w.that={},w.config={},function(a,i,e,l){var n,o;l.colGroup&&(n=0,a++,l.CHILD_COLS=[],o=e+(parseInt(l.rowspan)||1),layui.each(i[o],function(e,t){t.parentKey?t.parentKey===l.key&&(t.PARENT_COL_INDEX=a,l.CHILD_COLS.push(t),c(a,i,o,t)):t.PARENT_COL_INDEX||1<=n&&n==(l.colspan||1)||(t.PARENT_COL_INDEX=a,l.CHILD_COLS.push(t),n+=parseInt(1td').filter('[data-field="'+e+'"]')}}})).replace(/"/g,'""'),n.push(a='"'+a+'"')):t.field&&"normal"!==t.type&&0==i&&(r[t.field]=!0)}),d.push(n.join(","))}),c&&layui.each(c.dataTotal,function(e,t){r[t.field]||i.push('"'+(t.total||"")+'"')}),o.join(",")+"\r\n"+d.join("\r\n")+"\r\n"+i.join(","))),u.download=(a.title||n.title||"table_"+(n.index||""))+"."+l,document.body.appendChild(u),u.click(),document.body.removeChild(u)},k.getOptions=l,k.hideCol=function(e,l){var n=C(e);n&&("boolean"===layui.type(l)?n.eachCols(function(e,t){var a=t.key,i=n.col(a),t=t.parentKey;i.hide!=l&&(i=i.hide=l,n.elem.find('*[data-key="'+a+'"]')[i?"addClass":"removeClass"](R),n.setParentCol(i,t))}):(l=layui.isArray(l)?l:[l],layui.each(l,function(e,l){n.eachCols(function(e,t){var a,i;l.field===t.field&&(a=t.key,i=n.col(a),t=t.parentKey,"hide"in l)&&i.hide!=l.hide&&(i=i.hide=!!l.hide,n.elem.find('*[data-key="'+a+'"]')[i?"addClass":"removeClass"](R),n.setParentCol(i,t))})})),f("."+j).remove(),n.resize())},k.reload=function(e,t,a,i){if(l(e))return(e=C(e)).reload(t,a,i),w.call(e)},k.reloadData=function(){var a=f.extend([],arguments),i=(a[3]="reloadData",new RegExp("^("+["elem","id","cols","width","height","maxHeight","toolbar","defaultToolbar","className","css","pagebar"].join("|")+")$"));return layui.each(a[1],function(e,t){i.test(e)&&delete a[1][e]}),k.reload.apply(null,a)},k.render=function(e){e=new i(e);return w.call(e)},k.clearCacheKey=function(e){return delete(e=f.extend({},e))[k.config.checkName],delete e[k.config.indexName],delete e[k.config.numbersName],delete e[k.config.disabledName],e},f(function(){k.init()}),n(N,k)});layui.define(["table"],function(e){"use strict";var E=layui.$,x=layui.form,B=layui.table,y=layui.hint(),j={config:{},on:B.on,eachCols:B.eachCols,index:B.index,set:function(e){var t=this;return t.config=E.extend({},t.config,e),t},resize:B.resize,getOptions:B.getOptions,hideCol:B.hideCol,renderData:B.renderData},i=function(){var a=this,e=a.config,n=e.id||e.index;return{config:e,reload:function(e,t){a.reload.call(a,e,t)},reloadData:function(e,t){j.reloadData(n,e,t)}}},P=function(e){var t=i.that[e];return t||y.error(e?"The treeTable instance with ID '"+e+"' not found":"ID argument required"),t||null},F="layui-hide",L=".layui-table-main",q=".layui-table-fixed-l",R=".layui-table-fixed-r",l="layui-table-checked",h="layui-table-tree",Y="LAY_DATA_INDEX",m="LAY_DATA_INDEX_HISTORY",s="LAY_PARENT_INDEX",b="LAY_CHECKBOX_HALF",H="LAY_EXPAND",z="LAY_HAS_EXPANDED",X="LAY_ASYNC_STATUS",n=["all","parent","children","none"],t=function(e){var t=this;t.index=++j.index,t.config=E.extend(!0,{},t.config,j.config,e),t.init(),t.render()},f=function(n,i,e){var l=B.cache[n];layui.each(e||l,function(e,t){var a=t[Y]||"";-1!==a.indexOf("-")&&(l[a]=t),t[i]&&f(n,i,t[i])})},d=function(l,a,e){var d=P(l),r=("reloadData"!==e&&(d.status={expand:{}}),E.extend(!0,{},d.getOptions(),a)),n=r.tree,o=n.customName.children,i=n.customName.id,c=(delete a.hasNumberCol,delete a.hasChecboxCol,delete a.hasRadioCol,B.eachCols(null,function(e,t){"numbers"===t.type?a.hasNumberCol=!0:"checkbox"===t.type?a.hasChecboxCol=!0:"radio"===t.type&&(a.hasRadioCol=!0)},r.cols),a.parseData),u=a.done;r.url?e&&(!c||c.mod)||(a.parseData=function(){var e=this,t=arguments,a=t[0],t=("function"===layui.type(c)&&(a=c.apply(e,t)||t[0]),e.response.dataName);return n.data.isSimpleData&&!n["async"].enable&&(a[t]=d.flatToTree(a[t])),p(a[t],function(e){e[H]=H in e?e[H]:e[i]!==undefined&&d.status.expand[e[i]]},o),e.autoSort&&e.initSort&&e.initSort.type&&layui.sort(a[t],e.initSort.field,"desc"===e.initSort.type,!0),d.initData(a[t]),a},a.parseData.mod=!0):(a.data=a.data||[],n.data.isSimpleData&&(a.data=d.flatToTree(a.data)),d.initData(a.data)),e&&(!u||u.mod)||(a.done=function(){var e,t=arguments,a=t[3],n=(a||delete d.isExpandAll,this.elem.next()),i=(d.updateStatus(null,{LAY_HAS_EXPANDED:!1}),f(l,o),n.find('[name="layTableCheckbox"][lay-filter="layTableAllChoose"]'));if(i.length&&(e=j.checkStatus(l),i.prop({checked:e.isAll&&e.data.length,indeterminate:!e.isAll&&e.data.length})),!a&&r.autoSort&&r.initSort&&r.initSort.type&&j.sort(l),d.renderTreeTable(n),"function"===layui.type(u))return u.apply(this,t)},a.done.mod=!0)};t.prototype.init=function(){var e=this.config,t=e.tree.data.cascade,t=(-1===n.indexOf(t)&&(e.tree.data.cascade="all"),B.render(E.extend({},e,{data:[],url:"",done:null}))),a=t.config.id;(i.that[a]=this).tableIns=t,d(a,e)},t.prototype.config={tree:{customName:{children:"children",isParent:"isParent",name:"name",id:"id",pid:"parentId",icon:"icon"},view:{indent:14,flexIconClose:'',flexIconOpen:'',showIcon:!0,icon:"",iconClose:'',iconOpen:'',iconLeaf:'',showFlexIconIfNotParent:!1,dblClickExpand:!0,expandAllDefault:!1},data:{isSimpleData:!1,rootPid:null,cascade:"all"},"async":{enable:!1,url:"",type:null,contentType:null,headers:null,where:null,autoParam:[]},callback:{beforeExpand:null,onExpand:null}}},t.prototype.getOptions=function(){return this.tableIns?B.getOptions(this.tableIns.config.id):this.config},t.prototype.flatToTree=function(e){var a,n,i,t,l,d,r,o=this.getOptions(),c=o.tree,u=c.customName,o=o.id;return e=e||B.cache[o],o=e,a=u.id,n=u.pid,i=u.children,t=c.data.rootPid,a=a||"id",n=n||"parentId",i=i||"children",r={},layui.each(o,function(e,t){l=a+t[a],r[l]=E.extend({},t),r[l][i]=[]}),layui.each(r,function(e,t){(d=a+t[n])&&r[d]&&r[d][i].push(t)}),Object.keys(r).map(function(e){return r[e]}).filter(function(e){return t?e[n]===t:!e[n]})},t.prototype.treeToFlat=function(e,n,i){var l=this,d=l.getOptions().tree.customName,r=d.children,o=d.pid,c=[];return layui.each(e,function(e,t){var e=(i?i+"-":"")+e,a=E.extend({},t);a[o]=t[o]||n,c.push(a),c=c.concat(l.treeToFlat(t[r],t[d.id],e))}),c},t.prototype.getTreeNode=function(e){var t,a,n=this;return e?(a=(t=n.getOptions()).tree,t.id,a.customName,{data:e,dataIndex:e[Y],getParentNode:function(){return n.getNodeByIndex(e[s])}}):y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e")},t.prototype.getNodeByIndex=function(t){var a,e,n=this,i=n.getNodeDataByIndex(t);return i?((e=n.getOptions()).tree.customName.parent,a=e.id,(e={data:i,dataIndex:i[Y],getParentNode:function(){return n.getNodeByIndex(i[s])},update:function(e){return j.updateNode(a,t,e)},remove:function(){return j.removeNode(a,t)},expand:function(e){return j.expandNode(a,E.extend({},e,{index:t}))},setChecked:function(e){return j.setRowChecked(a,E.extend({},e,{index:t}))}}).dataIndex=t,e):y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e")},t.prototype.getNodeById=function(a){var e=this.getOptions(),n=e.tree.customName.id,i="",e=j.getData(e.id,!0);if(layui.each(e,function(e,t){if(t[n]===a)return i=t[Y],!0}),i)return this.getNodeByIndex(i)},t.prototype.getNodeDataByIndex=function(e,t,a){var n=this.getOptions(),i=n.tree,n=n.id,n=B.cache[n],l=n[e];if("delete"!==a&&l)return E.extend(l,a),t?E.extend({},l):l;for(var d=n,r=String(e).split("-"),o=0,c=i.customName.children;o
      '),N=function(e){y[X]="success",y[s.children]=e,c.initData(y[s.children],y[Y]),U(t,!0,!p&&n,i,l)},C=m.format,"function"===layui.type(C)?C(y,o,N):(I=E.extend({},m.where||o.where),C=m.autoParam,layui.each(C,function(e,t){t=t.split("=");I[t[0].trim()]=y[(t[1]||t[0]).trim()]}),(C=m.contentType||o.contentType)&&0==C.indexOf("application/json")&&(I=JSON.stringify(I)),w=m.method||o.method,D=m.dataType||o.dataType,T=m.jsonpCallback||o.jsonpCallback,k=m.headers||o.headers,_=m.parseData||o.parseData,O=m.response||o.response,E.ajax({type:w||"get",url:b,contentType:C,data:I,dataType:D||"json",jsonpCallback:T,headers:k||{},success:function(e){(e="function"==typeof _?_.call(o,e)||e:e)[O.statusName]!=O.statusCode?(y[X]="error",g.html('')):N(e[O.dataName])},error:function(e,t){y[X]="error","function"==typeof o.error&&o.error(e,t)}})),h;y[z]=!0,v.length&&(!o.initSort||o.url&&!o.autoSort||((m=o.initSort).type?layui.sort(v,m.field,"desc"===m.type,!0):layui.sort(v,B.config.indexName,null,!0)),c.initData(y[s.children],y[Y]),w=B.getTrHtml(r,v,null,null,e),S={trs:E(w.trs.join("")),trs_fixed:E(w.trs_fixed.join("")),trs_fixed_r:E(w.trs_fixed_r.join(""))},A=(e.split("-").length-1||0)+1,layui.each(v,function(e,t){S.trs.eq(e).attr({"data-index":t[Y],"lay-data-index":t[Y],"data-level":A}),S.trs_fixed.eq(e).attr({"data-index":t[Y],"lay-data-index":t[Y],"data-level":A}),S.trs_fixed_r.eq(e).attr({"data-index":t[Y],"lay-data-index":t[Y],"data-level":A})}),d.find(L).find('tbody tr[lay-data-index="'+e+'"]').after(S.trs),d.find(q).find('tbody tr[lay-data-index="'+e+'"]').after(S.trs_fixed),d.find(R).find('tbody tr[lay-data-index="'+e+'"]').after(S.trs_fixed_r),c.renderTreeTable(S.trs,A),n)&&!p&&layui.each(v,function(e,t){U({dataIndex:t[Y],trElem:d.find('tr[lay-data-index="'+t[Y]+'"]').first(),tableViewElem:d,tableId:r,options:o},a,n,i,l)})}else c.isExpandAll=!1,(n&&!p?(layui.each(v,function(e,t){U({dataIndex:t[Y],trElem:d.find('tr[lay-data-index="'+t[Y]+'"]').first(),tableViewElem:d,tableId:r,options:o},a,n,i,l)}),d.find(v.map(function(e,t,a){return'tr[lay-data-index="'+e[Y]+'"]'}).join(","))):(b=c.treeToFlat(v,y[s.id],e),d.find(b.map(function(e,t,a){return'tr[lay-data-index="'+e[Y]+'"]'}).join(",")))).addClass(F);V("resize-"+r,function(){j.resize(r)},0)(),l&&"loading"!==y[X]&&(C=u.callback.onExpand,"function"===layui.type(C))&&C(r,y,x)}return h},g=(j.expandNode=function(e,t){var a,n,i,e=P(e);if(e)return a=(t=t||{}).index,n=t.expandFlag,i=t.inherit,t=t.callbackFlag,e=e.getOptions().elem.next(),U({trElem:e.find('tr[lay-data-index="'+a+'"]').first()},n,i,null,t)},j.expandAll=function(a,e){if("boolean"!==layui.type(e))return y.error("expandAll \u7684\u5c55\u5f00\u72b6\u6001\u53c2\u6570\u53ea\u63a5\u6536true/false");var t=P(a);if(t){t.isExpandAll=e;var n=t.getOptions(),i=n.tree,l=n.elem.next(),d=i.customName.isParent,r=i.customName.id,o=i.view.showFlexIconIfNotParent;if(e){e=j.getData(a,!0);if(i["async"].enable){var c=!0;if(layui.each(e,function(e,t){if(t[d]&&!t[X])return!(c=!1)}),!c)return void layui.each(j.getData(a),function(e,t){j.expandNode(a,{index:t[Y],expandFlag:!0,inherit:!0})})}var u=!0;if(layui.each(e,function(e,t){if(t[d]&&!t[z])return!(u=!1)}),u)t.updateStatus(null,function(e){(e[d]||o)&&(e[H]=!0,e[r]!==undefined)&&(t.status.expand[e[r]]=!0)}),l.find('tbody tr[data-level!="0"]').removeClass(F),l.find(".layui-table-tree-flexIcon").html(i.view.flexIconOpen),i.view.showIcon&&l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconOpen);else{if(t.updateStatus(null,function(e){(e[d]||o)&&(e[H]=!0,e[z]=!0,e[r]!==undefined)&&(t.status.expand[e[r]]=!0)}),n.initSort&&n.initSort.type&&n.autoSort)return j.sort(a);var s,n=B.getTrHtml(a,e),f={trs:E(n.trs.join("")),trs_fixed:E(n.trs_fixed.join("")),trs_fixed_r:E(n.trs_fixed_r.join(""))};layui.each(e,function(e,t){var a=t[Y].split("-").length-1;s={"data-index":t[Y],"lay-data-index":t[Y],"data-level":a},f.trs.eq(e).attr(s),f.trs_fixed.eq(e).attr(s),f.trs_fixed_r.eq(e).attr(s)}),layui.each(["main","fixed-l","fixed-r"],function(e,t){l.find(".layui-table-"+t+" tbody").html(f[["trs","trs_fixed","trs_fixed_r"][e]])}),t.renderTreeTable(l,0,!1)}}else t.updateStatus(null,function(e){(e[d]||o)&&(e[H]=!1,e[r]!==undefined)&&(t.status.expand[e[r]]=!1)}),l.find('.layui-table-box tbody tr[data-level!="0"]').addClass(F),l.find(".layui-table-tree-flexIcon").html(i.view.flexIconClose),i.view.showIcon&&l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconClose);j.resize(a)}},t.prototype.renderTreeTable=function(e,t,a){var n=this,i=n.getOptions(),l=i.elem.next(),d=(l.hasClass(h)||l.addClass(h),i.id),r=i.tree||{},o=(r.data,r.view||{}),c=r.customName||{},u=c.isParent,s=(l.attr("lay-filter"),n),f=((t=t||0)||(l.find(".layui-table-body tr:not([data-level])").attr("data-level",t),layui.each(B.cache[d],function(e,t){l.find('.layui-table-main tbody tr[data-level="0"]:eq('+e+")").attr("lay-data-index",t[Y]),l.find('.layui-table-fixed-l tbody tr[data-level="0"]:eq('+e+")").attr("lay-data-index",t[Y]),l.find('.layui-table-fixed-r tbody tr[data-level="0"]:eq('+e+")").attr("lay-data-index",t[Y])})),null),y=c.name,p=o.indent||14;if(layui.each(e.find('td[data-field="'+y+'"]'),function(e,t){var a,n,i=(t=E(t)).closest("tr"),t=t.children(".layui-table-cell");t.hasClass("layui-table-tree-item")||(n=i.attr("lay-data-index"))&&(i=l.find('tr[lay-data-index="'+n+'"]'),(a=s.getNodeDataByIndex(n))[H]&&a[u]&&((f=f||{})[n]=!0),a[b]&&i.find('input[type="checkbox"][name="layTableCheckbox"]').prop("indeterminate",!0),n=t.html(),(t=i.find('td[data-field="'+y+'"]>div.layui-table-cell')).addClass("layui-table-tree-item"),t.html(['
      ',a[H]?o.flexIconOpen:o.flexIconClose,"
      ",o.showIcon?'
      '+(a[c.icon]||o.icon||(a[u]?a[H]?o.iconOpen:o.iconClose:o.iconLeaf)||"")+"
      ":"",n].join("")).find(".layui-table-tree-flexIcon").on("click",function(e){layui.stope(e),U({trElem:i},null,null,null,!0)}))}),!t&&r.view.expandAllDefault&&n.isExpandAll===undefined)return j.expandAll(d,!0);(!1!==a&&f?(layui.each(f,function(e,t){e=l.find('tr[lay-data-index="'+e+'"]');e.find(".layui-table-tree-flexIcon").html(o.flexIconOpen),U({trElem:e.first()},!0)}),V("renderTreeTable2-"+d,function(){x.render(E('.layui-table-tree[lay-id="'+d+'"]'))},0)):V("renderTreeTable-"+d,function(){i.hasNumberCol&&g(n),x.render(E('.layui-table-tree[lay-id="'+d+'"]'))},0))()},function(a){var e=a.getOptions(),t=e.elem.next(),n=0,i=t.find(".layui-table-main tbody tr"),l=t.find(".layui-table-fixed-l tbody tr"),d=t.find(".layui-table-fixed-r tbody tr");layui.each(a.treeToFlat(B.cache[e.id]),function(e,t){t.LAY_HIDE||(a.getNodeDataByIndex(t[Y]).LAY_NUM=++n,i.eq(e).find(".laytable-cell-numbers").html(n),l.eq(e).find(".laytable-cell-numbers").html(n),d.eq(e).find(".laytable-cell-numbers").html(n))})}),p=(t.prototype.render=function(e){var t=this;t.tableIns=B["reloadData"===e?"reloadData":"reload"](t.tableIns.config.id,E.extend(!0,{},t.config)),t.config=t.tableIns.config},t.prototype.reload=function(e,t,a){var n=this;e=e||{},delete n.haveInit,layui.each(e,function(e,t){"array"===layui.type(t)&&delete n.config[e]}),d(n.getOptions().id,e,a||!0),n.config=E.extend(t,{},n.config,e),n.render(a)},j.reloadData=function(){var e=E.extend(!0,[],arguments);return e[3]="reloadData",j.reload.apply(null,e)},function(e,a,n,i){var l=[];return layui.each(e,function(e,t){"function"===layui.type(a)?a(t):E.extend(t,a),l.push(E.extend({},t)),i||(l=l.concat(p(t[n],a,n,i)))}),l}),o=(t.prototype.updateStatus=function(e,t,a){var n=this.getOptions(),i=n.tree;return e=e||B.cache[n.id],p(e,t,i.customName.children,a)},t.prototype.getTableData=function(){var e=this.getOptions();return B.cache[e.id]},j.updateStatus=function(e,t,a){var e=P(e),n=e.getOptions();return a=a||(n.url?B.cache[n.id]:n.data),e.updateStatus(a,t)},j.sort=function(e){var t=P(e);t&&t.getOptions().autoSort&&(t.initData(),j.renderData(e))},function(n){var t=n.config.id,i=P(t),a=n.data=j.getNodeDataByIndex(t,n.index),l=a[Y],d=(n.dataIndex=l,n.update);n.update=function(){var e=arguments,t=(E.extend(i.getNodeDataByIndex(l),e[0]),d.apply(this,e)),a=n.config.tree.customName.name;return a in e[0]&&n.tr.find('td[data-field="'+a+'"]').children("div.layui-table-cell").removeClass("layui-table-tree-item"),i.renderTreeTable(n.tr,n.tr.attr("data-level"),!1),t},n.del=function(){j.removeNode(t,a)},n.setRowChecked=function(e){j.setRowChecked(t,{index:a,checked:e})}}),u=(j.updateNode=function(e,a,t){var n,i,l,d,r,o=P(e);o&&((d=o.getOptions()).tree,d=(n=d.elem.next()).find('tr[lay-data-index="'+a+'"]'),i=d.attr("data-index"),l=d.attr("data-level"),t)&&(d=o.getNodeDataByIndex(a,!1,t),r=B.getTrHtml(e,[d]),layui.each(["main","fixed-l","fixed-r"],function(e,t){n.find(".layui-table-"+t+' tbody tr[lay-data-index="'+a+'"]').replaceWith(E(r[["trs","trs_fixed","trs_fixed_r"][e]].join("")).attr({"data-index":i,"lay-data-index":a,"data-level":l}))}),o.renderTreeTable(n.find('tr[lay-data-index="'+a+'"]'),l))},j.removeNode=function(e,t){var a,n,i,l,d,r=P(e);r&&(d=(a=r.getOptions()).tree,n=a.elem.next(),i=[],t=r.getNodeDataByIndex("string"===layui.type(t)?t:t[Y],!1,"delete"),l=r.getNodeDataByIndex(t[s]),r.updateCheckStatus(l),l=r.treeToFlat([t],t[d.customName.pid],t[s]),layui.each(l,function(e,t){i.push('tr[lay-data-index="'+t[Y]+'"]')}),n.find(i.join(",")).remove(),d=r.initData(),layui.each(r.treeToFlat(d),function(e,t){t[m]&&t[m]!==t[Y]&&n.find('tr[lay-data-index="'+t[m]+'"]').attr({"data-index":t[Y],"lay-data-index":t[Y]})}),layui.each(B.cache[e],function(e,t){n.find('tr[data-level="0"][lay-data-index="'+t[Y]+'"]').attr("data-index",e)}),a.hasNumberCol&&g(r),j.resize(e))},j.addNodes=function(e,t){var a=P(e);if(a){var n=a.getOptions(),i=n.tree,l=n.elem.next(),d=B.config.checkName,r=(t=t||{}).parentIndex,o=t.index,c=t.data,t=t.focus,u=(r="number"===layui.type(r)?r.toString():r)?a.getNodeDataByIndex(r):null,o="number"===layui.type(o)?o:-1,c=E.extend(!0,[],layui.isArray(c)?c:[c]);layui.each(c,function(e,t){d in t||!u||(t[d]=u[d])}),a.getTableData();if(u){var s=i.customName.isParent,f=i.customName.children;u[s]=!0;var y=(y=u[f])?(p=y.splice(-1===o?y.length:o),u[f]=y.concat(c,p)):u[f]=c,f=(a.updateStatus(y,function(e){(e[s]||i.view.showFlexIconIfNotParent)&&(e[z]=!1)}),a.treeToFlat(y));l.find(f.map(function(e){return'tr[lay-data-index="'+e[Y]+'"]'}).join(",")).remove(),a.initData(),u[z]=!1,u[X]="local",U({trElem:l.find('tr[lay-data-index="'+r+'"]')},!0)}else{var p=B.cache[e].splice(-1===o?B.cache[e].length:o);if(B.cache[e]=B.cache[e].concat(c,p),n.url||(n.page?(y=n.page,n.data.splice.apply(n.data,[y.limit*(y.curr-1),y.limit].concat(B.cache[e]))):n.data=B.cache[e]),a.initData(),l.find(".layui-none").length)return B.renderData(e),c;var x,f=B.getTrHtml(e,c),h={trs:E(f.trs.join("")),trs_fixed:E(f.trs_fixed.join("")),trs_fixed_r:E(f.trs_fixed_r.join(""))},r=(layui.each(c,function(e,t){x={"data-index":t[Y],"lay-data-index":t[Y],"data-level":"0"},h.trs.eq(e).attr(x),h.trs_fixed.eq(e).attr(x),h.trs_fixed_r.eq(e).attr(x)}),parseInt(c[0][Y])-1),y=l.find(L),n=l.find(q),f=l.find(R);-1==r?(y.find('tr[data-level="0"][data-index="0"]').before(h.trs),n.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed),f.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed_r)):-1===o?(y.find("tbody").append(h.trs),n.find("tbody").append(h.trs_fixed),f.find("tbody").append(h.trs_fixed_r)):(r=p[0][m],y.find('tr[data-level="0"][data-index="'+r+'"]').before(h.trs),n.find('tr[data-level="0"][data-index="'+r+'"]').before(h.trs_fixed),f.find('tr[data-level="0"][data-index="'+r+'"]').before(h.trs_fixed_r)),layui.each(B.cache[e],function(e,t){l.find('tr[data-level="0"][lay-data-index="'+t[Y]+'"]').attr("data-index",e)}),a.renderTreeTable(l.find(c.map(function(e,t,a){return'tr[lay-data-index="'+e[Y]+'"]'}).join(",")))}return a.updateCheckStatus(u),j.resize(e),t&&l.find(L).find('tr[lay-data-index="'+c[0][Y]+'"]').get(0).scrollIntoViewIfNeeded(),c}},j.checkStatus=function(e,n){var i,t,a,l=P(e);if(l)return l=l.getOptions().tree,i=B.config.checkName,t=j.getData(e,!0).filter(function(e,t,a){return e[i]||n&&e[b]}),a=!0,layui.each("all"===l.data.cascade?B.cache[e]:j.getData(e,!0),function(e,t){if(!t[i])return!(a=!1)}),{data:t,isAll:a}},j.on("sort",function(e){var e=e.config,t=e.elem.next(),e=e.id;t.hasClass(h)&&j.sort(e)}),j.on("row",function(e){e.config.elem.next().hasClass(h)&&o(e)}),j.on("rowDouble",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&(o(e),(t.tree||{}).view.dblClickExpand)&&U({trElem:e.tr.first()},null,null,null,!0)}),j.on("rowContextmenu",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&o(e)}),j.on("tool",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&o(e)}),j.on("edit",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&(o(e),e.field===t.tree.customName.name)&&((a={})[e.field]=e.value,e.update(a))}),j.on("radio",function(e){var t=e.config,a=t.elem.next(),t=t.id;a.hasClass(h)&&(a=P(t),o(e),u.call(a,e.tr,e.checked))}),t.prototype.setRowCheckedClass=function(e,t){var a=this.getOptions(),n=(e.data("index"),a.elem.next());e[t?"addClass":"removeClass"](l),e.each(function(){var e=E(this).data("index");n.find('.layui-table-fixed-r tbody tr[data-index="'+e+'"]')[t?"addClass":"removeClass"](l)})},t.prototype.updateCheckStatus=function(e,t){var a,n,i,l,d,r,o,c=this,u=c.getOptions();return!!u.hasChecboxCol&&(a=u.tree,n=u.id,i=u.elem.next(),l=B.config.checkName,"all"!==(d=a.data.cascade)&&"parent"!==d||!e||(d=c.updateParentCheckStatus(e,"boolean"===layui.type(t)?t:null),layui.each(d,function(e,t){var a=i.find('tr[lay-data-index="'+t[Y]+'"] input[name="layTableCheckbox"]:not(:disabled)'),n=t[l];c.setRowCheckedClass(a.closest("tr"),n),x.render(a.prop({checked:n,indeterminate:t[b]}))})),o=!(r=!0),e=(e="all"===a.data.cascade?B.cache[n]:j.getData(n,!0)).filter(function(e){return!e[u.disabledName]}),layui.each(e,function(e,t){if((t[l]||t[b])&&(o=!0),t[l]||(r=!1),o&&!r)return!0}),o=o&&!r,x.render(i.find('input[name="layTableCheckbox"][lay-filter="layTableAllChoose"]').prop({checked:r,indeterminate:o})),r)},t.prototype.updateParentCheckStatus=function(a,n){var i,e=this.getOptions(),t=e.tree,e=e.id,l=B.config.checkName,t=t.customName.children,d=[];return!(a[b]=!1)===n?a[t].length?layui.each(a[t],function(e,t){if(!t[l])return n=!1,a[b]=!0}):n=!1:!1===n?layui.each(a[t],function(e,t){if(t[l]||t[b])return a[b]=!0}):(n=!1,i=0,layui.each(a[t],function(e,t){t[l]&&i++}),n=a[t].length?a[t].length===i:a[l],a[b]=!n&&0')),n=(e.tree(a),i.elem=p(i.elem));if(n[0]){if(e.key=i.id||e.index,e.elem=a,e.elemNone=p('
      '+i.text.none+"
      "),n.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);i.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=p(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(T),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(T)}),e.events()}},l.prototype.renderForm=function(e){i.render(e,"LAY-tree-"+this.index)},l.prototype.tree=function(r,e){var d=this,s=d.config,o=s.customName,e=e||s.data;layui.each(e,function(e,i){var a,n,t=i[o.children]&&0"),c=p(['
      ','
      ','
      ',s.showLine?t?'':'':'',s.showCheckbox?'':"",s.isJump&&i.href?''+(i[o.title]||i.label||s.text.defaultNodeName)+"":''+(i[o.title]||i.label||s.text.defaultNodeName)+"","
      ",s.edit?(a={add:'',update:'',del:''},n=['
      '],!0===s.edit&&(s.edit=["update","del"]),"object"==typeof s.edit?(layui.each(s.edit,function(e,i){n.push(a[i]||"")}),n.join("")+"
      "):void 0):"","
      "].join(""));t&&(c.append(l),d.tree(l,i[o.children])),r.append(c),c.prev("."+k)[0]&&c.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),t||c.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),d.spread(c,i),s.showCheckbox&&(i.checked&&d.checkids.push(i[o.id]),d.checkClick(c,i)),s.edit&&d.operate(c,i)})},l.prototype.spread=function(n,t){var l=this,c=l.config,e=n.children("."+b),i=e.children("."+g),a=i.find('input[same="layuiTreeCheck"]'),r=e.find("."+C),e=e.find("."+w),d=c.onlyIconControl?r:i,s="";d.on("click",function(e){var i=n.children("."+N),a=(d.children(".layui-icon")[0]?d:d.find(".layui-tree-icon")).children(".layui-icon");i[0]?n.hasClass(F)?(n.removeClass(F),i.slideUp(200),a.removeClass(x).addClass(v),l.updateFieldValue(t,"spread",!1)):(n.addClass(F),i.slideDown(200),a.addClass(x).removeClass(v),l.updateFieldValue(t,"spread",!0),c.accordion&&((i=n.siblings("."+k)).removeClass(F),i.children("."+N).slideUp(200),i.find(".layui-tree-icon").children(".layui-icon").removeClass(x).addClass(v))):s="normal"}),e.on("click",function(){p(this).hasClass(u)||(s=n.hasClass(F)?c.onlyIconControl?"open":"close":c.onlyIconControl?"close":"open",a[0]&&l.updateFieldValue(t,"checked",a.prop("checked")),c.click&&c.click({elem:n,state:s,data:t}))})},l.prototype.updateFieldValue=function(e,i,a){i in e&&(e[i]=a)},l.prototype.setCheckbox=function(e,i,a){var t,n=this,l=n.config.customName,c=a.prop("checked");a.prop("disabled")||("object"!=typeof i[l.children]&&!e.find("."+N)[0]||e.find("."+N).find('input[same="layuiTreeCheck"]').each(function(e){this.disabled||((e=i[l.children][e])&&n.updateFieldValue(e,"checked",c),n.updateFieldValue(this,"checked",c))}),(t=function(e){var i,a,n;e.parents("."+k)[0]&&(a=(e=e.parent("."+N)).parent(),n=e.prev().find('input[same="layuiTreeCheck"]'),c?n.prop("checked",c):(e.find('input[same="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||n.prop("checked",!1)),t(a))})(e),n.renderForm("checkbox"))},l.prototype.checkClick=function(a,n){var t=this,l=t.config;a.children("."+b).children("."+g).on("click",'input[same="layuiTreeCheck"]+',function(e){layui.stope(e);var e=p(this).prev(),i=e.prop("checked");e.prop("disabled")||(t.setCheckbox(a,n,e),t.updateFieldValue(n,"checked",i),l.oncheck&&l.oncheck({elem:a,checked:i,data:n}))})},l.prototype.operate=function(r,d){var s=this,o=s.config,u=o.customName,e=r.children("."+b),h=e.children("."+g);e.children(".layui-tree-btnGroup").on("click",".layui-icon",function(e){layui.stope(e);var i,e=p(this).data("type"),n=r.children("."+N),t={data:d,type:e,elem:r};if("add"==e){n[0]||(o.showLine?(h.find("."+C).addClass("layui-tree-icon"),h.find("."+C).children(".layui-icon").addClass(v).removeClass("layui-icon-file")):h.find(".layui-tree-iconArrow").removeClass(m),r.append('
      '));var a,l=o.operate&&o.operate(t),c={};if(c[u.title]=o.text.defaultNodeName,c[u.id]=l,s.tree(r.children("."+N),[c]),o.showLine&&(n[0]?(n.hasClass(S)||n.addClass(S),r.find("."+N).each(function(){p(this).children("."+k).last().addClass(T)}),(n.children("."+k).last().prev().hasClass(T)?n.children("."+k).last().prev():n.children("."+k).last()).removeClass(T),!r.parent("."+N)[0]&&r.next()[0]&&n.children("."+k).last().removeClass(T)):(l=r.siblings("."+k),a=1,c=r.parent("."+N),layui.each(l,function(e,i){p(i).children("."+N)[0]||(a=0)}),(1==a?(l.children("."+N).addClass(L),l.children("."+N).children("."+k).removeClass(T),r.children("."+N).addClass(L),c.removeClass(S),c.children("."+k).last().children("."+N).children("."+k).last()):r.children("."+N).children("."+k)).addClass(T))),!o.showCheckbox)return;h.find('input[same="layuiTreeCheck"]')[0].checked&&(r.children("."+N).children("."+k).last().find('input[same="layuiTreeCheck"]')[0].checked=!0),s.renderForm("checkbox")}else"update"==e?(l=h.children("."+w).html(),h.children("."+w).html(""),h.append(''),h.children(".layui-tree-editInput").val(f.unescape(l)).focus(),i=function(e){var i=e.val().trim()||o.text.defaultNodeName;e.remove(),h.children("."+w).html(i),t.data[u.title]=i,o.operate&&o.operate(t)},h.children(".layui-tree-editInput").blur(function(){i(p(this))}),h.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),i(p(this)))})):y.confirm('\u786e\u8ba4\u5220\u9664\u8be5\u8282\u70b9 "'+(d[u.title]||"")+'" \u5417\uff1f',function(e){var l,a,i;o.operate&&o.operate(t),t.status="remove",y.close(e),r.prev("."+k)[0]||r.next("."+k)[0]||r.parent("."+N)[0]?(r.siblings("."+k).children("."+b)[0]?(o.showCheckbox&&(l=function(e){var i,a,n,t;e.parents("."+k)[0]&&(i=e.siblings("."+k).children("."+b),a=(e=e.parent("."+N).prev()).find('input[same="layuiTreeCheck"]')[0],n=1,(t=0)==a.checked)&&(i.each(function(e,i){i=p(i).find('input[same="layuiTreeCheck"]')[0];0!=i.checked||i.disabled||(n=0),i.disabled||(t=1)}),1==n)&&1==t&&(a.checked=!0,s.renderForm("checkbox"),l(e.parent("."+k)))})(r),o.showLine&&(e=r.siblings("."+k),a=1,i=r.parent("."+N),layui.each(e,function(e,i){p(i).children("."+N)[0]||(a=0)}),1==a?(n[0]||(i.removeClass(S),e.children("."+N).addClass(L),e.children("."+N).children("."+k).removeClass(T)),(r.next()[0]?i.children("."+k).last():r.prev()).children("."+N).children("."+k).last().addClass(T),r.next()[0]||r.parents("."+k)[1]||r.parents("."+k).eq(0).next()[0]||r.prev("."+k).addClass(T)):!r.next()[0]&&r.hasClass(T)&&r.prev().addClass(T))):(e=r.parent("."+N).prev(),o.showLine?(e.find("."+C).removeClass("layui-tree-icon"),e.find("."+C).children(".layui-icon").removeClass(x).addClass("layui-icon-file"),(i=e.parents("."+N).eq(0)).addClass(S),i.children("."+k).each(function(){p(this).children("."+N).children("."+k).last().addClass(T)})):e.find(".layui-tree-iconArrow").addClass(m),r.parents("."+k).eq(0).removeClass(F),r.parent("."+N).remove()),r.remove()):(r.remove(),s.elem.append(s.elemNone))})})},l.prototype.events=function(){var i=this,t=i.config;i.elem.find(".layui-tree-checkedFirst");i.setChecked(i.checkids),i.elem.find(".layui-tree-search").on("keyup",function(){var e=p(this),a=e.val(),e=e.nextAll(),n=[];e.find("."+w).each(function(){var i,e=p(this).parents("."+b);-1!=p(this).html().indexOf(a)&&(n.push(p(this).parent()),(i=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+N)[0]&&i(e.parent("."+N).parent("."+k))})(e.parent("."+k)))}),e.find("."+b).each(function(){var e=p(this).parent("."+k);e.hasClass("layui-tree-searchShow")||e.addClass(m)}),0==e.find(".layui-tree-searchShow").length&&i.elem.append(i.elemNone),t.onsearch&&t.onsearch({elem:n})}),i.elem.find(".layui-tree-search").on("keydown",function(){p(this).nextAll().find("."+b).each(function(){p(this).parent("."+k).removeClass("layui-tree-searchShow "+m)}),p(".layui-tree-emptyText")[0]&&p(".layui-tree-emptyText").remove()})},l.prototype.getChecked=function(){var t=this,e=t.config,l=e.customName,i=[],a=[],c=(t.elem.find(".layui-form-checked").each(function(){i.push(p(this).prev()[0].value)}),function(e,n){layui.each(e,function(e,a){layui.each(i,function(e,i){if(a[l.id]==i)return t.updateFieldValue(a,"checked",!0),delete(i=p.extend({},a))[l.children],n.push(i),a[l.children]&&(i[l.children]=[],c(a[l.children],i[l.children])),!0})})});return c(p.extend({},e.data),a),a},l.prototype.setChecked=function(l){this.config;this.elem.find("."+k).each(function(e,i){var a=p(this).data("id"),n=p(i).children("."+b).find('input[same="layuiTreeCheck"]'),t=n.next();if("number"==typeof l){if(a.toString()==l.toString())return n[0].checked||t.click(),!1}else"object"==typeof l&&layui.each(l,function(e,i){if(i.toString()==a.toString()&&!n[0].checked)return t.click(),!0})})},n.that={},n.config={},t.reload=function(e,i){e=n.that[e];return e.reload(i),n.call(e)},t.getChecked=function(e){return n.that[e].getChecked()},t.setChecked=function(e,i){return n.that[e].setChecked(i)},t.render=function(e){e=new l(e);return n.call(e)},e(a,t)});layui.define(["laytpl","form"],function(e){"use strict";var d=layui.$,n=layui.laytpl,t=layui.form,a="transfer",i={config:{},index:layui[a]?layui[a].index+1e4:0,set:function(e){var t=this;return t.config=d.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,a,e,t)}},l=function(){var t=this,e=t.config,a=e.id||t.index;return l.that[a]=t,{config:l.config[a]=e,reload:function(e){t.reload.call(t,e)},getData:function(){return t.getData.call(t)}}},s="layui-hide",u="layui-btn-disabled",c="layui-none",r="layui-transfer-box",h="layui-transfer-header",o="layui-transfer-search",f="layui-transfer-data",y=function(e){return['
      ','
      ','","
      ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
        ',"
        "].join("")},p=['
        ',y({index:0,checkAllName:"layTransferLeftCheckAll"}),'
        ','",'","
        ",y({index:1,checkAllName:"layTransferRightCheckAll"}),"
        "].join(""),v=function(e){var t=this;t.index=++i.index,t.config=d.extend({},t.config,i.config,e),t.render()};v.prototype.config={title:["\u5217\u8868\u4e00","\u5217\u8868\u4e8c"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"\u65e0\u6570\u636e",searchNone:"\u65e0\u5339\u914d\u6570\u636e"}},v.prototype.reload=function(e){var t=this;t.config=d.extend({},t.config,e),t.render()},v.prototype.render=function(){var e=this,t=e.config,a=e.elem=d(n(p,{open:"{{",close:"}}"}).render({data:t,index:e.index})),i=t.elem=d(t.elem);i[0]&&(t.data=t.data||[],t.value=t.value||[],t.id="id"in t?t.id:elem.attr("id")||e.index,e.key=t.id,i.html(e.elem),e.layBox=e.elem.find("."+r),e.layHeader=e.elem.find("."+h),e.laySearch=e.elem.find("."+o),e.layData=a.find("."+f),e.layBtn=a.find(".layui-transfer-active .layui-btn"),e.layBox.css({width:t.width,height:t.height}),e.layData.css({height:(i=t.height-e.layHeader.outerHeight(),t.showSearch&&(i-=e.laySearch.outerHeight()),i-2)}),e.renderData(),e.events())},v.prototype.renderData=function(){var e=this,t=e.config,l=[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}];e.parseData(function(a){var i=a.selected?1:0,n=["
      • ",'',"
      • "].join("");i?layui.each(t.value,function(e,t){t==a.value&&a.selected&&(l[i].views[e]=n)}):l[i].views.push(n),delete a.selected}),e.layData.eq(0).html(l[0].views.join("")),e.layData.eq(1).html(l[1].views.join("")),e.renderCheckBtn()},v.prototype.renderForm=function(e){t.render(e,"LAY-transfer-"+this.index)},v.prototype.renderCheckBtn=function(c){var r=this,o=r.config;c=c||{},r.layBox.each(function(e){var t=d(this),a=t.find("."+f),t=t.find("."+h).find('input[type="checkbox"]'),i=a.find('input[type="checkbox"]'),n=0,l=!1;i.each(function(){var e=d(this).data("hide");(this.checked||this.disabled||e)&&n++,this.checked&&!e&&(l=!0)}),t.prop("checked",l&&n===i.length),r.layBtn.eq(e)[l?"removeClass":"addClass"](u),c.stopNone||(i=a.children("li:not(."+s+")").length,r.noneView(a,i?"":o.text.none))}),r.renderForm("checkbox")},v.prototype.noneView=function(e,t){var a=d('

        '+(t||"")+"

        ");e.find("."+c)[0]&&e.find("."+c).remove(),t.replace(/\s/g,"")&&e.append(a)},v.prototype.setValue=function(){var e=this.config,t=[];return this.layBox.eq(1).find("."+f+' input[type="checkbox"]').each(function(){d(this).data("hide")||t.push(this.value)}),e.value=t,this},v.prototype.parseData=function(t){var i=this.config,n=[];return layui.each(i.data,function(e,a){a=("function"==typeof i.parseData?i.parseData(a):a)||a,n.push(a=d.extend({},a)),layui.each(i.value,function(e,t){t==a.value&&(a.selected=!0)}),t&&t(a)}),i.data=n,this},v.prototype.getData=function(e){var t=this.config,i=[];return this.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&i.push(t)})}),i},v.prototype.transfer=function(e,t){var a,i=this,n=i.config,l=i.layBox.eq(e),c=[],t=(t?((a=(t=t).find('input[type="checkbox"]'))[0].checked=!1,l.siblings("."+r).find("."+f).append(t.clone()),t.remove(),c.push(a[0].value),i.setValue()):l.each(function(e){d(this).find("."+f).children("li").each(function(){var e=d(this),t=e.find('input[type="checkbox"]'),a=t.data("hide");t[0].checked&&!a&&(t[0].checked=!1,l.siblings("."+r).find("."+f).append(e.clone()),e.remove(),c.push(t[0].value)),i.setValue()})}),i.renderCheckBtn(),l.siblings("."+r).find("."+o+" input"));""!==t.val()&&t.trigger("keyup"),n.onchange&&n.onchange(i.getData(c),e)},v.prototype.events=function(){var n=this,l=n.config;n.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var e=d(this).prev(),t=e[0].checked,a=e.parents("."+r).eq(0).find("."+f);e[0].disabled||("all"===e.attr("lay-type")&&a.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=t)}),setTimeout(function(){n.renderCheckBtn({stopNone:!0})},0))}),n.elem.on("dblclick","."+f+">li",function(e){var t=d(this),a=t.children('input[type="checkbox"]'),i=t.parent().parent().data("index");a[0].disabled||!1!==("function"==typeof l.dblclick?l.dblclick({elem:t,data:n.getData([a[0].value])[0],index:i}):null)&&n.transfer(i,t)}),n.layBtn.on("click",function(){var e=d(this),t=e.data("index");e.hasClass(u)||n.transfer(t)}),n.laySearch.find("input").on("keyup",function(){var i=this.value,e=d(this).parents("."+o).eq(0).siblings("."+f),t=e.children("li"),t=(t.each(function(){var e=d(this),t=e.find('input[type="checkbox"]'),a=t[0].title,a=("cs"!==l.showSearch&&(a=a.toLowerCase(),i=i.toLowerCase()),-1!==a.indexOf(i));e[a?"removeClass":"addClass"](s),t.data("hide",!a)}),n.renderCheckBtn(),t.length===e.children("li."+s).length);n.noneView(e,t?l.text.searchNone:"")})},l.that={},l.config={},i.reload=function(e,t){e=l.that[e];return e.reload(t),l.call(e)},i.getData=function(e){return l.that[e].getData()},i.render=function(e){e=new v(e);return l.call(e)},e(a,i)});layui.define(["jquery","lay"],function(e){"use strict";var a=layui.$,l=layui.lay,t=(layui.hint(),layui.device(),{config:{},set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,d,e,i)}}),d="carousel",r="layui-this",s="layui-carousel-left",u="layui-carousel-right",c="layui-carousel-prev",h="layui-carousel-next",o="layui-carousel-arrow",m="layui-carousel-ind",i=function(e){var i=this;i.config=a.extend({},i.config,t.config,e),i.render()};i.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},i.prototype.render=function(){var e=this,i=e.config,n=a(i.elem);if(1*[carousel-item]>*"),i.index<0&&(i.index=0),i.index>=e.elemItem.length&&(i.index=e.elemItem.length-1),i.interval<800&&(i.interval=800),i.full?i.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):i.elem.css({width:i.width,height:i.height}),i.elem.attr("lay-anim",i.anim),e.elemItem.eq(i.index).addClass(r),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},i.prototype.reload=function(e){var i=this;clearInterval(i.timer),i.config=a.extend({},i.config,e),i.render()},i.prototype.prevIndex=function(){var e=this.config.index-1;return e=e<0?this.elemItem.length-1:e},i.prototype.nextIndex=function(){var e=this.config.index+1;return e=e>=this.elemItem.length?0:e},i.prototype.addIndex=function(e){var i=this.config;i.index=i.index+(e=e||1),i.index>=this.elemItem.length&&(i.index=0)},i.prototype.subIndex=function(e){var i=this.config;i.index=i.index-(e=e||1),i.index<0&&(i.index=this.elemItem.length-1)},i.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},i.prototype.arrow=function(){var i=this,e=i.config,n=a(['",'"].join(""));e.elem.attr("lay-arrow",e.arrow),e.elem.find("."+o)[0]&&e.elem.find("."+o).remove(),e.elem.append(n),n.on("click",function(){var e=a(this).attr("lay-type");i.slide(e)})},i.prototype["goto"]=function(e){var i=this,n=i.config;e>n.index?i.slide("add",e-n.index):e
          ',(i=[],layui.each(e.elemItem,function(e){i.push("")}),i.join("")),"
        "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+m)[0]&&n.elem.find("."+m).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(){e["goto"](a(this).index())})},i.prototype.slide=function(e,i){var n=this,t=n.elemItem,a=n.config,o=a.index,l=a.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),t.eq(a.index).addClass(c),setTimeout(function(){t.eq(o).addClass(u),t.eq(a.index).addClass(u)},50)):(n.addIndex(i),t.eq(a.index).addClass(h),setTimeout(function(){t.eq(o).addClass(s),t.eq(a.index).addClass(s)},50)),setTimeout(function(){t.removeClass(r+" "+c+" "+h+" "+s+" "+u),t.eq(a.index).addClass(r),n.haveSlide=!1},350),n.elemInd.find("li").eq(a.index).addClass(r).siblings().removeClass(r),n.haveSlide=!0,e={index:a.index,prevIndex:o,item:t.eq(a.index)},"function"==typeof a.change&&a.change(e),layui.event.call(this,d,"change("+l+")",e))},i.prototype.events=function(){var t,a,o=this,e=o.config;e.elem.data("haveEvents")||(e.elem.on("mouseenter touchstart",function(){"always"!==o.config.autoplay&&clearInterval(o.timer)}).on("mouseleave touchend",function(){"always"!==o.config.autoplay&&o.autoplay()}),t=e.elem,a="updown"===e.anim,l.touchSwipe(t,{onTouchEnd:function(e,i){var n=Date.now()-i.timeStart,i=a?i.distanceY:i.distanceX;(.25t[a?"height":"width"]()/3)&&o.slide(0a.length&&(a.value=a.length),parseInt(a.value)===a.value||a.half||(a.value=Math.ceil(a.value)-a.value<.5?Math.ceil(a.value):Math.floor(a.value)),'
          "),n=1;n<=a.length;n++){var o='
        • ";a.half&&parseInt(a.value)!==a.value&&n==Math.ceil(a.value)?i=i+'
        • ":i+=o}i+="
        "+(a.text?''+a.value+"\u661f":"")+"";var l=a.elem,s=l.next(".layui-rate");s[0]&&s.remove(),e.elemTemp=u(i),a.span=e.elemTemp.next("span"),a.setText&&a.setText(a.value),l.html(e.elemTemp),l.addClass("layui-inline"),a.readonly||e.action()},a.prototype.setvalue=function(e){this.config.value=e,this.render()},a.prototype.action=function(){var n=this.config,t=this.elemTemp,i=t.find("i").width(),l=t.children("li");l.each(function(e){var a=e+1,l=u(this);l.on("click",function(e){n.value=a,n.half&&e.pageX-u(this).offset().left<=i/2&&(n.value=n.value-.5),n.text&&t.next("span").text(n.value+"\u661f"),n.choose&&n.choose(n.value),n.setText&&n.setText(n.value)}),l.on("mousemove",function(e){t.find("i").each(function(){u(this).addClass(h).removeClass(s)}),t.find("i:lt("+a+")").each(function(){u(this).addClass(f).removeClass(v)}),n.half&&e.pageX-u(this).offset().left<=i/2&&l.children("i").addClass(o).removeClass(f)}),l.on("mouseleave",function(){t.find("i").each(function(){u(this).addClass(h).removeClass(s)}),t.find("i:lt("+Math.floor(n.value)+")").each(function(){u(this).addClass(f).removeClass(v)}),n.half&&parseInt(n.value)!==n.value&&t.children("li:eq("+Math.floor(n.value)+")").children("i").addClass(o).removeClass("layui-icon-rate-solid layui-icon-rate")})}),r.touchSwipe(t,{onTouchMove:function(e,a){var i;Date.now()-a.timeStart<=200||(a=e.touches[0].pageX,e=t.width()/n.length,a=(a-t.offset().left)/e,(i=(i=(e=a%1)<=.5&&n.half?.5+(a-e):Math.ceil(a))>n.length?n.length:i)<0&&(i=0),l.each(function(e){var a=u(this).children("i"),l=Math.ceil(i)-e==1,t=Math.ceil(i)>e,e=i-e==.5;t?(a.addClass(f).removeClass(v),n.half&&e&&a.addClass(o).removeClass(f)):a.addClass(h).removeClass(s),a.toggleClass("layui-rate-hover",l)}),n.value=i,n.text&&t.next("span").text(n.value+"\u661f"),n.setText&&n.setText(n.value))},onTouchEnd:function(e,a){Date.now()-a.timeStart<=200||(t.find("i").removeClass("layui-rate-hover"),n.choose&&n.choose(n.value),n.setText&&n.setText(n.value))}})},a.prototype.events=function(){},c.render=function(e){e=new a(e);return function(){var a=this;return{setvalue:function(e){a.setvalue.call(a,e)},config:a.config}}.call(e)},e(l,c)});layui.define("jquery",function(l){"use strict";var g=layui.$,e=function(l){};e.prototype.load=function(l){var t,i,o,n,e,r,a,c,m,s,u,f,y,d=this,p=0,h=g((l=l||{}).elem);if(h[0])return e=g(l.scrollElem||document),r=l.mb||50,a=!("isAuto"in l)||l.isAuto,c=l.end||"\u6ca1\u6709\u66f4\u591a\u4e86",m=l.scrollElem&&l.scrollElem!==document,u=g('"),h.find(".layui-flow-more")[0]||h.append(u),f=function(l,e){l=g(l),u.before(l),(e=0==e||null)?u.html(c):u.find("a").html(s),i=e,t=null,o&&o()},(y=function(){t=!0,u.find("a").html(''),"function"==typeof l.done&&l.done(++p,f)})(),u.find("a").on("click",function(){g(this);i||t||y()}),l.isLazyimg&&(o=d.lazyimg({elem:l.elem+" img",scrollElem:l.scrollElem})),a&&e.on("scroll",function(){var e=g(this),o=e.scrollTop();n&&clearTimeout(n),!i&&h.width()&&(n=setTimeout(function(){var l=(m?e:g(window)).height();(m?e.prop("scrollHeight"):document.documentElement.scrollHeight)-o-l<=r&&(t||y())},100))}),d},e.prototype.lazyimg=function(l){var e,c=this,m=0,s=g((l=l||{}).scrollElem||document),u=l.elem||"img",f=l.scrollElem&&l.scrollElem!==document,y=function(e,l){var o,t=s.scrollTop(),l=t+l,i=f?e.offset().top-s.offset().top+t:e.offset().top;t<=i&&i<=l&&e.attr("lay-src")&&(o=e.attr("lay-src"),layui.img(o,function(){var l=c.lazyimg.elem.eq(m);e.attr("src",o).removeAttr("lay-src"),l[0]&&n(l),m++},function(){c.lazyimg.elem.eq(m);e.removeAttr("lay-src")}))},n=function(l,e){var o=(f?e||s:g(window)).height(),t=s.scrollTop(),i=t+o;if(c.lazyimg.elem=g(u),l)y(l,o);else for(var n=0;n"),preview:"Preview"},wordWrap:!0,lang:"text",highlighter:!1,langMarker:!1},W=layui.code?layui.code.index+1e4:0,R=function(e){return String(e).replace(/\s+$/,"").replace(/^\n|\n$/,"")};e("code",function(l,e){var o,i,t,a,n,d,c,s,r,u,y,p,E,f,h,v,m,L,_,M,C,g={config:l=x.extend(!0,{},T,l),reload:function(e){layui.code(this.updateOptions(e))},updateOptions:function(e){return delete(e=e||{}).elem,x.extend(!0,l,e)},reloadCode:function(e){layui.code(this.updateOptions(e),"reloadCode")}},w=x(l.elem);return 1',l.ln?['
        ',D.digit(t+1)+".","
        "].join(""):"",'
        ',e||" ","
        ",""].join("")})}},a=l.code,n=function(e){return"function"==typeof l.codeParse?l.codeParse(e,l):e},"reloadCode"===e?o.children(".layui-code-wrap").html(w(n(a)).html):(d=layui.code.index=++W,o.attr("lay-code-index",d),(M=A.CDDE_DATA_CLASS in o.data())&&o.attr("class",o.data(A.CDDE_DATA_CLASS)||""),M||o.data(A.CDDE_DATA_CLASS,o.attr("class")),c={copy:{className:"file-b",title:["\u590d\u5236\u4ee3\u7801"],event:function(e){var t=D.unescape(n(l.code));lay.clipboard.writeText({text:t,done:function(){N.msg("\u5df2\u590d\u5236",{icon:1})},error:function(){N.msg("\u590d\u5236\u5931\u8d25",{icon:2})}}),"function"==typeof l.onCopy&&l.onCopy(t)}}},function b(){var e=o.parent("."+A.ELEM_PREVIEW),t=e.children("."+A.ELEM_TAB),a=e.children("."+A.ELEM_ITEM+"-preview");return t.remove(),a.remove(),e[0]&&o.unwrap(),b}(),l.preview&&(M="LAY-CODE-DF-"+d,f=l.layout||["code","preview"],s="iframe"===l.preview,E=x('
        '),C=x('
        '),r=x('
        '),_=x('
        '),u=x('
        '),l.id&&E.attr("id",l.id),E.addClass(l.className),C.attr("lay-filter",M),layui.each(f,function(e,t){var a=x('
      • ');0===e&&a.addClass("layui-this"),a.html(l.text[t]),r.append(a)}),x.extend(c,{full:{className:"screen-full",title:["\u6700\u5927\u5316\u663e\u793a","\u8fd8\u539f\u663e\u793a"],event:function(e){var e=e.elem,t=e.closest("."+A.ELEM_PREVIEW),a="layui-icon-"+this.className,i="layui-icon-screen-restore",l=this.title,o=x("html,body"),n="layui-scrollbar-hide";e.hasClass(a)?(t.addClass(A.ELEM_FULL),e.removeClass(a).addClass(i),e.attr("title",l[1]),o.addClass(n)):(t.removeClass(A.ELEM_FULL),e.removeClass(i).addClass(a),e.attr("title",l[0]),o.removeClass(n))}},window:{className:"release",title:["\u5728\u65b0\u7a97\u53e3\u9884\u89c8"],event:function(e){D.openWin({content:n(l.code)})}}}),l.copy&&("array"===layui.type(l.tools)?-1===l.tools.indexOf("copy")&&l.tools.unshift("copy"):l.tools=["copy"]),u.on("click",">i",function(){var e=x(this),t=e.data("type"),e={elem:e,type:t,options:l,rawCode:l.code,finalCode:D.unescape(n(l.code))};c[t]&&"function"==typeof c[t].event&&c[t].event(e),"function"==typeof l.toolsEvent&&l.toolsEvent(e)}),l.addTools&&l.tools&&(l.tools=[].concat(l.tools,l.addTools)),layui.each(l.tools,function(e,t){var a="object"==typeof t,i=a?t:c[t]||{className:t,title:[t]},l=i.className||i.type,o=i.title||[""],a=a?i.type||l:t;a&&(c[a]||((t={})[a]=i,x.extend(c,t)),u.append(''))}),o.addClass(A.ELEM_ITEM).wrap(E),C.append(r),l.tools&&C.append(u),o.before(C),s&&_.html(''),y=function(e){var t=e.children("iframe")[0];s&&t?t.srcdoc=n(l.code):e.html(l.code),setTimeout(function(){"function"==typeof l.done&&l.done({container:e,options:l,render:function(){I.render(e.find(".layui-form")),S.render()}})},3)},"preview"===f[0]?(_.addClass(A.ELEM_SHOW),o.before(_),y(_)):o.addClass(A.ELEM_SHOW).after(_),l.previewStyle=[l.style,l.previewStyle].join(""),_.attr("style",l.previewStyle),S.on("tab("+M+")",function(e){var t=x(this),a=x(e.elem).closest("."+A.ELEM_PREVIEW).find("."+A.ELEM_ITEM),e=a.eq(e.index);a.removeClass(A.ELEM_SHOW),e.addClass(A.ELEM_SHOW),"preview"===t.attr("lay-id")&&y(e),L()})),p=x(''),o.addClass((E=["layui-code-view layui-border-box"],l.wordWrap||E.push("layui-code-nowrap"),E.join(" "))),(C=l.theme||l.skin)&&(o.removeClass("layui-code-theme-dark layui-code-theme-light"),o.addClass("layui-code-theme-"+C)),l.highlighter&&o.addClass([l.highlighter,"language-"+l.lang,"layui-code-hl"].join(" ")),f=w(l.encode?D.escape(n(a)):a),h=f.lines,o.html(p.html(f.html)),l.ln&&o.append('
        '),l.height&&p.css("max-height",l.height),l.codeStyle=[l.style,l.codeStyle].join(""),l.codeStyle&&p.attr("style",function(e,t){return(t||"")+l.codeStyle}),v=[{selector:">.layui-code-wrap>.layui-code-line{}",setValue:function(e,t){e.style["padding-left"]=t+"px"}},{selector:">.layui-code-wrap>.layui-code-line>.layui-code-line-number{}",setValue:function(e,t){e.style.width=t+"px"}},{selector:">.layui-code-ln-side{}",setValue:function(e,t){e.style.width=t+"px"}}],m=lay.style({target:o[0],id:"DF-code-"+d,text:x.map(x.map(v,function(e){return e.selector}),function(e,t){return['.layui-code-view[lay-code-index="'+d+'"]',e].join(" ")}).join("")}),L=function b(){var e,i;return l.ln&&(e=Math.floor(h.length/100),i=p.children("."+A.ELEM_LINE).last().children("."+A.ELEM_LINE_NUM).outerWidth(),o.addClass(A.ELEM_LN_MODE),e)&&A.LINE_RAW_WIDTH
      • ')).html(l.title||l.text.code),o.prepend(_)),M=x('
        '),l.copy&&!l.preview&&((C=x(['','',""].join(""))).on("click",function(){c.copy.event()}),M.append(C)),l.langMarker&&M.append(''+l.lang+""),l.about&&M.append(l.about),o.append(M),l.preview||setTimeout(function(){"function"==typeof l.done&&l.done({})},3),l.elem.length===1+d&&"function"==typeof l.allDone&&l.allDone())),g})}),layui["layui.all"]||layui.addcss("modules/code.css?v=6","skincodecss"); \ No newline at end of file +/** v2.9.6 | MIT Licensed */ +;!function (d) { + "use strict"; + var t, h = d.document, m = {modules: {}, status: {}, timeout: 10, event: {}}, n = function () { + this.v = "2.9.6" + }, e = d.LAYUI_GLOBAL || {}, v = (t = h.currentScript ? h.currentScript.src : function () { + for (var t, e = h.scripts, o = e.length - 1, n = o; 0 < n; n--) if ("interactive" === e[n].readyState) { + t = e[n].src; + break + } + return t || e[o].src + }(), m.dir = e.dir || t.substring(0, t.lastIndexOf("/") + 1)), g = function (t, e) { + e = e || "log", d.console && console[e] && console[e]("layui error hint: " + t) + }, b = "undefined" != typeof opera && "[object Opera]" === opera.toString(), N = m.builtin = { + lay: "lay", + layer: "layer", + laydate: "laydate", + laypage: "laypage", + laytpl: "laytpl", + form: "form", + upload: "upload", + dropdown: "dropdown", + transfer: "transfer", + tree: "tree", + table: "table", + treeTable: "treeTable", + element: "element", + rate: "rate", + colorpicker: "colorpicker", + slider: "slider", + carousel: "carousel", + flow: "flow", + util: "util", + code: "code", + jquery: "jquery", + all: "all", + "layui.all": "layui.all" + }, s = (n.prototype.cache = m, n.prototype.define = function (t, n) { + return "function" == typeof t && (n = t, t = []), this.use(t, function () { + var o = function (t, e) { + layui[t] = e, m.status[t] = !0 + }; + return "function" == typeof n && n(function (t, e) { + o(t, e), m.callback[t] = function () { + n(o) + } + }), this + }, null, "define"), this + }, n.prototype.use = function (o, t, e, n) { + var r, i, a = this, u = m.dir = m.dir || v, l = h.getElementsByTagName("head")[0], + s = (o = "string" == typeof o ? [o] : "function" == typeof o ? (t = o, ["all"]) : o, d.jQuery && jQuery.fn.on && (a.each(o, function (t, e) { + "jquery" === e && o.splice(t, 1) + }), layui.jquery = layui.$ = jQuery), o[0]), c = 0; + + function p(t, e) { + var o = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/; + "load" !== t.type && !o.test((t.currentTarget || t.srcElement).readyState) || (m.modules[s] = e, l.removeChild(r), function n() { + return ++c > 1e3 * m.timeout / 4 ? g(s + " is not a valid module", "error") : void (m.status[s] ? y() : setTimeout(n, 4)) + }()) + } + + function y() { + e.push(layui[s]), 1 < o.length ? a.use(o.slice(1), t, e, n) : "function" == typeof t && (layui.jquery && "function" == typeof layui.jquery && "define" !== n ? layui.jquery(function () { + t.apply(layui, e) + }) : t.apply(layui, e)) + } + + return e = e || [], m.host = m.host || (u.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0], 0 === o.length || layui["layui.all"] && N[s] ? y() : (i = (i = (N[s] ? u + "modules/" : !/^\{\/\}/.test(a.modules[s]) && m.base || "") + (a.modules[s] || s) + ".js").replace(/^\{\/\}/, ""), !m.modules[s] && layui[s] && (m.modules[s] = i), m.modules[s] ? function f() { + return ++c > 1e3 * m.timeout / 4 ? g(s + " is not a valid module", "error") : void ("string" == typeof m.modules[s] && m.status[s] ? y() : setTimeout(f, 4)) + }() : ((r = h.createElement("script"))["async"] = !0, r.charset = "utf-8", r.src = i + ((u = !0 === m.version ? m.v || (new Date).getTime() : m.version || "") ? "?v=" + u : ""), l.appendChild(r), !r.attachEvent || r.attachEvent.toString && r.attachEvent.toString().indexOf("[native code") < 0 || b ? r.addEventListener("load", function (t) { + p(t, i) + }, !1) : r.attachEvent("onreadystatechange", function (t) { + p(t, i) + }), m.modules[s] = i)), a + }, n.prototype.disuse = function (t) { + var o = this; + return t = o.isArray(t) ? t : [t], o.each(t, function (t, e) { + m.status[e], delete o[e], delete N[e], delete o.modules[e], delete m.status[e], delete m.modules[e] + }), o + }, n.prototype.getStyle = function (t, e) { + t = t.currentStyle || d.getComputedStyle(t, null); + return t[t.getPropertyValue ? "getPropertyValue" : "getAttribute"](e) + }, n.prototype.link = function (o, n, t) { + var r = this, e = h.getElementsByTagName("head")[0], i = h.createElement("link"), + a = "layuicss-" + ((t = "string" == typeof n ? n : t) || o).replace(/\.|\//g, ""), u = "creating", l = 0; + return i.href = o + (m.debug ? "?v=" + (new Date).getTime() : ""), i.rel = "stylesheet", i.id = a, i.media = "all", h.getElementById(a) || e.appendChild(i), "function" == typeof n && function s(t) { + var e = h.getElementById(a); + return ++l > 1e3 * m.timeout / 100 ? g(o + " timeout") : void (1989 === parseInt(r.getStyle(e, "width")) ? (t === u && e.removeAttribute("lay-status"), e.getAttribute("lay-status") === u ? setTimeout(s, 100) : n()) : (e.setAttribute("lay-status", u), setTimeout(function () { + s(u) + }, 100))) + }(), r + }, n.prototype.addcss = function (t, e, o) { + return layui.link(m.dir + "css/" + t, e, o) + }, m.callback = {}, n.prototype.factory = function (t) { + if (layui[t]) return "function" == typeof m.callback[t] ? m.callback[t] : null + }, n.prototype.img = function (t, e, o) { + var n = new Image; + if (n.src = t, n.complete) return e(n); + n.onload = function () { + n.onload = null, "function" == typeof e && e(n) + }, n.onerror = function (t) { + n.onerror = null, "function" == typeof o && o(t) + } + }, n.prototype.config = function (t) { + for (var e in t = t || {}) m[e] = t[e]; + return this + }, n.prototype.modules = function () { + var t, e = {}; + for (t in N) e[t] = N[t]; + return e + }(), n.prototype.extend = function (t) { + for (var e in t = t || {}) this[e] || this.modules[e] ? g(e + " Module already exists", "error") : this.modules[e] = t[e]; + return this + }, n.prototype.router = n.prototype.hash = function (t) { + var o = {path: [], search: {}, hash: ((t = t || location.hash).match(/[^#](#.*$)/) || [])[1] || ""}; + return /^#\//.test(t) && (t = t.replace(/^#\//, ""), o.href = "/" + t, t = t.replace(/([^#])(#.*$)/, "$1").split("/") || [], this.each(t, function (t, e) { + /^\w+=/.test(e) ? (e = e.split("="), o.search[e[0]] = e[1]) : o.path.push(e) + })), o + }, n.prototype.url = function (t) { + var r, e, o = this; + return { + pathname: (t ? ((t.match(/\.[^.]+?\/.+/) || [])[0] || "").replace(/^[^\/]+/, "").replace(/\?.+/, "") : location.pathname).replace(/^\//, "").split("/"), + search: (r = {}, e = (t ? ((t.match(/\?.+/) || [])[0] || "").replace(/\#.+/, "") : location.search).replace(/^\?+/, "").split("&"), o.each(e, function (t, e) { + var o = e.indexOf("="), n = o < 0 ? e.substr(0, e.length) : 0 !== o && e.substr(0, o); + n && (r[n] = 0 < o ? e.substr(o + 1) : null) + }), r), + hash: o.router(t ? (t.match(/#.+/) || [])[0] || "/" : location.hash) + } + }, n.prototype.data = function (t, e, o) { + if (t = t || "layui", o = o || localStorage, d.JSON && d.JSON.parse) { + if (null === e) return delete o[t]; + e = "object" == typeof e ? e : {key: e}; + try { + var n = JSON.parse(o[t]) + } catch (r) { + n = {} + } + return "value" in e && (n[e.key] = e.value), e.remove && delete n[e.key], o[t] = JSON.stringify(n), e.key ? n[e.key] : n + } + }, n.prototype.sessionData = function (t, e) { + return this.data(t, e, sessionStorage) + }, n.prototype.device = function (t) { + var o = navigator.userAgent.toLowerCase(), e = function (t) { + var e = new RegExp(t + "/([^\\s\\_\\-]+)"); + return (t = (o.match(e) || [])[1]) || !1 + }, n = { + os: /windows/.test(o) ? "windows" : /linux/.test(o) ? "linux" : /iphone|ipod|ipad|ios/.test(o) ? "ios" : /mac/.test(o) ? "mac" : void 0, + ie: !!(d.ActiveXObject || "ActiveXObject" in d) && ((o.match(/msie\s(\d+)/) || [])[1] || "11"), + weixin: e("micromessenger") + }; + return t && !n[t] && (n[t] = e(t)), n.android = /android/.test(o), n.ios = "ios" === n.os, n.mobile = n.android || n.ios, n + }, n.prototype.hint = function () { + return {error: g} + }, n.prototype._typeof = n.prototype.type = function (t) { + return null === t ? String(t) : "object" == typeof t || "function" == typeof t ? (e = (e = Object.prototype.toString.call(t).match(/\s(.+)\]$/) || [])[1] || "Object", new RegExp("\\b(Function|Array|Date|RegExp|Object|Error|Symbol)\\b").test(e) ? e.toLowerCase() : "object") : typeof t; + var e + }, n.prototype._isArray = n.prototype.isArray = function (t) { + var e, o = this.type(t); + return !(!t || "object" != typeof t || t === d) && (e = "length" in t && t.length, "array" === o || 0 === e || "number" == typeof e && 0 < e && e - 1 in t) + }, n.prototype.each = function (t, o) { + var e, n = function (t, e) { + return o.call(e[t], t, e[t]) + }; + if ("function" == typeof o) if (this.isArray(t = t || [])) for (e = 0; e < t.length && !n(e, t); e++) ; else for (e in t) if (n(e, t)) break; + return this + }, n.prototype.sort = function (t, r, e, o) { + o = o ? t || [] : JSON.parse(JSON.stringify(t || [])); + if ("object" !== this.type(t) || r) { + if ("object" != typeof t) return [o]; + o.sort(function (t, e) { + var o = t[r], n = e[r]; + if (!isNaN(t) && !isNaN(e)) return t - e; + if (!isNaN(t) && isNaN(e)) { + if (!r || "object" != typeof e) return -1; + o = t + } else if (isNaN(t) && !isNaN(e)) { + if (!r || "object" != typeof t) return 1; + n = e + } + t = [!isNaN(o), !isNaN(n)]; + return t[0] && t[1] ? o && !n && 0 !== n ? 1 : !o && 0 !== o && n ? -1 : o - n : t[0] || t[1] ? t[0] || !t[1] ? -1 : !t[0] || t[1] ? 1 : void 0 : n < o ? 1 : o < n ? -1 : 0 + }), e && o.reverse() + } + return o + }, n.prototype.stope = function (t) { + t = t || d.event; + try { + t.stopPropagation() + } catch (e) { + t.cancelBubble = !0 + } + }, "LAYUI-EVENT-REMOVE"); + n.prototype.onevent = function (t, e, o) { + return "string" != typeof t || "function" != typeof o ? this : n.event(t, e, null, o) + }, n.prototype.event = n.event = function (t, e, o, n) { + var r = this, i = null, a = (e || "").match(/\((.*)\)$/) || [], t = (t + "." + e).replace(a[0], ""), + u = a[1] || "", l = function (t, e) { + !1 === (e && e.call(r, o)) && null === i && (i = !1) + }; + return o === s ? (delete (r.cache.event[t] || {})[u], r) : n ? (m.event[t] = m.event[t] || {}, u ? m.event[t][u] = [n] : (m.event[t][u] = m.event[t][u] || [], m.event[t][u].push(n)), this) : (layui.each(m.event[t], function (t, e) { + ("{*}" === u || ("" === t && layui.each(e, l), u && t === u)) && layui.each(e, l) + }), i) + }, n.prototype.on = function (t, e, o) { + return this.onevent.call(this, e, t, o) + }, n.prototype.off = function (t, e) { + return this.event.call(this, e, t, s) + }, n.prototype.debounce = function (o, n) { + var r; + return function () { + var t = this, e = arguments; + clearTimeout(r), r = setTimeout(function () { + o.apply(t, e) + }, n) + } + }, n.prototype.throttle = function (t, e) { + var o = !1; + return function () { + o || (t.apply(this, arguments), o = !0, setTimeout(function () { + o = !1 + }, e)) + } + }, d.layui = new n +}(window); +layui.define(function (a) { + var i = layui.cache; + layui.config({dir: i.dir.replace(/lay\/dest\/$/, "")}), a("layui.all", layui.v) +}); +!function (l) { + "use strict"; + var t, h = l.document, d = function (t) { + return new o(t) + }, o = function (t) { + var n = this, + i = "object" == typeof t ? layui.isArray(t) ? t : [t] : (this.selector = t, h.querySelectorAll(t || null)); + d.each(i, function (t, e) { + n.push(i[t]) + }) + }; + Array.prototype.indexOf = Array.prototype.indexOf || function (n, i) { + var o = -1; + return i = i || 0, layui.each(this, function (t, e) { + if (n === e && i <= t) return o = t, !0 + }), o + }, o.fn = o.prototype = [], o.fn.constructor = o, d.extend = function () { + var t, e = 1, n = arguments, i = function (t, e) { + for (var n in t = t || ("array" === layui.type(e) ? [] : {}), e) t[n] = e[n] && e[n].constructor === Object ? i(t[n], e[n]) : e[n]; + return t + }; + for (n[0] = "object" == typeof n[0] ? n[0] : {}, t = n.length; e < t; e++) "object" == typeof n[e] && i(n[0], n[e]); + return n[0] + }, d.ie = (t = navigator.userAgent.toLowerCase(), !!(l.ActiveXObject || "ActiveXObject" in l) && ((t.match(/msie\s(\d+)/) || [])[1] || "11")), d.layui = layui || {}, d.getPath = layui.cache.dir, d.stope = layui.stope, d.each = function () { + return layui.each.apply(layui, arguments), this + }, d.digit = function (t, e) { + if ("string" != typeof t && "number" != typeof t) return ""; + var n = ""; + e = e || 2; + for (var i = (t = String(t)).length; i < e; i++) n += "0"; + return t < Math.pow(10, e) ? n + t : t + }, d.elem = function (t, e) { + var n = h.createElement(t); + return d.each(e || {}, function (t, e) { + n.setAttribute(t, e) + }), n + }, d.hasScrollbar = function () { + return h.body.scrollHeight > (l.innerHeight || h.documentElement.clientHeight) + }, d.getStyleRules = function (t, n) { + if (t) return t = (t = t.sheet || t.styleSheet || {}).cssRules || t.rules, "function" == typeof n && layui.each(t, function (t, e) { + if (n(e, t)) return !0 + }), t + }, d.style = function (t) { + t = t || {}; + var e = d.elem("style"), n = t.text || "", i = t.target; + if (n) return "styleSheet" in e ? (e.setAttribute("type", "text/css"), e.styleSheet.cssText = n) : e.innerHTML = n, e.id = "LAY-STYLE-" + (t.id || (n = d.style.index || 0, d.style.index++, "DF-" + n)), i && ((t = d(i).find("#" + e.id))[0] && t.remove(), d(i).append(e)), e + }, d.position = function (t, e, n) { + var i, o, r, c, u, a, s, f; + e && (n = n || {}, t !== h && t !== d("body")[0] || (n.clickType = "right"), i = "right" === n.clickType ? { + left: (i = n.e || l.event || {}).clientX, + top: i.clientY, + right: i.clientX, + bottom: i.clientY + } : t.getBoundingClientRect(), s = e.offsetWidth, f = e.offsetHeight, o = function (t) { + return h.body[t = t ? "scrollLeft" : "scrollTop"] | h.documentElement[t] + }, r = function (t) { + return h.documentElement[t ? "clientWidth" : "clientHeight"] + }, c = "margin" in n ? n.margin : 5, u = i.left, a = i.bottom, "center" === n.align ? u -= (s - t.offsetWidth) / 2 : "right" === n.align && (u = u - s + t.offsetWidth), (u = u + s + c > r("width") ? r("width") - s - c : u) < c && (u = c), i.bottom + f + c > r() && (i.top > f + c && i.top <= r() ? a = i.top - f - 2 * c : n.allowBottomOut || (a = r() - f - 2 * c) < 0 && (a = 0)), (s = n.position) && (e.style.position = s), e.style.left = u + ("fixed" === s ? 0 : o(1)) + "px", e.style.top = a + ("fixed" === s ? 0 : o()) + "px", d.hasScrollbar() || (f = e.getBoundingClientRect(), !n.SYSTEM_RELOAD && f.bottom + c > r() && (n.SYSTEM_RELOAD = !0, setTimeout(function () { + d.position(t, e, n) + }, 50)))) + }, d.options = function (t, e) { + if (e = "object" == typeof e ? e : {attr: e}, t === h) return {}; + var t = d(t), n = e.attr || "lay-options", t = t.attr(n); + try { + return new Function("return " + (t || "{}"))() + } catch (i) { + return layui.hint().error(e.errorText || [n + '="' + t + '"', "\n parseerror: " + i].join("\n"), "error"), {} + } + }, d.isTopElem = function (n) { + var t = [h, d("body")[0]], i = !1; + return d.each(t, function (t, e) { + if (e === n) return i = !0 + }), i + }, d.clipboard = { + writeText: function (n) { + var i = String(n.text); + + function t() { + var t = h.createElement("textarea"); + t.value = i, t.style.position = "fixed", t.style.opacity = "0", t.style.top = "0px", t.style.left = "0px", h.body.appendChild(t), t.select(); + try { + h.execCommand("copy"), "function" == typeof n.done && n.done() + } catch (e) { + "function" == typeof n.error && n.error(e) + } finally { + t.remove ? t.remove() : h.body.removeChild(t) + } + } + + navigator && "clipboard" in navigator ? navigator.clipboard.writeText(i).then(n.done, function () { + t() + }) : t() + } + }, d.passiveSupported = function () { + var t = !1; + try { + var e = Object.defineProperty({}, "passive", { + get: function () { + t = !0 + } + }); + l.addEventListener("test", null, e), l.removeEventListener("test", null, e) + } catch (n) { + } + return t + }(), d.touchEventsSupported = function () { + return "ontouchstart" in l + }, d.touchSwipe = function (t, e) { + var n, i, o, r = e, c = d(t)[0]; + c && d.touchEventsSupported() && (n = { + pointerStart: {x: 0, y: 0}, + pointerEnd: {x: 0, y: 0}, + distanceX: 0, + distanceY: 0, + direction: "none", + timeStart: null + }, e = function (t) { + 1 === t.touches.length && (c.addEventListener("touchmove", i, !!d.passiveSupported && {passive: !1}), c.addEventListener("touchend", o), c.addEventListener("touchcancel", o), n.timeStart = Date.now(), n.pointerStart.x = n.pointerEnd.x = t.touches[0].clientX, n.pointerStart.y = n.pointerEnd.y = t.touches[0].clientY, n.distanceX = n.distanceY = 0, n.direction = "none", r.onTouchStart) && r.onTouchStart(t, n) + }, i = function (t) { + t.preventDefault(), n.pointerEnd.x = t.touches[0].clientX, n.pointerEnd.y = t.touches[0].clientY, n.distanceX = n.pointerStart.x - n.pointerEnd.x, n.distanceY = n.pointerStart.y - n.pointerEnd.y, Math.abs(n.distanceX) > Math.abs(n.distanceY) ? n.direction = 0 < n.distanceX ? "left" : "right" : n.direction = 0 < n.distanceY ? "up" : "down", r.onTouchMove && r.onTouchMove(t, n) + }, o = function (t) { + r.onTouchEnd && r.onTouchEnd(t, n), c.removeEventListener("touchmove", i), c.removeEventListener("touchend", o, !!d.passiveSupported && {passive: !1}), c.removeEventListener("touchcancel", o) + }, c.__lay_touchswipe_cb_ && c.removeEventListener("touchstart", c.__lay_touchswipe_cb_), c.__lay_touchswipe_cb_ = e, c.addEventListener("touchstart", e)) + }, o.addStr = function (n, t) { + return n = n.replace(/\s+/, " "), t = t.replace(/\s+/, " ").split(" "), d.each(t, function (t, e) { + new RegExp("\\b" + e + "\\b").test(n) || (n = n + " " + e) + }), n.replace(/^\s|\s$/, "") + }, o.removeStr = function (n, t) { + return n = n.replace(/\s+/, " "), t = t.replace(/\s+/, " ").split(" "), d.each(t, function (t, e) { + e = new RegExp("\\b" + e + "\\b"); + e.test(n) && (n = n.replace(e, "")) + }), n.replace(/\s+/, " ").replace(/^\s|\s$/, "") + }, o.fn.find = function (n) { + var i = [], o = "object" == typeof n; + return this.each(function (t, e) { + e = o && e.contains(n) ? n : e.querySelectorAll(n || null); + d.each(e, function (t, e) { + i.push(e) + }) + }), d(i) + }, o.fn.each = function (t) { + return d.each.call(this, this, t) + }, o.fn.addClass = function (n, i) { + return this.each(function (t, e) { + e.className = o[i ? "removeStr" : "addStr"](e.className, n) + }) + }, o.fn.removeClass = function (t) { + return this.addClass(t, !0) + }, o.fn.hasClass = function (n) { + var i = !1; + return this.each(function (t, e) { + new RegExp("\\b" + n + "\\b").test(e.className) && (i = !0) + }), i + }, o.fn.css = function (e, i) { + var t = this, o = function (t) { + return isNaN(t) ? t : t + "px" + }; + return "string" != typeof e || i !== undefined ? t.each(function (t, n) { + "object" == typeof e ? d.each(e, function (t, e) { + n.style[t] = o(e) + }) : n.style[e] = o(i) + }) : 0 < t.length ? t[0].style[e] : void 0 + }, o.fn.width = function (n) { + var i = this; + return n !== undefined ? i.each(function (t, e) { + i.css("width", n) + }) : 0 < i.length ? i[0].offsetWidth : void 0 + }, o.fn.height = function (n) { + var i = this; + return n !== undefined ? i.each(function (t, e) { + i.css("height", n) + }) : 0 < i.length ? i[0].offsetHeight : void 0 + }, o.fn.attr = function (n, i) { + var t = this; + return i !== undefined ? t.each(function (t, e) { + e.setAttribute(n, i) + }) : 0 < t.length ? t[0].getAttribute(n) : void 0 + }, o.fn.removeAttr = function (n) { + return this.each(function (t, e) { + e.removeAttribute(n) + }) + }, o.fn.html = function (n) { + var t = this; + return n !== undefined ? this.each(function (t, e) { + e.innerHTML = n + }) : 0 < t.length ? t[0].innerHTML : void 0 + }, o.fn.val = function (n) { + var t = this; + return n !== undefined ? this.each(function (t, e) { + e.value = n + }) : 0 < t.length ? t[0].value : void 0 + }, o.fn.append = function (n) { + return this.each(function (t, e) { + "object" == typeof n ? e.appendChild(n) : e.innerHTML = e.innerHTML + n + }) + }, o.fn.remove = function (n) { + return this.each(function (t, e) { + n ? e.removeChild(n) : e.parentNode.removeChild(e) + }) + }, o.fn.on = function (n, i) { + return this.each(function (t, e) { + e.attachEvent ? e.attachEvent("on" + n, function (t) { + t.target = t.srcElement, i.call(e, t) + }) : e.addEventListener(n, i, !1) + }) + }, o.fn.off = function (n, i) { + return this.each(function (t, e) { + e.detachEvent ? e.detachEvent("on" + n, i) : e.removeEventListener(n, i, !1) + }) + }, l.lay = d, l.layui && layui.define && layui.define(function (t) { + t("lay", d) + }) +}(window, window.document); +layui.define(function (e) { + "use strict"; + var c = {open: "{{", close: "}}"}, l = { + escape: function (e) { + return e === undefined || null === e ? "" : /[<"'>]|&(?=#[a-zA-Z0-9]+)/g.test(e += "") ? e.replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """) : e + } + }, i = function (e) { + return new RegExp(e, "g") + }, u = function (e, r) { + var n = "Laytpl Error: "; + return "object" == typeof console && console.error(n + e + "\n" + (r || "")), n + e + }, n = function (e, r) { + var n = this, e = (n.config = n.config || {}, n.template = e, function (e) { + for (var r in e) n.config[r] = e[r] + }); + e(c), e(r) + }, r = (n.prototype.tagExp = function (e, r, n) { + var c = this.config; + return i((r || "") + c.open + ["#([\\s\\S])+?", "([^{#}])*?"][e || 0] + c.close + (n || "")) + }, n.prototype.parse = function (e, r) { + var n = this, c = n.config, t = e, o = i("^" + c.open + "#", ""), p = i(c.close + "$", ""); + if ("string" != typeof e) return e; + e = '"use strict";var view = "' + (e = e.replace(/\s+|\r|\t|\n/g, " ").replace(i(c.open + "#"), c.open + "# ").replace(i(c.close + "}"), "} " + c.close).replace(/\\/g, "\\\\").replace(i(c.open + "!(.+?)!" + c.close), function (e) { + return e = e.replace(i("^" + c.open + "!"), "").replace(i("!" + c.close), "").replace(i(c.open + "|" + c.close), function (e) { + return e.replace(/(.)/g, "\\$1") + }) + }).replace(/(?="|')/g, "\\").replace(n.tagExp(), function (e) { + return '";' + (e = e.replace(o, "").replace(p, "")).replace(/\\(.)/g, "$1") + ';view+="' + }).replace(n.tagExp(1), function (e) { + var r = '"+laytpl.escape('; + return e.replace(/\s/g, "") === c.open + c.close ? "" : (e = e.replace(i(c.open + "|" + c.close), ""), /^=/.test(e) ? e = e.replace(/^=/, "") : /^-/.test(e) && (e = e.replace(/^-/, ""), r = '"+('), r + e.replace(/\\(.)/g, "$1") + ')+"') + })) + '";return view;'; + try { + return n.cache = e = new Function("d, laytpl", e), e(r, l) + } catch (a) { + return delete n.cache, u(a, t) + } + }, n.prototype.render = function (e, r) { + e = e || {}; + var n = this, e = n.cache ? n.cache(e, l) : n.parse(n.template, e); + return "function" == typeof r && r(e), e + }, function (e, r) { + return new n(e, r) + }); + r.config = function (e) { + for (var r in e = e || {}) c[r] = e[r] + }, r.v = "2.0.0", e("laytpl", r) +}); +layui.define(function (e) { + "use strict"; + var r = document, u = "getElementById", c = "getElementsByTagName", a = "layui-disabled", t = function (e) { + var a = this; + a.config = e || {}, a.config.index = ++o.index, a.render(!0) + }, o = (t.prototype.type = function () { + var e = this.config; + if ("object" == typeof e.elem) return e.elem.length === undefined ? 2 : 3 + }, t.prototype.view = function () { + var i, e, t, n = this.config, r = n.groups = "groups" in n ? Number(n.groups) || 0 : 5, + u = (n.layout = "object" == typeof n.layout ? n.layout : ["prev", "page", "next"], n.count = Number(n.count) || 0, n.curr = Number(n.curr) || 1, n.limits = "object" == typeof n.limits ? n.limits : [10, 20, 30, 40, 50], n.limit = Number(n.limit) || 10, n.pages = Math.ceil(n.count / n.limit) || 1, n.curr > n.pages ? n.curr = n.pages : n.curr < 1 && (n.curr = 1), r < 0 ? r = 1 : r > n.pages && (r = n.pages), n.prev = "prev" in n ? n.prev : "上一页", n.next = "next" in n ? n.next : "下一页", n.pages > r ? Math.ceil((n.curr + (1 < r ? 1 : 0)) / (0 < r ? r : 1)) : 1), + l = { + prev: n.prev ? '' + n.prev + "" : "", + page: function () { + var e = []; + if (n.count < 1) return ""; + 1 < u && !1 !== n.first && 0 !== r && e.push('' + (n.first || 1) + ""); + var a = Math.floor((r - 1) / 2), t = 1 < u ? n.curr - a : 1, + i = 1 < u ? (a = n.curr + (r - a - 1)) > n.pages ? n.pages : a : r; + for (i - t < r - 1 && (t = i - r + 1), !1 !== n.first && 2 < t && e.push(''); t <= i; t++) t === n.curr ? e.push('" + t + "") : e.push('' + t + ""); + return n.pages > r && n.pages > i && !1 !== n.last && (i + 1 < n.pages && e.push(''), 0 !== r) && e.push('' + (n.last || n.pages) + ""), e.join("") + }(), + next: n.next ? '' + n.next + "" : "", + count: '' + (e = "object" == typeof n.countText ? n.countText : ["\u5171 ", " \u6761"])[0] + n.count + e[1] + "", + limit: (i = ['"), + refresh: ['', '', ""].join(""), + skip: ['' + (e = "object" == typeof n.skipText ? n.skipText : ["到第", "页", "确定"])[0], '', e[1] + '", ""].join("") + }; + return ['
        ', (t = [], layui.each(n.layout, function (e, a) { + l[a] && t.push(l[a]) + }), t.join("")), "
        "].join("") + }, t.prototype.jump = function (e, a) { + if (e) { + var t = this, i = t.config, n = e.children, r = e[c]("button")[0], u = e[c]("input")[0], + e = e[c]("select")[0], l = function () { + var e = Number(u.value.replace(/\s|\D/g, "")); + e && (i.curr = e, t.render()) + }; + if (a) return l(); + for (var s = 0, p = n.length; s < p; s++) "a" === n[s].nodeName.toLowerCase() && o.on(n[s], "click", function () { + var e = Number(this.getAttribute("data-page")); + e < 1 || e > i.pages || (i.curr = e, t.render()) + }); + e && o.on(e, "change", function () { + var e = this.value; + i.curr * e > i.count && (i.curr = Math.ceil(i.count / e)), i.limit = e, t.render() + }), r && o.on(r, "click", function () { + l() + }) + } + }, t.prototype.skip = function (t) { + var i, e; + t && (i = this, e = t[c]("input")[0]) && o.on(e, "keyup", function (e) { + var a = this.value, e = e.keyCode; + /^(37|38|39|40)$/.test(e) || (/\D/.test(a) && (this.value = a.replace(/\D/, "")), 13 === e && i.jump(t, !0)) + }) + }, t.prototype.render = function (e) { + var a = this, t = a.config, i = a.type(), n = a.view(), + i = (2 === i ? t.elem && (t.elem.innerHTML = n) : 3 === i ? t.elem.html(n) : r[u](t.elem) && (r[u](t.elem).innerHTML = n), t.jump && t.jump(t, e), r[u]("layui-laypage-" + t.index)); + a.jump(i), t.hash && !e && (location.hash = "!" + t.hash + "=" + t.curr), a.skip(i) + }, { + render: function (e) { + return new t(e).index + }, index: layui.laypage ? layui.laypage.index + 1e4 : 0, on: function (a, e, t) { + return a.attachEvent ? a.attachEvent("on" + e, function (e) { + e.target = e.srcElement, t.call(a, e) + }) : a.addEventListener(e, t, !1), this + } + }); + e("laypage", o) +}); +!function (i, v) { + "use strict"; + var n = i.layui && layui.define, l = { + getPath: i.lay && lay.getPath ? lay.getPath : "", link: function (e, t, a) { + D.path && i.lay && lay.layui && lay.layui.link(D.path + e, t, a) + } + }, e = i.LAYUI_GLOBAL || {}, a = "laydate", d = "layui-" + a + "-id", D = { + v: "5.5.0", + config: {weekStart: 0}, + index: i.laydate && i.laydate.v ? 1e5 : 0, + path: e.laydate_dir || l.getPath, + set: function (e) { + var t = this; + return t.config = lay.extend({}, t.config, e), t + }, + ready: function (e) { + var t = "laydate", a = (n ? "modules/" : "") + "laydate.css?v=" + D.v; + return n ? layui["layui.all"] ? "function" == typeof e && e() : layui.addcss(a, e, t) : l.link(a, e, t), this + } + }, s = function () { + var t = this, e = t.config.id; + return (s.that[e] = t).inst = { + hint: function (e) { + t.hint.call(t, e) + }, reload: function (e) { + t.reload.call(t, e) + }, config: t.config + } + }, x = "layui-this", k = "laydate-disabled", h = [100, 2e5], T = "layui-laydate-static", w = "layui-laydate-list", + o = "laydate-selected", r = "layui-laydate-hint", y = "laydate-day-prev", m = "laydate-day-next", + C = ".laydate-btns-confirm", M = "laydate-time-text", L = "laydate-btns-time", E = "layui-laydate-preview", + S = "layui-laydate-shade", I = function (e) { + var t, a = this, + n = (a.index = ++D.index, a.config = lay.extend({}, a.config, D.config, e), lay(e.elem || a.config.elem)); + return 1 < n.length ? (lay.each(n, function () { + D.render(lay.extend({}, a.config, {elem: this})) + }), a) : (e = lay.extend(a.config, lay.options(n[0])), n[0] && n.attr(d) ? (t = s.getThis(n.attr(d))) ? t.reload(e) : void 0 : (e.id = "id" in e ? e.id : n.attr("id") || a.index, e.index = a.index, void D.ready(function () { + a.init() + }))) + }, c = "yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s"; + s.formatArr = function (e) { + return (e || "").match(new RegExp(c + "|.", "g")) || [] + }, I.isLeapYear = function (e) { + return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 + }, I.prototype.config = { + type: "date", + range: !1, + format: "yyyy-MM-dd", + value: null, + isInitValue: !0, + min: "1900-1-1", + max: "2099-12-31", + trigger: "click", + show: !1, + showBottom: !0, + isPreview: !0, + btns: ["clear", "now", "confirm"], + lang: "cn", + theme: "default", + position: null, + calendar: !1, + mark: {}, + holidays: null, + zIndex: null, + done: null, + change: null, + autoConfirm: !0, + shade: 0 + }, I.prototype.lang = function () { + var e = { + cn: { + weeks: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], + time: ["\u65f6", "\u5206", "\u79d2"], + timeTips: "\u9009\u62e9\u65f6\u95f4", + startTime: "\u5f00\u59cb\u65f6\u95f4", + endTime: "\u7ed3\u675f\u65f6\u95f4", + dateTips: "\u8fd4\u56de\u65e5\u671f", + month: ["\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341", "\u5341\u4e00", "\u5341\u4e8c"], + tools: {confirm: "\u786e\u5b9a", clear: "\u6e05\u7a7a", now: "\u73b0\u5728"}, + timeout: "\u7ed3\u675f\u65f6\u95f4\u4e0d\u80fd\u65e9\u4e8e\u5f00\u59cb\u65f6\u95f4
        \u8bf7\u91cd\u65b0\u9009\u62e9", + invalidDate: "\u4e0d\u5728\u6709\u6548\u65e5\u671f\u6216\u65f6\u95f4\u8303\u56f4\u5185", + formatError: ["\u65e5\u671f\u683c\u5f0f\u4e0d\u5408\u6cd5
        \u5fc5\u987b\u9075\u5faa\u4e0b\u8ff0\u683c\u5f0f\uff1a
        ", "
        \u5df2\u4e3a\u4f60\u91cd\u7f6e"], + preview: "\u5f53\u524d\u9009\u4e2d\u7684\u7ed3\u679c" + }, + en: { + weeks: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], + time: ["Hours", "Minutes", "Seconds"], + timeTips: "Select Time", + startTime: "Start Time", + endTime: "End Time", + dateTips: "Select Date", + month: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + tools: {confirm: "Confirm", clear: "Clear", now: "Now"}, + timeout: "End time cannot be less than start Time
        Please re-select", + invalidDate: "Invalid date", + formatError: ["The date format error
        Must be followed\uff1a
        ", "
        It has been reset"], + preview: "The selected result" + } + }; + return e[this.config.lang] || e.cn + }, I.prototype.reload = function (e) { + this.config = lay.extend({}, this.config, e), this.init() + }, I.prototype.init = function () { + var r = this, o = r.config, e = "static" === o.position, + t = {year: "yyyy", month: "yyyy-MM", date: "yyyy-MM-dd", time: "HH:mm:ss", datetime: "yyyy-MM-dd HH:mm:ss"}; + o.elem = lay(o.elem), o.eventElem = lay(o.eventElem), o.elem[0] && ("array" !== layui.type(o.theme) && (o.theme = [o.theme]), o.fullPanel && ("datetime" !== o.type || o.range) && delete o.fullPanel, r.rangeStr = o.range ? "string" == typeof o.range ? o.range : "-" : "", r.rangeLinked = !(!o.range || !o.rangeLinked || "date" !== o.type && "datetime" !== o.type), r.autoCalendarModel = function () { + var e = r.rangeLinked; + return r.rangeLinked = o.range && ("date" === o.type || "datetime" === o.type) && (!r.startDate || !r.endDate || r.startDate && r.endDate && r.startDate.year === r.endDate.year && r.startDate.month === r.endDate.month), lay(r.elem)[r.rangeLinked ? "addClass" : "removeClass"]("layui-laydate-linkage"), r.rangeLinked != e + }, r.autoCalendarModel.auto = r.rangeLinked && "auto" === o.rangeLinked, "array" === layui.type(o.range) && (r.rangeElem = [lay(o.range[0]), lay(o.range[1])]), t[o.type] || (i.console && console.error && console.error("laydate type error:'" + o.type + "' is not supported"), o.type = "date"), o.format === t.date && (o.format = t[o.type] || t.date), r.format = s.formatArr(o.format), o.weekStart && !/^[0-6]$/.test(o.weekStart) && (t = r.lang(), o.weekStart = t.weeks.indexOf(o.weekStart), -1 === o.weekStart) && (o.weekStart = 0), r.EXP_IF = "", r.EXP_SPLIT = "", lay.each(r.format, function (e, t) { + e = new RegExp(c).test(t) ? "\\d{" + (new RegExp(c).test(r.format[0 === e ? e + 1 : e - 1] || "") ? /^yyyy|y$/.test(t) ? 4 : t.length : /^yyyy$/.test(t) ? "1,4" : /^y$/.test(t) ? "1,308" : "1,2") + "}" : "\\" + t; + r.EXP_IF = r.EXP_IF + e, r.EXP_SPLIT = r.EXP_SPLIT + "(" + e + ")" + }), r.EXP_IF_ONE = new RegExp("^" + r.EXP_IF + "$"), r.EXP_IF = new RegExp("^" + (o.range ? r.EXP_IF + "\\s\\" + r.rangeStr + "\\s" + r.EXP_IF : r.EXP_IF) + "$"), r.EXP_SPLIT = new RegExp("^" + r.EXP_SPLIT + "$", ""), r.isInput(o.elem[0]) || "focus" === o.trigger && (o.trigger = "click"), o.elem.attr("lay-key", r.index), o.eventElem.attr("lay-key", r.index), o.elem.attr(d, o.id), o.mark = lay.extend({}, o.calendar && "cn" === o.lang ? { + "0-1-1": "\u5143\u65e6", + "0-2-14": "\u60c5\u4eba", + "0-3-8": "\u5987\u5973", + "0-3-12": "\u690d\u6811", + "0-4-1": "\u611a\u4eba", + "0-5-1": "\u52b3\u52a8", + "0-5-4": "\u9752\u5e74", + "0-6-1": "\u513f\u7ae5", + "0-9-10": "\u6559\u5e08", + "0-10-1": "\u56fd\u5e86", + "0-12-25": "\u5723\u8bde" + } : {}, o.mark), lay.each(["min", "max"], function (e, t) { + var a = [], n = []; + if ("number" == typeof o[t]) var i = o[t], l = new Date, l = r.newDate({ + year: l.getFullYear(), + month: l.getMonth(), + date: l.getDate(), + hours: e ? 23 : 0, + minutes: e ? 59 : 0, + seconds: e ? 59 : 0 + }).getTime(), e = new Date(i ? i < 864e5 ? l + 864e5 * i : i : l), + a = [e.getFullYear(), e.getMonth() + 1, e.getDate()], + n = [e.getHours(), e.getMinutes(), e.getSeconds()]; else if ("string" == typeof o[t]) a = (o[t].match(/\d+-\d+-\d+/) || [""])[0].split("-"), n = (o[t].match(/\d+:\d+:\d+/) || [""])[0].split(":"); else if ("object" == typeof o[t]) return o[t]; + o[t] = { + year: 0 | a[0] || (new Date).getFullYear(), + month: a[1] ? (0 | a[1]) - 1 : (new Date).getMonth(), + date: 0 | a[2] || (new Date).getDate(), + hours: 0 | n[0], + minutes: 0 | n[1], + seconds: 0 | n[2] + } + }), r.elemID = "layui-laydate" + o.elem.attr("lay-key"), (o.show || e) && r.render(), e || r.events(), o.value) && o.isInitValue && ("date" === layui.type(o.value) ? r.setValue(r.parse(0, r.systemDate(o.value))) : r.setValue(o.value)) + }, I.prototype.render = function () { + var a, n, i, l, r = this, o = r.config, d = r.lang(), s = "static" === o.position, + y = r.elem = lay.elem("div", { + id: r.elemID, + "class": ["layui-laydate", o.range ? " layui-laydate-range" : "", r.rangeLinked ? " layui-laydate-linkage" : "", s ? " " + T : "", o.fullPanel ? " laydate-theme-fullpanel" : "", (a = "", lay.each(o.theme, function (e, t) { + "default" === t || /^#/.test(t) || (a += " laydate-theme-" + t) + }), a)].join("") + }), m = r.elemMain = [], c = r.elemHeader = [], u = r.elemCont = [], h = r.table = [], + e = r.footer = lay.elem("div", {"class": "layui-laydate-footer"}), + t = r.shortcut = lay.elem("ul", {"class": "layui-laydate-shortcut"}), + f = (o.zIndex && (y.style.zIndex = o.zIndex), lay.each(new Array(2), function (e) { + if (!o.range && 0 < e) return !0; + var a = lay.elem("div", {"class": "layui-laydate-header"}), + t = [((t = lay.elem("i", {"class": "layui-icon laydate-icon laydate-prev-y"})).innerHTML = "", t), ((t = lay.elem("i", {"class": "layui-icon laydate-icon laydate-prev-m"})).innerHTML = "", t), (t = lay.elem("div", {"class": "laydate-set-ym"}), n = lay.elem("span"), l = lay.elem("span"), t.appendChild(n), t.appendChild(l), t), ((n = lay.elem("i", {"class": "layui-icon laydate-icon laydate-next-m"})).innerHTML = "", n), ((l = lay.elem("i", {"class": "layui-icon laydate-icon laydate-next-y"})).innerHTML = "", l)], + n = lay.elem("div", {"class": "layui-laydate-content"}), i = lay.elem("table"), + l = lay.elem("thead"), r = lay.elem("tr"); + lay.each(t, function (e, t) { + a.appendChild(t) + }), l.appendChild(r), lay.each(new Array(6), function (a) { + var n = i.insertRow(0); + lay.each(new Array(7), function (e) { + var t; + 0 === a && ((t = lay.elem("th")).innerHTML = d.weeks[(e + o.weekStart) % 7], r.appendChild(t)), n.insertCell(e) + }) + }), i.insertBefore(l, i.children[0]), n.appendChild(i), m[e] = lay.elem("div", {"class": "layui-laydate-main laydate-main-list-" + e}), m[e].appendChild(a), m[e].appendChild(n), c.push(t), u.push(n), h.push(i) + }), lay(e).html((f = [], n = [], "datetime" === o.type && f.push('' + d.timeTips + ""), (o.range || "datetime" !== o.type || o.fullPanel) && f.push(''), lay.each(o.btns, function (e, t) { + var a = d.tools[t] || "btn"; + o.range && "now" === t || (s && "clear" === t && (a = "cn" === o.lang ? "\u91cd\u7f6e" : "Reset"), n.push('' + a + "")) + }), f.push('"), f.join(""))), o.shortcuts && (y.appendChild(t), lay(t).html((i = [], lay.each(o.shortcuts, function (e, t) { + i.push('
      • ' + t.text + "
      • ") + }), i.join(""))).find("li").on("click", function (e) { + var t = o.shortcuts[this.dataset.index] || {}, + t = ("function" == typeof t.value ? t.value() : t.value) || [], + n = (layui.isArray(t) || (t = [t]), o.type), t = (lay.each(t, function (e, t) { + var a = [o.dateTime, r.endDate][e]; + "time" === n && "date" !== layui.type(t) ? r.EXP_IF.test(t) && (t = (t.match(r.EXP_SPLIT) || []).slice(1), lay.extend(a, { + hours: 0 | t[0], + minutes: 0 | t[2], + seconds: 0 | t[4] + })) : lay.extend(a, r.systemDate("date" === layui.type(t) ? t : new Date(t))), "time" !== n && "datetime" !== n || (r[["startTime", "endTime"][e]] = { + hours: a.hours, + minutes: a.minutes, + seconds: a.seconds + }), 0 === e ? r.startDate = lay.extend({}, a) : r.endState = !0, "year" === n || "month" === n || "time" === n ? r.listYM[e] = [a.year, a.month + 1] : e && r.autoCalendarModel.auto && r.autoCalendarModel() + }), r.checkDate("limit").calendar(null, null, "init"), lay(r.footer).find("." + L).removeClass(k)); + t && "date" === t.attr("lay-type") && t[0].click(), r.done(null, "change"), lay(this).addClass(x), "static" !== o.position && r.setValue(r.parse()).done().remove() + })), lay.each(m, function (e, t) { + y.appendChild(t) + }), o.showBottom && y.appendChild(e), lay.elem("style")), p = [], g = !0, + t = (lay.each(o.theme, function (e, t) { + g && /^#/.test(t) ? (g = !(l = !0), p.push(["#{{id}} .layui-laydate-header{background-color:{{theme}};}", "#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}", -1 !== o.theme.indexOf("circle") ? "" : "#{{id}} .layui-this{background-color:{{theme}} !important;}", "#{{id}} .laydate-day-now{color:{{theme}} !important;}", "#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}"].join("").replace(/{{id}}/g, r.elemID).replace(/{{theme}}/g, t))) : !g && /^#/.test(t) && p.push(["#{{id}} .laydate-selected>div{background-color:{{theme}} !important;}", "#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g, r.elemID).replace(/{{theme}}/g, t)) + }), o.shortcuts && o.range && p.push("#{{id}}.layui-laydate-range{width: 628px;}".replace(/{{id}}/g, r.elemID)), p.length && (p = p.join(""), "styleSheet" in f ? (f.setAttribute("type", "text/css"), f.styleSheet.cssText = p) : f.innerHTML = p, l && lay(y).addClass("laydate-theme-molv"), y.appendChild(f)), r.remove(I.thisElemDate), D.thisId = o.id, s ? o.elem.append(y) : (v.body.appendChild(y), r.position()), o.shade ? '
        ' : ""); + y.insertAdjacentHTML("beforebegin", t), r.checkDate().calendar(null, 0, "init"), r.changeEvent(), I.thisElemDate = r.elemID, r.renderAdditional(), "function" == typeof o.ready && o.ready(lay.extend({}, o.dateTime, {month: o.dateTime.month + 1})), r.preview() + }, I.prototype.remove = function (e) { + var t = this, a = t.config, n = lay("#" + (e || t.elemID)); + return n[0] && (n.hasClass(T) || t.checkDate(function () { + n.remove(), delete t.startDate, delete t.endDate, delete t.endState, delete t.startTime, delete t.endTime, delete D.thisId, "function" == typeof a.close && a.close(t) + }), lay("." + S).remove()), t + }, I.prototype.position = function () { + var e = this.config; + return lay.position(e.elem[0], this.elem, {position: e.position}), this + }, I.prototype.hint = function (e) { + var t = this, a = (t.config, lay.elem("div", {"class": r})); + t.elem && (a.innerHTML = (e = "object" == typeof e ? e || {} : {content: e}).content || "", lay(t.elem).find("." + r).remove(), t.elem.appendChild(a), clearTimeout(t.hinTimer), t.hinTimer = setTimeout(function () { + lay(t.elem).find("." + r).remove() + }, "ms" in e ? e.ms : 3e3)) + }, I.prototype.getAsYM = function (e, t, a) { + return a ? t-- : t++, t < 0 && (t = 11, e--), 11 < t && (t = 0, e++), [e, t] + }, I.prototype.systemDate = function (e) { + var t = e || new Date; + return { + year: t.getFullYear(), + month: t.getMonth(), + date: t.getDate(), + hours: e ? e.getHours() : 0, + minutes: e ? e.getMinutes() : 0, + seconds: e ? e.getSeconds() : 0 + } + }, I.prototype.checkDate = function (e) { + var t, o, a, n, i, d = this, s = (new Date, d.config), l = d.lang(), + r = s.dateTime = s.dateTime || d.systemDate(), y = s.elem[0], m = (d.isInput(y), function () { + if (d.rangeElem) { + var e = [d.rangeElem[0].val(), d.rangeElem[1].val()]; + if (e[0] && e[1]) return e.join(" " + d.rangeStr + " ") + } + return d.isInput(y) ? y.value : "static" === s.position ? "" : lay(y).attr("lay-date") + }()), c = function (e) { + e && (e.year > h[1] && (e.year = h[1], o = !0), 11 < e.month && (e.month = 11, o = !0), 59 < e.seconds && (e.seconds = 0, e.minutes++, o = !0), 59 < e.minutes && (e.minutes = 0, e.hours++, o = !0), 23 < e.hours && (e.hours = 0, o = !0), t = D.getEndDate(e.month + 1, e.year), e.date > t) && (e.date = t, o = !0) + }, u = function (n, i, l) { + var r = ["startTime", "endTime"]; + i = (i.match(d.EXP_SPLIT) || []).slice(1), l = l || 0, s.range && (d[r[l]] = d[r[l]] || {}), lay.each(d.format, function (e, t) { + var a = parseFloat(i[e]); + i[e].length < t.length && (o = !0), /yyyy|y/.test(t) ? (a < h[0] && (a = h[0], o = !0), n.year = a) : /MM|M/.test(t) ? (a < 1 && (a = 1, o = !0), n.month = a - 1) : /dd|d/.test(t) ? (a < 1 && (a = 1, o = !0), n.date = a) : /HH|H/.test(t) ? (a < 0 && (o = !(a = 0)), 23 < a && (a = 23, o = !0), n.hours = a, s.range && (d[r[l]].hours = a)) : /mm|m/.test(t) ? (a < 0 && (o = !(a = 0)), 59 < a && (a = 59, o = !0), n.minutes = a, s.range && (d[r[l]].minutes = a)) : /ss|s/.test(t) && (a < 0 && (o = !(a = 0)), 59 < a && (a = 59, o = !0), n.seconds = a, s.range) && (d[r[l]].seconds = a) + }), c(n) + }; + return "limit" === e ? s.range ? (c(d.rangeLinked ? d.startDate : r), d.endDate && c(d.endDate)) : c(r) : ("string" == typeof (m = m || s.value) && (m = m.replace(/\s+/g, " ").replace(/^\s|\s$/g, "")), (a = function () { + var e, t, a; + s.range && (d.endDate = d.endDate || lay.extend({}, s.dateTime, (e = {}, t = s.dateTime, a = d.getAsYM(t.year, t.month), "year" === s.type ? e.year = t.year + 1 : "time" !== s.type && (e.year = a[0], e.month = a[1]), "datetime" !== s.type && "time" !== s.type || (e.hours = 23, e.minutes = e.seconds = 59), e))) + })(), "string" == typeof m && m ? d.EXP_IF.test(m) ? s.range ? (m = m.split(" " + d.rangeStr + " "), lay.each([s.dateTime, d.endDate], function (e, t) { + u(t, m[e], e) + })) : u(r, m) : (d.hint(l.formatError[0] + (s.range ? s.format + " " + d.rangeStr + " " + s.format : s.format) + l.formatError[1]), o = !0) : m && "date" === layui.type(m) ? s.dateTime = d.systemDate(m) : (s.dateTime = d.systemDate(), delete d.startTime, delete d.endDate, a(), delete d.endTime), d.rangeElem && (a = [d.rangeElem[0].val(), d.rangeElem[1].val()], n = [s.dateTime, d.endDate], lay.each(a, function (e, t) { + d.EXP_IF_ONE.test(t) && u(n[e], t, e) + })), c(r), s.range && c(d.endDate), o && m && d.setValue(!s.range || d.endDate ? d.parse() : ""), d.getDateTime(r) > d.getDateTime(s.max) ? (r = s.dateTime = lay.extend({}, s.max), i = !0) : d.getDateTime(r) < d.getDateTime(s.min) && (r = s.dateTime = lay.extend({}, s.min), i = !0), s.range && ((d.getDateTime(d.endDate) < d.getDateTime(s.min) || d.getDateTime(d.endDate) > d.getDateTime(s.max)) && (d.endDate = lay.extend({}, s.max), i = !0), d.startTime = { + hours: s.dateTime.hours, + minutes: s.dateTime.minutes, + seconds: s.dateTime.seconds + }, d.endTime = { + hours: d.endDate.hours, + minutes: d.endDate.minutes, + seconds: d.endDate.seconds + }, "month" === s.type) && (s.dateTime.date = 1, d.endDate.date = 1), i && m && (d.setValue(d.parse()), d.hint("value " + l.invalidDate + l.formatError[1])), d.startDate = d.startDate || m && lay.extend({}, s.dateTime), d.autoCalendarModel.auto && d.autoCalendarModel(), d.endState = !s.range || !d.rangeLinked || !(!d.startDate || !d.endDate), e && e()), d + }, I.prototype.mark = function (e, a) { + var n, t = this.config; + return lay.each(t.mark, function (e, t) { + e = e.split("-"); + e[0] != a[0] && 0 != e[0] || e[1] != a[1] && 0 != e[1] || e[2] != a[2] || (n = t || a[2]) + }), n && e.find("div").html('' + n + ""), this + }, I.prototype.holidays = function (n, i) { + var e = this.config, l = ["", "work"]; + return "array" === layui.type(e.holidays) && lay.each(e.holidays, function (a, e) { + lay.each(e, function (e, t) { + t === n.attr("lay-ymd") && n.find("div").html('" + i[2] + "") + }) + }), this + }, I.prototype.limit = function (t) { + t = t || {}; + var i = this, e = i.config, l = {}, a = t.index > (t.time ? 0 : 41) ? i.endDate : e.dateTime; + return lay.each({now: lay.extend({}, a, t.date || {}), min: e.min, max: e.max}, function (e, a) { + var n; + l[e] = i.newDate(lay.extend({ + year: a.year, + month: "year" === t.type ? 0 : a.month, + date: "year" === t.type || "month" === t.type ? 1 : a.date + }, (n = {}, lay.each(t.time, function (e, t) { + n[t] = a[t] + }), n))).getTime() + }), a = l.now < l.min || l.max < l.now, t.elem && t.elem[a ? "addClass" : "removeClass"](k), a + }, I.prototype.thisDateTime = function (e) { + var t = this.config; + return e ? this.endDate : t.dateTime + }, I.prototype.calendar = function (e, t, a) { + t = t ? 1 : 0; + var i, l, r, o = this, n = o.config, d = e || o.thisDateTime(t), s = new Date, y = o.lang(), + m = "date" !== n.type && "datetime" !== n.type, c = lay(o.table[t]).find("td"), + u = lay(o.elemHeader[t][2]).find("span"); + return d.year < h[0] && (d.year = h[0], o.hint(y.invalidDate)), d.year > h[1] && (d.year = h[1], o.hint(y.invalidDate)), o.firstDate || (o.firstDate = lay.extend({}, d)), s.setFullYear(d.year, d.month, 1), i = (s.getDay() + (7 - n.weekStart)) % 7, l = D.getEndDate(d.month || 12, d.year), r = D.getEndDate(d.month + 1, d.year), lay.each(c, function (e, t) { + var a, n = [d.year, d.month]; + (t = lay(t)).removeAttr("class"), e < i ? (a = l - i + e, t.addClass("laydate-day-prev"), n = o.getAsYM(d.year, d.month, "sub")) : i <= e && e < r + i ? (a = e - i, o.rangeLinked || a + 1 === d.date && t.addClass(x)) : (a = e - r - i, t.addClass("laydate-day-next"), n = o.getAsYM(d.year, d.month)), n[1]++, n[2] = a + 1, t.attr("lay-ymd", n.join("-")).html("
        " + n[2] + "
        "), o.mark(t, n).holidays(t, n).limit({ + elem: t, + date: {year: n[0], month: n[1] - 1, date: n[2]}, + index: e + }) + }), lay(u[0]).attr("lay-ym", d.year + "-" + (d.month + 1)), lay(u[1]).attr("lay-ym", d.year + "-" + (d.month + 1)), "cn" === n.lang ? (lay(u[0]).attr("lay-type", "year").html(d.year + " \u5e74"), lay(u[1]).attr("lay-type", "month").html(d.month + 1 + " \u6708")) : (lay(u[0]).attr("lay-type", "month").html(y.month[d.month]), lay(u[1]).attr("lay-type", "year").html(d.year)), m && (n.range ? !e && "init" === a || (o.listYM = [[(o.startDate || n.dateTime).year, (o.startDate || n.dateTime).month + 1], [o.endDate.year, o.endDate.month + 1]], o.list(n.type, 0).list(n.type, 1), "time" === n.type ? o.setBtnStatus("\u65f6\u95f4", lay.extend({}, o.systemDate(), o.startTime), lay.extend({}, o.systemDate(), o.endTime)) : o.setBtnStatus(!0)) : (o.listYM = [[d.year, d.month + 1]], o.list(n.type, 0))), n.range && "init" === a && (o.rangeLinked ? (s = o.getAsYM(d.year, d.month, t ? "sub" : null), o.calendar(lay.extend({}, d, { + year: s[0], + month: s[1] + }), 1 - t)) : o.calendar(null, 1 - t)), n.range || (c = ["hours", "minutes", "seconds"], o.limit({ + elem: lay(o.footer).find(".laydate-btns-now"), + date: o.systemDate(/^(datetime|time)$/.test(n.type) ? new Date : null), + index: 0, + time: c + }), o.limit({ + elem: lay(o.footer).find(C), + index: 0, + time: c + })), o.setBtnStatus(), lay(o.shortcut).find("li." + x).removeClass(x), n.range && !m && "init" !== a && o.stampRange(), o + }, I.prototype.list = function (n, i) { + var l, r, e, o, d = this, s = d.config, y = d.rangeLinked ? s.dateTime : [s.dateTime, d.endDate][i], + m = d.lang(), t = s.range && "date" !== s.type && "datetime" !== s.type, c = lay.elem("ul", { + "class": w + " " + { + year: "laydate-year-list", + month: "laydate-month-list", + time: "laydate-time-list" + }[n] + }), a = d.elemHeader[i], u = lay(a[2]).find("span"), h = d.elemCont[i || 0], f = lay(h).find("." + w)[0], + p = "cn" === s.lang, g = p ? "\u5e74" : "", v = d.listYM[i] || {}, D = ["hours", "minutes", "seconds"], + T = ["startTime", "endTime"][i]; + return v[0] < 1 && (v[0] = 1), "year" === n ? (e = l = v[0] - 7, l < 1 && (e = l = 1), lay.each(new Array(15), function (e) { + var t = lay.elem("li", {"lay-ym": l}), a = {year: l, month: 0, date: 1}; + l == v[0] && lay(t).addClass(x), t.innerHTML = l + g, c.appendChild(t), d.limit({ + elem: lay(t), + date: a, + index: i, + type: n + }), l++ + }), lay(u[p ? 0 : 1]).attr("lay-ym", l - 8 + "-" + v[1]).html(e + g + " - " + (l - 1) + g)) : "month" === n ? (lay.each(new Array(12), function (e) { + var t = lay.elem("li", {"lay-ym": e}), a = {year: v[0], month: e, date: 1}; + e + 1 == v[1] && lay(t).addClass(x), t.innerHTML = m.month[e] + (p ? "\u6708" : ""), c.appendChild(t), d.limit({ + elem: lay(t), + date: a, + index: i, + type: n + }) + }), lay(u[p ? 0 : 1]).attr("lay-ym", v[0] + "-" + v[1]).html(v[0] + g)) : "time" === n && (r = function () { + lay(c).find("ol").each(function (a, e) { + lay(e).find("li").each(function (e, t) { + d.limit({ + elem: lay(t), + date: [{hours: e}, {hours: d[T].hours, minutes: e}, { + hours: d[T].hours, + minutes: d[T].minutes, + seconds: e + }][a], + index: i, + time: [["hours"], ["hours", "minutes"], ["hours", "minutes", "seconds"]][a] + }) + }) + }), s.range || d.limit({ + elem: lay(d.footer).find(C), + date: d[T], + index: 0, + time: ["hours", "minutes", "seconds"] + }) + }, s.range ? d[T] || (d[T] = "startTime" === T ? y : d.endDate) : d[T] = y, lay.each([24, 60, 60], function (t, e) { + var a = lay.elem("li"), n = ["

        " + m.time[t] + "

          "]; + lay.each(new Array(e), function (e) { + n.push("" + lay.digit(e, 2) + "") + }), a.innerHTML = n.join("") + "
        ", c.appendChild(a) + }), r()), f && h.removeChild(f), h.appendChild(c), "year" === n || "month" === n ? (lay(d.elemMain[i]).addClass("laydate-ym-show"), lay(c).find("li").on("click", function () { + var e = 0 | lay(this).attr("lay-ym"); + lay(this).hasClass(k) || (d.rangeLinked ? lay.extend(y, { + year: "year" === n ? e : v[0], + month: "year" === n ? v[1] - 1 : e + }) : y[n] = e, "year" === s.type || "month" === s.type ? (lay(c).find("." + x).removeClass(x), lay(this).addClass(x), "month" === s.type && "year" === n && (d.listYM[i][0] = e, t && ((i ? d.endDate : y).year = e), d.list("month", i))) : (d.checkDate("limit").calendar(y, i, "init"), d.closeList()), d.setBtnStatus(), !s.range && s.autoConfirm && ("month" === s.type && "month" === n || "year" === s.type && "year" === n) && d.setValue(d.parse()).done().remove(), d.autoCalendarModel.auto && !d.rangeLinked ? d.choose(lay(h).find("td.layui-this"), i) : d.endState && d.done(null, "change"), lay(d.footer).find("." + L).removeClass(k)) + })) : (e = lay.elem("span", {"class": M}), o = function () { + lay(c).find("ol").each(function (e) { + var a = this, t = lay(a).find("li"); + a.scrollTop = 30 * (d[T][D[e]] - 2), a.scrollTop <= 0 && t.each(function (e, t) { + if (!lay(this).hasClass(k)) return a.scrollTop = 30 * (e - 2), !0 + }) + }) + }, u = lay(a[2]).find("." + M), o(), e.innerHTML = s.range ? [m.startTime, m.endTime][i] : m.timeTips, lay(d.elemMain[i]).addClass("laydate-time-show"), u[0] && u.remove(), a[2].appendChild(e), (f = lay(c).find("ol")).each(function (t) { + var a = this; + lay(a).find("li").on("click", function () { + var e = 0 | this.innerHTML; + lay(this).hasClass(k) || (s.range ? d[T][D[t]] = e : y[D[t]] = e, lay(a).find("." + x).removeClass(x), lay(this).addClass(x), r(), o(), (d.endDate || "time" === s.type || "datetime" === s.type && s.fullPanel) && d.done(null, "change"), d.setBtnStatus()) + }) + }), layui.device().mobile && f.css({overflowY: "auto", touchAction: "pan-y"})), d + }, I.prototype.listYM = [], I.prototype.closeList = function () { + var a = this; + a.config; + lay.each(a.elemCont, function (e, t) { + lay(this).find("." + w).remove(), lay(a.elemMain[e]).removeClass("laydate-ym-show laydate-time-show") + }), lay(a.elem).find("." + M).remove() + }, I.prototype.setBtnStatus = function (e, t, a) { + var n = this, i = n.config, l = n.lang(), r = lay(n.footer).find(C); + i.range && "time" !== i.type && (t = t || (n.rangeLinked ? n.startDate : i.dateTime), a = a || n.endDate, i = !n.endState || n.newDate(t).getTime() > n.newDate(a).getTime(), n.limit({date: t}) || n.limit({date: a}) ? r.addClass(k) : r[i ? "addClass" : "removeClass"](k), e) && i && n.hint("string" == typeof e ? l.timeout.replace(/\u65e5\u671f/g, e) : l.timeout) + }, I.prototype.parse = function (e, t) { + var a = this, n = a.config, i = a.rangeLinked ? a.startDate : n.dateTime, + t = t || ("end" == e ? lay.extend({}, a.endDate, a.endTime) : n.range ? lay.extend({}, i || n.dateTime, a.startTime) : n.dateTime), + i = D.parse(t, a.format, 1); + return n.range && e === undefined ? i + " " + a.rangeStr + " " + a.parse("end") : i + }, I.prototype.newDate = function (e) { + return e = e || {}, new Date(e.year || 1, e.month || 0, e.date || 1, e.hours || 0, e.minutes || 0, e.seconds || 0) + }, I.prototype.getDateTime = function (e) { + return this.newDate(e).getTime() + }, I.prototype.setValue = function (e) { + var t = this, a = t.config, n = a.elem[0]; + return "static" !== a.position && (e = e || "", t.isInput(n) ? lay(n).val(e) : (a = t.rangeElem) ? ("array" !== layui.type(e) && (e = e.split(" " + t.rangeStr + " ")), a[0].val(e[0] || ""), a[1].val(e[1] || "")) : (0 === lay(n).find("*").length && lay(n).html(e), lay(n).attr("lay-date", e))), t + }, I.prototype.preview = function () { + var e, t = this, a = t.config; + a.isPreview && (e = lay(t.elem).find("." + E), a = !a.range || (t.rangeLinked ? t.endState : t.endDate) ? t.parse() : "", e.html(a), e.html()) && (e.css({color: "#16b777"}), setTimeout(function () { + e.css({color: "#777"}) + }, 300)) + }, I.prototype.renderAdditional = function () { + this.config.fullPanel && this.list("time", 0) + }, I.prototype.stampRange = function () { + var n, i = this, l = i.config, r = i.rangeLinked ? i.startDate : l.dateTime, e = lay(i.elem).find("td"); + l.range && !i.endState && lay(i.footer).find(C).addClass(k), r = r && i.newDate({ + year: r.year, + month: r.month, + date: r.date + }).getTime(), n = i.endState && i.endDate && i.newDate({ + year: i.endDate.year, + month: i.endDate.month, + date: i.endDate.date + }).getTime(), lay.each(e, function (e, t) { + var a = lay(t).attr("lay-ymd").split("-"), + a = i.newDate({year: a[0], month: a[1] - 1, date: a[2]}).getTime(); + l.rangeLinked && !i.startDate && a === i.newDate(i.systemDate()).getTime() && lay(t).addClass(lay(t).hasClass(y) || lay(t).hasClass(m) ? "" : "laydate-day-now"), lay(t).removeClass(o + " " + x), a !== r && a !== n || (i.rangeLinked || !i.rangeLinked && (e < 42 ? a === r : a === n)) && lay(t).addClass(lay(t).hasClass(y) || lay(t).hasClass(m) ? o : x), r < a && a < n && lay(t).addClass(o) + }) + }, I.prototype.done = function (e, t) { + var a = this, n = a.config, + i = lay.extend({}, lay.extend(a.rangeLinked ? a.startDate : n.dateTime, a.startTime)), + l = lay.extend({}, lay.extend(a.endDate, a.endTime)); + return lay.each([i, l], function (e, t) { + "month" in t && lay.extend(t, {month: t.month + 1}) + }), a.preview(), e = e || [a.parse(), i, l], "change" === t && a.renderAdditional(), "function" == typeof n[t || "done"] && n[t || "done"].apply(n, e), a + }, I.prototype.choose = function (e, a) { + var n, i, t, l, r, o; + e.hasClass(k) || (i = (n = this).config, t = a, n.rangeLinked && (n.endState || !n.startDate ? (a = 0, n.endState = !1) : (a = 1, n.endState = !0)), l = n.thisDateTime(a), lay(n.elem).find("td"), e = { + year: 0 | (e = e.attr("lay-ymd").split("-"))[0], + month: (0 | e[1]) - 1, + date: 0 | e[2] + }, lay.extend(l, e), i.range ? (lay.each(["startTime", "endTime"], function (e, t) { + n[t] = n[t] || { + hours: e ? 23 : 0, + minutes: e ? 59 : 0, + seconds: e ? 59 : 0 + }, a === e && (n.getDateTime(lay.extend({}, l, n[t])) < n.getDateTime(i.min) ? (n[t] = { + hours: i.min.hours, + minutes: i.min.minutes, + seconds: i.min.seconds + }, lay.extend(l, n[t])) : n.getDateTime(lay.extend({}, l, n[t])) > n.getDateTime(i.max) && (n[t] = { + hours: i.max.hours, + minutes: i.max.minutes, + seconds: i.max.seconds + }, lay.extend(l, n[t]))) + }), a || (n.startDate = lay.extend({}, l)), n.endState && !n.limit({date: n.thisDateTime(1 - a)}) && (((r = n.endState && n.autoCalendarModel.auto ? n.autoCalendarModel() : r) || n.rangeLinked && n.endState) && n.newDate(n.startDate) > n.newDate(n.endDate) && (n.startDate.year === n.endDate.year && n.startDate.month === n.endDate.month && n.startDate.date === n.endDate.date && (o = n.startTime, n.startTime = n.endTime, n.endTime = o), o = n.startDate, n.startDate = lay.extend({}, n.endDate, n.startTime), i.dateTime = lay.extend({}, n.startDate), n.endDate = lay.extend({}, o, n.endTime)), r) && (i.dateTime = lay.extend({}, n.startDate)), n.rangeLinked ? (e = lay.extend({}, l), !t || a || r || (o = n.getAsYM(l.year, l.month, "sub"), lay.extend(i.dateTime, { + year: o[0], + month: o[1] + })), n.calendar(e, t, r ? "init" : null)) : n.calendar(null, a, r ? "init" : null), n.endState && n.done(null, "change")) : "static" === i.position ? n.calendar().done().done(null, "change") : "date" === i.type ? i.autoConfirm ? n.setValue(n.parse()).done().remove() : n.calendar().done(null, "change") : "datetime" === i.type && n.calendar().done(null, "change")) + }, I.prototype.tool = function (t, e) { + var a = this, n = a.config, i = a.lang(), l = n.dateTime, r = "static" === n.position, o = { + datetime: function () { + lay(t).hasClass(k) || (a.list("time", 0), n.range && a.list("time", 1), lay(t).attr("lay-type", "date").html(a.lang().dateTips)) + }, date: function () { + a.closeList(), lay(t).attr("lay-type", "datetime").html(a.lang().timeTips) + }, clear: function () { + r && (lay.extend(l, a.firstDate), a.calendar()), n.range && (delete n.dateTime, delete a.endDate, delete a.startTime, delete a.endTime), a.setValue(""), a.done(null, "onClear").done(["", {}, {}]).remove() + }, now: function () { + var e = new Date; + if (lay(t).hasClass(k)) return a.hint(i.tools.now + ", " + i.invalidDate); + lay.extend(l, a.systemDate(), { + hours: e.getHours(), + minutes: e.getMinutes(), + seconds: e.getSeconds() + }), a.setValue(a.parse()), r && a.calendar(), a.done(null, "onNow").done().remove() + }, confirm: function () { + if (n.range) { + if (lay(t).hasClass(k)) return a.hint("time" === n.type ? i.timeout.replace(/\u65e5\u671f/g, "\u65f6\u95f4") : i.timeout) + } else if (lay(t).hasClass(k)) return a.hint(i.invalidDate); + a.setValue(a.parse()), a.done(null, "onConfirm").done().remove() + } + }; + o[e] && o[e]() + }, I.prototype.change = function (n) { + var i = this, l = i.config, r = i.thisDateTime(n), o = l.range && ("year" === l.type || "month" === l.type), + d = i.elemCont[n || 0], s = i.listYM[n], e = function (e) { + var t = lay(d).find(".laydate-year-list")[0], a = lay(d).find(".laydate-month-list")[0]; + return t && (s[0] = e ? s[0] - 15 : s[0] + 15, i.list("year", n)), a && (e ? s[0]-- : s[0]++, i.list("month", n)), (t || a) && (lay.extend(r, {year: s[0]}), o && (r.year = s[0]), l.range || i.done(null, "change"), l.range || i.limit({ + elem: lay(i.footer).find(C), + date: {year: s[0]} + })), i.setBtnStatus(), t || a + }; + return { + prevYear: function () { + e("sub") || (i.rangeLinked ? (l.dateTime.year--, i.checkDate("limit").calendar(null, null, "init")) : (r.year--, i.checkDate("limit").calendar(null, n), i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change"))) + }, prevMonth: function () { + i.rangeLinked && (r = l.dateTime); + var e = i.getAsYM(r.year, r.month, "sub"); + lay.extend(r, { + year: e[0], + month: e[1] + }), i.checkDate("limit").calendar(null, null, "init"), i.rangeLinked || (i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change")) + }, nextMonth: function () { + i.rangeLinked && (r = l.dateTime); + var e = i.getAsYM(r.year, r.month); + lay.extend(r, { + year: e[0], + month: e[1] + }), i.checkDate("limit").calendar(null, null, "init"), i.rangeLinked || (i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change")) + }, nextYear: function () { + e() || (i.rangeLinked ? (l.dateTime.year++, i.checkDate("limit").calendar(null, 0, "init")) : (r.year++, i.checkDate("limit").calendar(null, n), i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change"))) + } + } + }, I.prototype.changeEvent = function () { + var i = this; + i.config; + lay(i.elem).on("click", function (e) { + lay.stope(e) + }).on("mousedown", function (e) { + lay.stope(e) + }), lay.each(i.elemHeader, function (n, e) { + lay(e[0]).on("click", function (e) { + i.change(n).prevYear() + }), lay(e[1]).on("click", function (e) { + i.change(n).prevMonth() + }), lay(e[2]).find("span").on("click", function (e) { + var t = lay(this), a = t.attr("lay-ym"), t = t.attr("lay-type"); + a && (a = a.split("-"), i.listYM[n] = [0 | a[0], 0 | a[1]], i.list(t, n), lay(i.footer).find("." + L).addClass(k)) + }), lay(e[3]).on("click", function (e) { + i.change(n).nextMonth() + }), lay(e[4]).on("click", function (e) { + i.change(n).nextYear() + }) + }), lay.each(i.table, function (e, t) { + lay(t).find("td").on("click", function () { + i.choose(lay(this), e) + }) + }), lay(i.footer).find("span").on("click", function () { + var e = lay(this).attr("lay-type"); + i.tool(this, e) + }) + }, I.prototype.isInput = function (e) { + return /input|textarea/.test(e.tagName.toLocaleLowerCase()) || /INPUT|TEXTAREA/.test(e.tagName) + }, I.prototype.events = function () { + var e, t = this, a = t.config; + a.elem[0] && !a.elem[0].eventHandler && (a.elem.on(a.trigger, e = function () { + D.thisId !== a.id && t.render() + }), a.elem[0].eventHandler = !0, a.eventElem.on(a.trigger, e), t.unbind = function () { + t.remove(), a.elem.off(a.trigger, e), a.elem.removeAttr("lay-key"), a.elem.removeAttr(d), a.elem[0].eventHandler = !1, a.eventElem.off(a.trigger, e), a.eventElem.removeAttr("lay-key"), delete s.that[a.id] + }) + }, s.that = {}, s.getThis = function (e) { + var t = s.that[e]; + return !t && n && layui.hint().error(e ? a + " instance with ID '" + e + "' not found" : "ID argument required"), t + }, l.run = function (n) { + n(v).on("mousedown", function (e) { + var t, a; + D.thisId && (t = s.getThis(D.thisId)) && (a = t.config, e.target === a.elem[0] || e.target === a.eventElem[0] || e.target === n(a.closeStop)[0] || a.elem[0] && a.elem[0].contains(e.target) || t.remove()) + }).on("keydown", function (e) { + var t; + D.thisId && (t = s.getThis(D.thisId)) && "static" !== t.config.position && 13 === e.keyCode && n("#" + t.elemID)[0] && t.elemID === I.thisElemDate && (e.preventDefault(), n(t.footer).find(C)[0].click()) + }), n(i).on("resize", function () { + if (D.thisId) { + var e = s.getThis(D.thisId); + if (e) return !(!e.elem || !n(".layui-laydate")[0]) && void e.position() + } + }) + }, D.render = function (e) { + e = new I(e); + return s.call(e) + }, D.reload = function (e, t) { + e = s.getThis(e); + if (e) return e.reload(t) + }, D.getInst = function (e) { + e = s.getThis(e); + if (e) return e.inst + }, D.hint = function (e, t) { + e = s.getThis(e); + if (e) return e.hint(t) + }, D.unbind = function (e) { + e = s.getThis(e); + if (e) return e.unbind() + }, D.close = function (e) { + e = s.getThis(e || D.thisId); + if (e) return e.remove() + }, D.parse = function (a, n, i) { + return a = a || {}, n = ((n = "string" == typeof n ? s.formatArr(n) : n) || []).concat(), lay.each(n, function (e, t) { + /yyyy|y/.test(t) ? n[e] = lay.digit(a.year, t.length) : /MM|M/.test(t) ? n[e] = lay.digit(a.month + (i || 0), t.length) : /dd|d/.test(t) ? n[e] = lay.digit(a.date, t.length) : /HH|H/.test(t) ? n[e] = lay.digit(a.hours, t.length) : /mm|m/.test(t) ? n[e] = lay.digit(a.minutes, t.length) : /ss|s/.test(t) && (n[e] = lay.digit(a.seconds, t.length)) + }), n.join("") + }, D.getEndDate = function (e, t) { + var a = new Date; + return a.setFullYear(t || a.getFullYear(), e || a.getMonth() + 1, 1), new Date(a.getTime() - 864e5).getDate() + }, n ? (D.ready(), layui.define("lay", function (e) { + D.path = layui.cache.dir, l.run(lay), e(a, D) + })) : "function" == typeof define && define.amd ? define(function () { + return l.run(lay), D + }) : (D.ready(), l.run(i.lay), i.laydate = D) +}(window, window.document); +!function (e, t) { + "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e) : function (e) { + if (e.document) return t(e); + throw new Error("jQuery requires a window with a document") + } : t(e) +}("undefined" != typeof window ? window : this, function (T, M) { + var f = [], g = T.document, c = f.slice, O = f.concat, R = f.push, P = f.indexOf, B = {}, W = B.toString, + m = B.hasOwnProperty, y = {}, e = "1.12.4", C = function (e, t) { + return new C.fn.init(e, t) + }, I = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, $ = /^-ms-/, z = /-([\da-z])/gi, X = function (e, t) { + return t.toUpperCase() + }; + + function U(e) { + var t = !!e && "length" in e && e.length, n = C.type(e); + return "function" !== n && !C.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) + } + + C.fn = C.prototype = { + jquery: e, constructor: C, selector: "", length: 0, toArray: function () { + return c.call(this) + }, get: function (e) { + return null != e ? e < 0 ? this[e + this.length] : this[e] : c.call(this) + }, pushStack: function (e) { + e = C.merge(this.constructor(), e); + return e.prevObject = this, e.context = this.context, e + }, each: function (e) { + return C.each(this, e) + }, map: function (n) { + return this.pushStack(C.map(this, function (e, t) { + return n.call(e, t, e) + })) + }, slice: function () { + return this.pushStack(c.apply(this, arguments)) + }, first: function () { + return this.eq(0) + }, last: function () { + return this.eq(-1) + }, eq: function (e) { + var t = this.length, e = +e + (e < 0 ? t : 0); + return this.pushStack(0 <= e && e < t ? [this[e]] : []) + }, end: function () { + return this.prevObject || this.constructor() + }, push: R, sort: f.sort, splice: f.splice + }, C.extend = C.fn.extend = function () { + var e, t, n, r, i, o = arguments[0] || {}, a = 1, s = arguments.length, u = !1; + for ("boolean" == typeof o && (u = o, o = arguments[a] || {}, a++), "object" == typeof o || C.isFunction(o) || (o = {}), a === s && (o = this, a--); a < s; a++) if (null != (r = arguments[a])) for (n in r) i = o[n], o !== (t = r[n]) && (u && t && (C.isPlainObject(t) || (e = C.isArray(t))) ? (i = e ? (e = !1, i && C.isArray(i) ? i : []) : i && C.isPlainObject(i) ? i : {}, o[n] = C.extend(u, i, t)) : t !== undefined && (o[n] = t)); + return o + }, C.extend({ + expando: "jQuery" + (e + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { + throw new Error(e) + }, noop: function () { + }, isFunction: function (e) { + return "function" === C.type(e) + }, isArray: Array.isArray || function (e) { + return "array" === C.type(e) + }, isWindow: function (e) { + return null != e && e == e.window + }, isNumeric: function (e) { + var t = e && e.toString(); + return !C.isArray(e) && 0 <= t - parseFloat(t) + 1 + }, isEmptyObject: function (e) { + for (var t in e) return !1; + return !0 + }, isPlainObject: function (e) { + if (!e || "object" !== C.type(e) || e.nodeType || C.isWindow(e)) return !1; + try { + if (e.constructor && !m.call(e, "constructor") && !m.call(e.constructor.prototype, "isPrototypeOf")) return !1 + } catch (n) { + return !1 + } + if (!y.ownFirst) for (var t in e) return m.call(e, t); + for (t in e) ; + return t === undefined || m.call(e, t) + }, type: function (e) { + return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? B[W.call(e)] || "object" : typeof e + }, globalEval: function (e) { + e && C.trim(e) && (T.execScript || function (e) { + T.eval.call(T, e) + })(e) + }, camelCase: function (e) { + return e.replace($, "ms-").replace(z, X) + }, nodeName: function (e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() + }, each: function (e, t) { + var n, r = 0; + if (U(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++) ; else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; + return e + }, trim: function (e) { + return null == e ? "" : (e + "").replace(I, "") + }, makeArray: function (e, t) { + t = t || []; + return null != e && (U(Object(e)) ? C.merge(t, "string" == typeof e ? [e] : e) : R.call(t, e)), t + }, inArray: function (e, t, n) { + var r; + if (t) { + if (P) return P.call(t, e, n); + for (r = t.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0; n < r; n++) if (n in t && t[n] === e) return n + } + return -1 + }, merge: function (e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n;) e[i++] = t[r++]; + if (n != n) for (; t[r] !== undefined;) e[i++] = t[r++]; + return e.length = i, e + }, grep: function (e, t, n) { + for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) != a && r.push(e[i]); + return r + }, map: function (e, t, n) { + var r, i, o = 0, a = []; + if (U(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i); else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); + return O.apply([], a) + }, guid: 1, proxy: function (e, t) { + var n, r; + return "string" == typeof t && (r = e[t], t = e, e = r), C.isFunction(e) ? (n = c.call(arguments, 2), (r = function () { + return e.apply(t || this, n.concat(c.call(arguments))) + }).guid = e.guid = e.guid || C.guid++, r) : undefined + }, now: function () { + return +new Date + }, support: y + }), "function" == typeof Symbol && (C.fn[Symbol.iterator] = f[Symbol.iterator]), C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { + B["[object " + t + "]"] = t.toLowerCase() + }); + var e = function (M) { + var e, g, b, o, O, w, R, P, T, u, l, C, E, t, N, m, r, i, y, k = "sizzle" + +new Date, v = M.document, S = 0, + B = 0, W = le(), I = le(), A = le(), $ = function (e, t) { + return e === t && (l = !0), 0 + }, z = {}.hasOwnProperty, n = [], X = n.pop, U = n.push, D = n.push, V = n.slice, j = function (e, t) { + for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; + return -1 + }, + Y = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + a = "[\\x20\\t\\r\\n\\f]", s = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + J = "\\[" + a + "*(" + s + ")(?:" + a + "*([*^$|!~]?=)" + a + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + s + "))|)" + a + "*\\]", + G = ":(" + s + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + J + ")*)|.*)\\)|)", + K = new RegExp(a + "+", "g"), L = new RegExp("^" + a + "+|((?:^|[^\\\\])(?:\\\\.)*)" + a + "+$", "g"), + Q = new RegExp("^" + a + "*," + a + "*"), Z = new RegExp("^" + a + "*([>+~]|" + a + ")" + a + "*"), + ee = new RegExp("=" + a + "*([^\\]'\"]*?)" + a + "*\\]", "g"), te = new RegExp(G), + ne = new RegExp("^" + s + "$"), f = { + ID: new RegExp("^#(" + s + ")"), + CLASS: new RegExp("^\\.(" + s + ")"), + TAG: new RegExp("^(" + s + "|[*])"), + ATTR: new RegExp("^" + J), + PSEUDO: new RegExp("^" + G), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + a + "*(even|odd|(([+-]|)(\\d*)n|)" + a + "*(?:([+-]|)" + a + "*(\\d+)|))" + a + "*\\)|)", "i"), + bool: new RegExp("^(?:" + Y + ")$", "i"), + needsContext: new RegExp("^" + a + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + a + "*((?:-\\d)?\\d*)" + a + "*\\)|)(?=[^-]|$)", "i") + }, re = /^(?:input|select|textarea|button)$/i, ie = /^h\d$/i, c = /^[^{]+\{\s*\[native \w/, + oe = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ae = /[+~]/, se = /'|\\/g, + d = new RegExp("\\\\([\\da-f]{1,6}" + a + "?|(" + a + ")|.)", "ig"), p = function (e, t, n) { + var r = "0x" + t - 65536; + return r != r || n ? t : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) + }, ue = function () { + C() + }; + try { + D.apply(n = V.call(v.childNodes), v.childNodes), n[v.childNodes.length].nodeType + } catch (F) { + D = { + apply: n.length ? function (e, t) { + U.apply(e, V.call(t)) + } : function (e, t) { + for (var n = e.length, r = 0; e[n++] = t[r++];) ; + e.length = n - 1 + } + } + } + + function H(e, t, n, r) { + var i, o, a, s, u, l, c, f, d = t && t.ownerDocument, p = t ? t.nodeType : 9; + if (n = n || [], "string" != typeof e || !e || 1 !== p && 9 !== p && 11 !== p) return n; + if (!r && ((t ? t.ownerDocument || t : v) !== E && C(t), t = t || E, N)) { + if (11 !== p && (l = oe.exec(e))) if (i = l[1]) { + if (9 === p) { + if (!(a = t.getElementById(i))) return n; + if (a.id === i) return n.push(a), n + } else if (d && (a = d.getElementById(i)) && y(t, a) && a.id === i) return n.push(a), n + } else { + if (l[2]) return D.apply(n, t.getElementsByTagName(e)), n; + if ((i = l[3]) && g.getElementsByClassName && t.getElementsByClassName) return D.apply(n, t.getElementsByClassName(i)), n + } + if (g.qsa && !A[e + " "] && (!m || !m.test(e))) { + if (1 !== p) d = t, f = e; else if ("object" !== t.nodeName.toLowerCase()) { + for ((s = t.getAttribute("id")) ? s = s.replace(se, "\\$&") : t.setAttribute("id", s = k), o = (c = w(e)).length, u = ne.test(s) ? "#" + s : "[id='" + s + "']"; o--;) c[o] = u + " " + _(c[o]); + f = c.join(","), d = ae.test(e) && de(t.parentNode) || t + } + if (f) try { + return D.apply(n, d.querySelectorAll(f)), n + } catch (h) { + } finally { + s === k && t.removeAttribute("id") + } + } + } + return P(e.replace(L, "$1"), t, n, r) + } + + function le() { + var n = []; + + function r(e, t) { + return n.push(e + " ") > b.cacheLength && delete r[n.shift()], r[e + " "] = t + } + + return r + } + + function q(e) { + return e[k] = !0, e + } + + function h(e) { + var t = E.createElement("div"); + try { + return !!e(t) + } catch (F) { + return !1 + } finally { + t.parentNode && t.parentNode.removeChild(t) + } + } + + function ce(e, t) { + for (var n = e.split("|"), r = n.length; r--;) b.attrHandle[n[r]] = t + } + + function fe(e, t) { + var n = t && e, + r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31); + if (r) return r; + if (n) for (; n = n.nextSibling;) if (n === t) return -1; + return e ? 1 : -1 + } + + function x(a) { + return q(function (o) { + return o = +o, q(function (e, t) { + for (var n, r = a([], e.length, o), i = r.length; i--;) e[n = r[i]] && (e[n] = !(t[n] = e[n])) + }) + }) + } + + function de(e) { + return e && "undefined" != typeof e.getElementsByTagName && e + } + + for (e in g = H.support = {}, O = H.isXML = function (e) { + e = e && (e.ownerDocument || e).documentElement; + return !!e && "HTML" !== e.nodeName + }, C = H.setDocument = function (e) { + var e = e ? e.ownerDocument || e : v; + return e !== E && 9 === e.nodeType && e.documentElement && (t = (E = e).documentElement, N = !O(E), (e = E.defaultView) && e.top !== e && (e.addEventListener ? e.addEventListener("unload", ue, !1) : e.attachEvent && e.attachEvent("onunload", ue)), g.attributes = h(function (e) { + return e.className = "i", !e.getAttribute("className") + }), g.getElementsByTagName = h(function (e) { + return e.appendChild(E.createComment("")), !e.getElementsByTagName("*").length + }), g.getElementsByClassName = c.test(E.getElementsByClassName), g.getById = h(function (e) { + return t.appendChild(e).id = k, !E.getElementsByName || !E.getElementsByName(k).length + }), g.getById ? (b.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && N) return (e = t.getElementById(e)) ? [e] : [] + }, b.filter.ID = function (e) { + var t = e.replace(d, p); + return function (e) { + return e.getAttribute("id") === t + } + }) : (delete b.find.ID, b.filter.ID = function (e) { + var t = e.replace(d, p); + return function (e) { + e = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); + return e && e.value === t + } + }), b.find.TAG = g.getElementsByTagName ? function (e, t) { + return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : g.qsa ? t.querySelectorAll(e) : void 0 + } : function (e, t) { + var n, r = [], i = 0, o = t.getElementsByTagName(e); + if ("*" !== e) return o; + for (; n = o[i++];) 1 === n.nodeType && r.push(n); + return r + }, b.find.CLASS = g.getElementsByClassName && function (e, t) { + if ("undefined" != typeof t.getElementsByClassName && N) return t.getElementsByClassName(e) + }, r = [], m = [], (g.qsa = c.test(E.querySelectorAll)) && (h(function (e) { + t.appendChild(e).innerHTML = "", e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + a + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || m.push("\\[" + a + "*(?:value|" + Y + ")"), e.querySelectorAll("[id~=" + k + "-]").length || m.push("~="), e.querySelectorAll(":checked").length || m.push(":checked"), e.querySelectorAll("a#" + k + "+*").length || m.push(".#.+[+~]") + }), h(function (e) { + var t = E.createElement("input"); + t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && m.push("name" + a + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || m.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), m.push(",.*:") + })), (g.matchesSelector = c.test(i = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.msMatchesSelector)) && h(function (e) { + g.disconnectedMatch = i.call(e, "div"), i.call(e, "[s!='']:x"), r.push("!=", G) + }), m = m.length && new RegExp(m.join("|")), r = r.length && new RegExp(r.join("|")), e = c.test(t.compareDocumentPosition), y = e || c.test(t.contains) ? function (e, t) { + var n = 9 === e.nodeType ? e.documentElement : e, t = t && t.parentNode; + return e === t || !(!t || 1 !== t.nodeType || !(n.contains ? n.contains(t) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(t))) + } : function (e, t) { + if (t) for (; t = t.parentNode;) if (t === e) return !0; + return !1 + }, $ = e ? function (e, t) { + var n; + return e === t ? (l = !0, 0) : (n = !e.compareDocumentPosition - !t.compareDocumentPosition) || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !g.sortDetached && t.compareDocumentPosition(e) === n ? e === E || e.ownerDocument === v && y(v, e) ? -1 : t === E || t.ownerDocument === v && y(v, t) ? 1 : u ? j(u, e) - j(u, t) : 0 : 4 & n ? -1 : 1) + } : function (e, t) { + if (e === t) return l = !0, 0; + var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; + if (!i || !o) return e === E ? -1 : t === E ? 1 : i ? -1 : o ? 1 : u ? j(u, e) - j(u, t) : 0; + if (i === o) return fe(e, t); + for (n = e; n = n.parentNode;) a.unshift(n); + for (n = t; n = n.parentNode;) s.unshift(n); + for (; a[r] === s[r];) r++; + return r ? fe(a[r], s[r]) : a[r] === v ? -1 : s[r] === v ? 1 : 0 + }), E + }, H.matches = function (e, t) { + return H(e, null, null, t) + }, H.matchesSelector = function (e, t) { + if ((e.ownerDocument || e) !== E && C(e), t = t.replace(ee, "='$1']"), g.matchesSelector && N && !A[t + " "] && (!r || !r.test(t)) && (!m || !m.test(t))) try { + var n = i.call(e, t); + if (n || g.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n + } catch (F) { + } + return 0 < H(t, E, null, [e]).length + }, H.contains = function (e, t) { + return (e.ownerDocument || e) !== E && C(e), y(e, t) + }, H.attr = function (e, t) { + (e.ownerDocument || e) !== E && C(e); + var n = b.attrHandle[t.toLowerCase()], + n = n && z.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !N) : undefined; + return n !== undefined ? n : g.attributes || !N ? e.getAttribute(t) : (n = e.getAttributeNode(t)) && n.specified ? n.value : null + }, H.error = function (e) { + throw new Error("Syntax error, unrecognized expression: " + e) + }, H.uniqueSort = function (e) { + var t, n = [], r = 0, i = 0; + if (l = !g.detectDuplicates, u = !g.sortStable && e.slice(0), e.sort($), l) { + for (; t = e[i++];) t === e[i] && (r = n.push(i)); + for (; r--;) e.splice(n[r], 1) + } + return u = null, e + }, o = H.getText = function (e) { + var t, n = "", r = 0, i = e.nodeType; + if (i) { + if (1 === i || 9 === i || 11 === i) { + if ("string" == typeof e.textContent) return e.textContent; + for (e = e.firstChild; e; e = e.nextSibling) n += o(e) + } else if (3 === i || 4 === i) return e.nodeValue + } else for (; t = e[r++];) n += o(t); + return n + }, (b = H.selectors = { + cacheLength: 50, + createPseudo: q, + match: f, + attrHandle: {}, + find: {}, + relative: { + ">": {dir: "parentNode", first: !0}, + " ": {dir: "parentNode"}, + "+": {dir: "previousSibling", first: !0}, + "~": {dir: "previousSibling"} + }, + preFilter: { + ATTR: function (e) { + return e[1] = e[1].replace(d, p), e[3] = (e[3] || e[4] || e[5] || "").replace(d, p), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) + }, CHILD: function (e) { + return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || H.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && H.error(e[0]), e + }, PSEUDO: function (e) { + var t, n = !e[6] && e[2]; + return f.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && te.test(n) && (t = (t = w(n, !0)) && n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) + } + }, + filter: { + TAG: function (e) { + var t = e.replace(d, p).toLowerCase(); + return "*" === e ? function () { + return !0 + } : function (e) { + return e.nodeName && e.nodeName.toLowerCase() === t + } + }, CLASS: function (e) { + var t = W[e + " "]; + return t || (t = new RegExp("(^|" + a + ")" + e + "(" + a + "|$)")) && W(e, function (e) { + return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "") + }) + }, ATTR: function (t, n, r) { + return function (e) { + e = H.attr(e, t); + return null == e ? "!=" === n : !n || (e += "", "=" === n ? e === r : "!=" === n ? e !== r : "^=" === n ? r && 0 === e.indexOf(r) : "*=" === n ? r && -1 < e.indexOf(r) : "$=" === n ? r && e.slice(-r.length) === r : "~=" === n ? -1 < (" " + e.replace(K, " ") + " ").indexOf(r) : "|=" === n && (e === r || e.slice(0, r.length + 1) === r + "-")) + } + }, CHILD: function (h, e, t, g, m) { + var y = "nth" !== h.slice(0, 3), v = "last" !== h.slice(-4), x = "of-type" === e; + return 1 === g && 0 === m ? function (e) { + return !!e.parentNode + } : function (e, t, n) { + var r, i, o, a, s, u, l = y != v ? "nextSibling" : "previousSibling", c = e.parentNode, + f = x && e.nodeName.toLowerCase(), d = !n && !x, p = !1; + if (c) { + if (y) { + for (; l;) { + for (a = e; a = a[l];) if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1; + u = l = "only" === h && !u && "nextSibling" + } + return !0 + } + if (u = [v ? c.firstChild : c.lastChild], v && d) { + for (p = (s = (r = (i = (o = (a = c)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1]) && r[2], a = s && c.childNodes[s]; a = ++s && a && a[l] || (p = s = 0, u.pop());) if (1 === a.nodeType && ++p && a === e) { + i[h] = [S, s, p]; + break + } + } else if (!1 === (p = d ? s = (r = (i = (o = (a = e)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1] : p)) for (; (a = ++s && a && a[l] || (p = s = 0, u.pop())) && ((x ? a.nodeName.toLowerCase() !== f : 1 !== a.nodeType) || !++p || (d && ((i = (o = a[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [S, p]), a !== e));) ; + return (p -= m) === g || p % g == 0 && 0 <= p / g + } + } + }, PSEUDO: function (e, o) { + var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || H.error("unsupported pseudo: " + e); + return a[k] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? q(function (e, t) { + for (var n, r = a(e, o), i = r.length; i--;) e[n = j(e, r[i])] = !(t[n] = r[i]) + }) : function (e) { + return a(e, 0, t) + }) : a + } + }, + pseudos: { + not: q(function (e) { + var r = [], i = [], s = R(e.replace(L, "$1")); + return s[k] ? q(function (e, t, n, r) { + for (var i, o = s(e, null, r, []), a = e.length; a--;) (i = o[a]) && (e[a] = !(t[a] = i)) + }) : function (e, t, n) { + return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop() + } + }), has: q(function (t) { + return function (e) { + return 0 < H(t, e).length + } + }), contains: q(function (t) { + return t = t.replace(d, p), function (e) { + return -1 < (e.textContent || e.innerText || o(e)).indexOf(t) + } + }), lang: q(function (n) { + return ne.test(n || "") || H.error("unsupported lang: " + n), n = n.replace(d, p).toLowerCase(), function (e) { + var t; + do { + if (t = N ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") + } while ((e = e.parentNode) && 1 === e.nodeType); + return !1 + } + }), target: function (e) { + var t = M.location && M.location.hash; + return t && t.slice(1) === e.id + }, root: function (e) { + return e === t + }, focus: function (e) { + return e === E.activeElement && (!E.hasFocus || E.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) + }, enabled: function (e) { + return !1 === e.disabled + }, disabled: function (e) { + return !0 === e.disabled + }, checked: function (e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && !!e.checked || "option" === t && !!e.selected + }, selected: function (e) { + return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected + }, empty: function (e) { + for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; + return !0 + }, parent: function (e) { + return !b.pseudos.empty(e) + }, header: function (e) { + return ie.test(e.nodeName) + }, input: function (e) { + return re.test(e.nodeName) + }, button: function (e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && "button" === e.type || "button" === t + }, text: function (e) { + return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (e = e.getAttribute("type")) || "text" === e.toLowerCase()) + }, first: x(function () { + return [0] + }), last: x(function (e, t) { + return [t - 1] + }), eq: x(function (e, t, n) { + return [n < 0 ? n + t : n] + }), even: x(function (e, t) { + for (var n = 0; n < t; n += 2) e.push(n); + return e + }), odd: x(function (e, t) { + for (var n = 1; n < t; n += 2) e.push(n); + return e + }), lt: x(function (e, t, n) { + for (var r = n < 0 ? n + t : n; 0 <= --r;) e.push(r); + return e + }), gt: x(function (e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r); + return e + }) + } + }).pseudos.nth = b.pseudos.eq, { + radio: !0, + checkbox: !0, + file: !0, + password: !0, + image: !0 + }) b.pseudos[e] = function (t) { + return function (e) { + return "input" === e.nodeName.toLowerCase() && e.type === t + } + }(e); + for (e in {submit: !0, reset: !0}) b.pseudos[e] = function (n) { + return function (e) { + var t = e.nodeName.toLowerCase(); + return ("input" === t || "button" === t) && e.type === n + } + }(e); + + function pe() { + } + + function _(e) { + for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; + return r + } + + function he(a, e, t) { + var s = e.dir, u = t && "parentNode" === s, l = B++; + return e.first ? function (e, t, n) { + for (; e = e[s];) if (1 === e.nodeType || u) return a(e, t, n) + } : function (e, t, n) { + var r, i, o = [S, l]; + if (n) { + for (; e = e[s];) if ((1 === e.nodeType || u) && a(e, t, n)) return !0 + } else for (; e = e[s];) if (1 === e.nodeType || u) { + if ((r = (i = (i = e[k] || (e[k] = {}))[e.uniqueID] || (i[e.uniqueID] = {}))[s]) && r[0] === S && r[1] === l) return o[2] = r[2]; + if ((i[s] = o)[2] = a(e, t, n)) return !0 + } + } + } + + function ge(i) { + return 1 < i.length ? function (e, t, n) { + for (var r = i.length; r--;) if (!i[r](e, t, n)) return !1; + return !0 + } : i[0] + } + + function me(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) !(o = e[s]) || n && !n(o, r, i) || (a.push(o), l && t.push(s)); + return a + } + + function ye(p, h, g, m, y, e) { + return m && !m[k] && (m = ye(m)), y && !y[k] && (y = ye(y, e)), q(function (e, t, n, r) { + var i, o, a, s = [], u = [], l = t.length, c = e || function (e, t, n) { + for (var r = 0, i = t.length; r < i; r++) H(e, t[r], n); + return n + }(h || "*", n.nodeType ? [n] : n, []), f = !p || !e && h ? c : me(c, s, p, n, r), + d = g ? y || (e ? p : l || m) ? [] : t : f; + if (g && g(f, d, n, r), m) for (i = me(d, u), m(i, [], n, r), o = i.length; o--;) (a = i[o]) && (d[u[o]] = !(f[u[o]] = a)); + if (e) { + if (y || p) { + if (y) { + for (i = [], o = d.length; o--;) (a = d[o]) && i.push(f[o] = a); + y(null, d = [], i, r) + } + for (o = d.length; o--;) (a = d[o]) && -1 < (i = y ? j(e, a) : s[o]) && (e[i] = !(t[i] = a)) + } + } else d = me(d === t ? d.splice(l, d.length) : d), y ? y(null, t, d, r) : D.apply(t, d) + }) + } + + return pe.prototype = b.filters = b.pseudos, b.setFilters = new pe, w = H.tokenize = function (e, t) { + var n, r, i, o, a, s, u, l = I[e + " "]; + if (l) return t ? 0 : l.slice(0); + for (a = e, s = [], u = b.preFilter; a;) { + for (o in n && !(r = Q.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = Z.exec(a)) && (n = r.shift(), i.push({ + value: n, + type: r[0].replace(L, " ") + }), a = a.slice(n.length)), b.filter) !(r = f[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({ + value: n, + type: o, + matches: r + }), a = a.slice(n.length)); + if (!n) break + } + return t ? a.length : a ? H.error(e) : I(e, s).slice(0) + }, R = H.compile = function (e, t) { + var n, m, y, v, x, r, i = [], o = [], a = A[e + " "]; + if (!a) { + for (n = (t = t || w(e)).length; n--;) ((a = function f(e) { + for (var r, t, n, i = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = he(function (e) { + return e === r + }, a, !0), l = he(function (e) { + return -1 < j(r, e) + }, a, !0), c = [function (e, t, n) { + return e = !o && (n || t !== T) || ((r = t).nodeType ? u : l)(e, t, n), r = null, e + }]; s < i; s++) if (t = b.relative[e[s].type]) c = [he(ge(c), t)]; else { + if ((t = b.filter[e[s].type].apply(null, e[s].matches))[k]) { + for (n = ++s; n < i && !b.relative[e[n].type]; n++) ; + return ye(1 < s && ge(c), 1 < s && _(e.slice(0, s - 1).concat({value: " " === e[s - 2].type ? "*" : ""})).replace(L, "$1"), t, s < n && f(e.slice(s, n)), n < i && f(e = e.slice(n)), n < i && _(e)) + } + c.push(t) + } + return ge(c) + }(t[n]))[k] ? i : o).push(a); + (a = A(e, (m = o, v = 0 < (y = i).length, x = 0 < m.length, r = function (e, t, n, r, i) { + var o, a, s, u = 0, l = "0", c = e && [], f = [], d = T, p = e || x && b.find.TAG("*", i), + h = S += null == d ? 1 : Math.random() || .1, g = p.length; + for (i && (T = t === E || t || i); l !== g && null != (o = p[l]); l++) { + if (x && o) { + for (a = 0, t || o.ownerDocument === E || (C(o), n = !N); s = m[a++];) if (s(o, t || E, n)) { + r.push(o); + break + } + i && (S = h) + } + v && ((o = !s && o) && u--, e) && c.push(o) + } + if (u += l, v && l !== u) { + for (a = 0; s = y[a++];) s(c, f, t, n); + if (e) { + if (0 < u) for (; l--;) c[l] || f[l] || (f[l] = X.call(r)); + f = me(f) + } + D.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && H.uniqueSort(r) + } + return i && (S = h, T = d), c + }, v ? q(r) : r))).selector = e + } + return a + }, P = H.select = function (e, t, n, r) { + var i, o, a, s, u, l = "function" == typeof e && e, c = !r && w(e = l.selector || e); + if (n = n || [], 1 === c.length) { + if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && g.getById && 9 === t.nodeType && N && b.relative[o[1].type]) { + if (!(t = (b.find.ID(a.matches[0].replace(d, p), t) || [])[0])) return n; + l && (t = t.parentNode), e = e.slice(o.shift().value.length) + } + for (i = f.needsContext.test(e) ? 0 : o.length; i-- && (a = o[i], !b.relative[s = a.type]);) if ((u = b.find[s]) && (r = u(a.matches[0].replace(d, p), ae.test(o[0].type) && de(t.parentNode) || t))) { + if (o.splice(i, 1), e = r.length && _(o)) break; + return D.apply(n, r), n + } + } + return (l || R(e, c))(r, t, !N, n, !t || ae.test(e) && de(t.parentNode) || t), n + }, g.sortStable = k.split("").sort($).join("") === k, g.detectDuplicates = !!l, C(), g.sortDetached = h(function (e) { + return 1 & e.compareDocumentPosition(E.createElement("div")) + }), h(function (e) { + return e.innerHTML = "", "#" === e.firstChild.getAttribute("href") + }) || ce("type|href|height|width", function (e, t, n) { + if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) + }), g.attributes && h(function (e) { + return e.innerHTML = "", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") + }) || ce("value", function (e, t, n) { + if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue + }), h(function (e) { + return null == e.getAttribute("disabled") + }) || ce(Y, function (e, t, n) { + if (!n) return !0 === e[t] ? t.toLowerCase() : (n = e.getAttributeNode(t)) && n.specified ? n.value : null + }), H + }(T), + r = (C.find = e, C.expr = e.selectors, C.expr[":"] = C.expr.pseudos, C.uniqueSort = C.unique = e.uniqueSort, C.text = e.getText, C.isXMLDoc = e.isXML, C.contains = e.contains, function (e, t, n) { + for (var r = [], i = n !== undefined; (e = e[t]) && 9 !== e.nodeType;) if (1 === e.nodeType) { + if (i && C(e).is(n)) break; + r.push(e) + } + return r + }), V = function (e, t) { + for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); + return n + }, Y = C.expr.match.needsContext, J = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, G = /^.[^:#\[\.,]*$/; + + function K(e, n, r) { + if (C.isFunction(n)) return C.grep(e, function (e, t) { + return !!n.call(e, t, e) !== r + }); + if (n.nodeType) return C.grep(e, function (e) { + return e === n !== r + }); + if ("string" == typeof n) { + if (G.test(n)) return C.filter(n, e, r); + n = C.filter(n, e) + } + return C.grep(e, function (e) { + return -1 < C.inArray(e, n) !== r + }) + } + + C.filter = function (e, t, n) { + var r = t[0]; + return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? C.find.matchesSelector(r, e) ? [r] : [] : C.find.matches(e, C.grep(t, function (e) { + return 1 === e.nodeType + })) + }, C.fn.extend({ + find: function (e) { + var t, n = [], r = this, i = r.length; + if ("string" != typeof e) return this.pushStack(C(e).filter(function () { + for (t = 0; t < i; t++) if (C.contains(r[t], this)) return !0 + })); + for (t = 0; t < i; t++) C.find(e, r[t], n); + return (n = this.pushStack(1 < i ? C.unique(n) : n)).selector = this.selector ? this.selector + " " + e : e, n + }, filter: function (e) { + return this.pushStack(K(this, e || [], !1)) + }, not: function (e) { + return this.pushStack(K(this, e || [], !0)) + }, is: function (e) { + return !!K(this, "string" == typeof e && Y.test(e) ? C(e) : e || [], !1).length + } + }); + var Q, Z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, ee = ((C.fn.init = function (e, t, n) { + if (e) { + if (n = n || Q, "string" != typeof e) return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : C.isFunction(e) ? "undefined" != typeof n.ready ? n.ready(e) : e(C) : (e.selector !== undefined && (this.selector = e.selector, this.context = e.context), C.makeArray(e, this)); + if (!(r = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : Z.exec(e)) || !r[1] && t) return (!t || t.jquery ? t || n : this.constructor(t)).find(e); + if (r[1]) { + if (t = t instanceof C ? t[0] : t, C.merge(this, C.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : g, !0)), J.test(r[1]) && C.isPlainObject(t)) for (var r in t) C.isFunction(this[r]) ? this[r](t[r]) : this.attr(r, t[r]) + } else { + if ((n = g.getElementById(r[2])) && n.parentNode) { + if (n.id !== r[2]) return Q.find(e); + this.length = 1, this[0] = n + } + this.context = g, this.selector = e + } + } + return this + }).prototype = C.fn, Q = C(g), /^(?:parents|prev(?:Until|All))/), + te = {children: !0, contents: !0, next: !0, prev: !0}; + + function ne(e, t) { + for (; (e = e[t]) && 1 !== e.nodeType;) ; + return e + } + + C.fn.extend({ + has: function (e) { + var t, n = C(e, this), r = n.length; + return this.filter(function () { + for (t = 0; t < r; t++) if (C.contains(this, n[t])) return !0 + }) + }, closest: function (e, t) { + for (var n, r = 0, i = this.length, o = [], a = Y.test(e) || "string" != typeof e ? C(e, t || this.context) : 0; r < i; r++) for (n = this[r]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && C.find.matchesSelector(n, e))) { + o.push(n); + break + } + return this.pushStack(1 < o.length ? C.uniqueSort(o) : o) + }, index: function (e) { + return e ? "string" == typeof e ? C.inArray(this[0], C(e)) : C.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 + }, add: function (e, t) { + return this.pushStack(C.uniqueSort(C.merge(this.get(), C(e, t)))) + }, addBack: function (e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) + } + }), C.each({ + parent: function (e) { + e = e.parentNode; + return e && 11 !== e.nodeType ? e : null + }, parents: function (e) { + return r(e, "parentNode") + }, parentsUntil: function (e, t, n) { + return r(e, "parentNode", n) + }, next: function (e) { + return ne(e, "nextSibling") + }, prev: function (e) { + return ne(e, "previousSibling") + }, nextAll: function (e) { + return r(e, "nextSibling") + }, prevAll: function (e) { + return r(e, "previousSibling") + }, nextUntil: function (e, t, n) { + return r(e, "nextSibling", n) + }, prevUntil: function (e, t, n) { + return r(e, "previousSibling", n) + }, siblings: function (e) { + return V((e.parentNode || {}).firstChild, e) + }, children: function (e) { + return V(e.firstChild) + }, contents: function (e) { + return C.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : C.merge([], e.childNodes) + } + }, function (r, i) { + C.fn[r] = function (e, t) { + var n = C.map(this, i, e); + return (t = "Until" !== r.slice(-5) ? e : t) && "string" == typeof t && (n = C.filter(t, n)), 1 < this.length && (te[r] || (n = C.uniqueSort(n)), ee.test(r)) && (n = n.reverse()), this.pushStack(n) + } + }); + var re, ie, E = /\S+/g; + + function oe() { + g.addEventListener ? (g.removeEventListener("DOMContentLoaded", i), T.removeEventListener("load", i)) : (g.detachEvent("onreadystatechange", i), T.detachEvent("onload", i)) + } + + function i() { + !g.addEventListener && "load" !== T.event.type && "complete" !== g.readyState || (oe(), C.ready()) + } + + for (ie in C.Callbacks = function (r) { + var e, n; + r = "string" == typeof r ? (e = r, n = {}, C.each(e.match(E) || [], function (e, t) { + n[t] = !0 + }), n) : C.extend({}, r); + var i, t, o, a, s = [], u = [], l = -1, c = function () { + for (a = r.once, o = i = !0; u.length; l = -1) for (t = u.shift(); ++l < s.length;) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1); + r.memory || (t = !1), i = !1, a && (s = t ? [] : "") + }, f = { + add: function () { + return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) { + C.each(e, function (e, t) { + C.isFunction(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== C.type(t) && n(t) + }) + }(arguments), t) && !i && c(), this + }, remove: function () { + return C.each(arguments, function (e, t) { + for (var n; -1 < (n = C.inArray(t, s, n));) s.splice(n, 1), n <= l && l-- + }), this + }, has: function (e) { + return e ? -1 < C.inArray(e, s) : 0 < s.length + }, empty: function () { + return s = s && [], this + }, disable: function () { + return a = u = [], s = t = "", this + }, disabled: function () { + return !s + }, lock: function () { + return a = !0, t || f.disable(), this + }, locked: function () { + return !!a + }, fireWith: function (e, t) { + return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i) || c(), this + }, fire: function () { + return f.fireWith(this, arguments), this + }, fired: function () { + return !!o + } + }; + return f + }, C.extend({ + Deferred: function (e) { + var o = [["resolve", "done", C.Callbacks("once memory"), "resolved"], ["reject", "fail", C.Callbacks("once memory"), "rejected"], ["notify", "progress", C.Callbacks("memory")]], + i = "pending", a = { + state: function () { + return i + }, always: function () { + return s.done(arguments).fail(arguments), this + }, then: function () { + var i = arguments; + return C.Deferred(function (r) { + C.each(o, function (e, t) { + var n = C.isFunction(i[e]) && i[e]; + s[t[1]](function () { + var e = n && n.apply(this, arguments); + e && C.isFunction(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this === a ? r.promise() : this, n ? [e] : arguments) + }) + }), i = null + }).promise() + }, promise: function (e) { + return null != e ? C.extend(e, a) : a + } + }, s = {}; + return a.pipe = a.then, C.each(o, function (e, t) { + var n = t[2], r = t[3]; + a[t[1]] = n.add, r && n.add(function () { + i = r + }, o[1 ^ e][2].disable, o[2][2].lock), s[t[0]] = function () { + return s[t[0] + "With"](this === s ? a : this, arguments), this + }, s[t[0] + "With"] = n.fireWith + }), a.promise(s), e && e.call(s, s), s + }, when: function (e) { + var i, t, n, r = 0, o = c.call(arguments), a = o.length, + s = 1 !== a || e && C.isFunction(e.promise) ? a : 0, u = 1 === s ? e : C.Deferred(), + l = function (t, n, r) { + return function (e) { + n[t] = this, r[t] = 1 < arguments.length ? c.call(arguments) : e, r === i ? u.notifyWith(n, r) : --s || u.resolveWith(n, r) + } + }; + if (1 < a) for (i = new Array(a), t = new Array(a), n = new Array(a); r < a; r++) o[r] && C.isFunction(o[r].promise) ? o[r].promise().progress(l(r, t, i)).done(l(r, n, o)).fail(u.reject) : --s; + return s || u.resolveWith(n, o), u.promise() + } + }), C.fn.ready = function (e) { + return C.ready.promise().done(e), this + }, C.extend({ + isReady: !1, readyWait: 1, holdReady: function (e) { + e ? C.readyWait++ : C.ready(!0) + }, ready: function (e) { + (!0 === e ? --C.readyWait : C.isReady) || (C.isReady = !0) !== e && 0 < --C.readyWait || (re.resolveWith(g, [C]), C.fn.triggerHandler && (C(g).triggerHandler("ready"), C(g).off("ready"))) + } + }), C.ready.promise = function (e) { + if (!re) if (re = C.Deferred(), "complete" === g.readyState || "loading" !== g.readyState && !g.documentElement.doScroll) T.setTimeout(C.ready); else if (g.addEventListener) g.addEventListener("DOMContentLoaded", i), T.addEventListener("load", i); else { + g.attachEvent("onreadystatechange", i), T.attachEvent("onload", i); + var t = !1; + try { + t = null == T.frameElement && g.documentElement + } catch (n) { + } + t && t.doScroll && !function r() { + if (!C.isReady) { + try { + t.doScroll("left") + } catch (n) { + return T.setTimeout(r, 50) + } + oe(), C.ready() + } + }() + } + return re.promise(e) + }, C.ready.promise(), C(y)) break; + y.ownFirst = "0" === ie, y.inlineBlockNeedsLayout = !1, C(function () { + var e, t, n = g.getElementsByTagName("body")[0]; + n && n.style && (e = g.createElement("div"), (t = g.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(t).appendChild(e), "undefined" != typeof e.style.zoom && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", y.inlineBlockNeedsLayout = e = 3 === e.offsetWidth, e) && (n.style.zoom = 1), n.removeChild(t)) + }); + e = g.createElement("div"); + y.deleteExpando = !0; + try { + delete e.test + } catch (yn) { + y.deleteExpando = !1 + } + var o, v = function (e) { + var t = C.noData[(e.nodeName + " ").toLowerCase()], n = +e.nodeType || 1; + return (1 === n || 9 === n) && (!t || !0 !== t && e.getAttribute("classid") === t) + }, ae = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, se = /([A-Z])/g; + + function ue(e, t, n) { + if (n === undefined && 1 === e.nodeType) { + var r = "data-" + t.replace(se, "-$1").toLowerCase(); + if ("string" == typeof (n = e.getAttribute(r))) { + try { + n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : ae.test(n) ? C.parseJSON(n) : n) + } catch (i) { + } + C.data(e, t, n) + } else n = undefined + } + return n + } + + function le(e) { + for (var t in e) if (("data" !== t || !C.isEmptyObject(e[t])) && "toJSON" !== t) return; + return 1 + } + + function ce(e, t, n, r) { + if (v(e)) { + var i, o = C.expando, a = e.nodeType, s = a ? C.cache : e, u = a ? e[o] : e[o] && o; + if (u && s[u] && (r || s[u].data) || n !== undefined || "string" != typeof t) return s[u = u || (a ? e[o] = f.pop() || C.guid++ : o)] || (s[u] = a ? {} : {toJSON: C.noop}), "object" != typeof t && "function" != typeof t || (r ? s[u] = C.extend(s[u], t) : s[u].data = C.extend(s[u].data, t)), e = s[u], r || (e.data || (e.data = {}), e = e.data), n !== undefined && (e[C.camelCase(t)] = n), "string" == typeof t ? null == (i = e[t]) && (i = e[C.camelCase(t)]) : i = e, i + } + } + + function fe(e, t, n) { + if (v(e)) { + var r, i, o = e.nodeType, a = o ? C.cache : e, s = o ? e[C.expando] : C.expando; + if (a[s]) { + if (t && (r = n ? a[s] : a[s].data)) { + i = (t = C.isArray(t) ? t.concat(C.map(t, C.camelCase)) : t in r || (t = C.camelCase(t)) in r ? [t] : t.split(" ")).length; + for (; i--;) delete r[t[i]]; + if (n ? !le(r) : !C.isEmptyObject(r)) return + } + (n || (delete a[s].data, le(a[s]))) && (o ? C.cleanData([e], !0) : y.deleteExpando || a != a.window ? delete a[s] : a[s] = undefined) + } + } + } + + C.extend({ + cache: {}, + noData: {"applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"}, + hasData: function (e) { + return !!(e = e.nodeType ? C.cache[e[C.expando]] : e[C.expando]) && !le(e) + }, + data: function (e, t, n) { + return ce(e, t, n) + }, + removeData: function (e, t) { + return fe(e, t) + }, + _data: function (e, t, n) { + return ce(e, t, n, !0) + }, + _removeData: function (e, t) { + return fe(e, t, !0) + } + }), C.fn.extend({ + data: function (e, t) { + var n, r, i, o = this[0], a = o && o.attributes; + if (e !== undefined) return "object" == typeof e ? this.each(function () { + C.data(this, e) + }) : 1 < arguments.length ? this.each(function () { + C.data(this, e, t) + }) : o ? ue(o, e, C.data(o, e)) : undefined; + if (this.length && (i = C.data(o), 1 === o.nodeType) && !C._data(o, "parsedAttrs")) { + for (n = a.length; n--;) a[n] && 0 === (r = a[n].name).indexOf("data-") && ue(o, r = C.camelCase(r.slice(5)), i[r]); + C._data(o, "parsedAttrs", !0) + } + return i + }, removeData: function (e) { + return this.each(function () { + C.removeData(this, e) + }) + } + }), C.extend({ + queue: function (e, t, n) { + var r; + if (e) return r = C._data(e, t = (t || "fx") + "queue"), n && (!r || C.isArray(n) ? r = C._data(e, t, C.makeArray(n)) : r.push(n)), r || [] + }, dequeue: function (e, t) { + t = t || "fx"; + var n = C.queue(e, t), r = n.length, i = n.shift(), o = C._queueHooks(e, t); + "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () { + C.dequeue(e, t) + }, o)), !r && o && o.empty.fire() + }, _queueHooks: function (e, t) { + var n = t + "queueHooks"; + return C._data(e, n) || C._data(e, n, { + empty: C.Callbacks("once memory").add(function () { + C._removeData(e, t + "queue"), C._removeData(e, n) + }) + }) + } + }), C.fn.extend({ + queue: function (t, n) { + var e = 2; + return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? C.queue(this[0], t) : n === undefined ? this : this.each(function () { + var e = C.queue(this, t, n); + C._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && C.dequeue(this, t) + }) + }, dequeue: function (e) { + return this.each(function () { + C.dequeue(this, e) + }) + }, clearQueue: function (e) { + return this.queue(e || "fx", []) + }, promise: function (e, t) { + var n, r = 1, i = C.Deferred(), o = this, a = this.length, s = function () { + --r || i.resolveWith(o, [o]) + }; + for ("string" != typeof e && (t = e, e = undefined), e = e || "fx"; a--;) (n = C._data(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); + return s(), i.promise(t) + } + }), y.shrinkWrapBlocks = function () { + var e, t, n; + return null != o ? o : (o = !1, (t = g.getElementsByTagName("body")[0]) && t.style ? (e = g.createElement("div"), (n = g.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", t.appendChild(n).appendChild(e), "undefined" != typeof e.style.zoom && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", e.appendChild(g.createElement("div")).style.width = "5px", o = 3 !== e.offsetWidth), t.removeChild(n), o) : void 0) + }; + var e = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, de = new RegExp("^(?:([+-])=|)(" + e + ")([a-z%]*)$", "i"), + s = ["Top", "Right", "Bottom", "Left"], pe = function (e, t) { + return "none" === C.css(e = t || e, "display") || !C.contains(e.ownerDocument, e) + }; + + function he(e, t, n, r) { + var i, o = 1, a = 20, s = r ? function () { + return r.cur() + } : function () { + return C.css(e, t, "") + }, u = s(), l = n && n[3] || (C.cssNumber[t] ? "" : "px"), + c = (C.cssNumber[t] || "px" !== l && +u) && de.exec(C.css(e, t)); + if (c && c[3] !== l) for (l = l || c[3], n = n || [], c = +u || 1; c /= o = o || ".5", C.style(e, t, c + l), o !== (o = s() / u) && 1 !== o && --a;) ; + return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r) && (r.unit = l, r.start = c, r.end = i), i + } + + var d = function (e, t, n, r, i, o, a) { + var s = 0, u = e.length, l = null == n; + if ("object" === C.type(n)) for (s in i = !0, n) d(e, t, s, n[s], !0, o, a); else if (r !== undefined && (i = !0, C.isFunction(r) || (a = !0), t = l ? a ? (t.call(e, r), null) : (l = t, function (e, t, n) { + return l.call(C(e), n) + }) : t)) for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o + }, ge = /^(?:checkbox|radio)$/i, me = /<([\w:-]+)/, ye = /^$|\/(?:java|ecma)script/i, ve = /^\s+/, + xe = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video"; + + function be(e) { + var t = xe.split("|"), n = e.createDocumentFragment(); + if (n.createElement) for (; t.length;) n.createElement(t.pop()); + return n + } + + S = g.createElement("div"), k = g.createDocumentFragment(), q = g.createElement("input"), S.innerHTML = "
        a", y.leadingWhitespace = 3 === S.firstChild.nodeType, y.tbody = !S.getElementsByTagName("tbody").length, y.htmlSerialize = !!S.getElementsByTagName("link").length, y.html5Clone = "<:nav>" !== g.createElement("nav").cloneNode(!0).outerHTML, q.type = "checkbox", q.checked = !0, k.appendChild(q), y.appendChecked = q.checked, S.innerHTML = "", y.noCloneChecked = !!S.cloneNode(!0).lastChild.defaultValue, k.appendChild(S), (q = g.createElement("input")).setAttribute("type", "radio"), q.setAttribute("checked", "checked"), q.setAttribute("name", "t"), S.appendChild(q), y.checkClone = S.cloneNode(!0).cloneNode(!0).lastChild.checked, y.noCloneEvent = !!S.addEventListener, S[C.expando] = 1, y.attributes = !S.getAttribute(C.expando); + var x = { + option: [1, ""], + legend: [1, "
        ", "
        "], + area: [1, "", ""], + param: [1, "", ""], + thead: [1, "", "
        "], + tr: [2, "", "
        "], + col: [2, "", "
        "], + td: [3, "", "
        "], + _default: y.htmlSerialize ? [0, "", ""] : [1, "X
        ", "
        "] + }; + + function b(e, t) { + var n, r, i = 0, + o = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : undefined; + if (!o) for (o = [], n = e.childNodes || e; null != (r = n[i]); i++) !t || C.nodeName(r, t) ? o.push(r) : C.merge(o, b(r, t)); + return t === undefined || t && C.nodeName(e, t) ? C.merge([e], o) : o + } + + function we(e, t) { + for (var n, r = 0; null != (n = e[r]); r++) C._data(n, "globalEval", !t || C._data(t[r], "globalEval")) + } + + x.optgroup = x.option, x.tbody = x.tfoot = x.colgroup = x.caption = x.thead, x.th = x.td; + var Te = /<|&#?\w+;/, Ce = /" !== f[1] || Ce.test(a) ? 0 : u : u.firstChild) && a.childNodes.length; o--;) C.nodeName(c = a.childNodes[o], "tbody") && !c.childNodes.length && a.removeChild(c); + for (C.merge(h, u.childNodes), u.textContent = ""; u.firstChild;) u.removeChild(u.firstChild); + u = p.lastChild + } else h.push(t.createTextNode(a)); + for (u && p.removeChild(u), y.appendChecked || C.grep(b(h, "input"), Ee), g = 0; a = h[g++];) if (r && -1 < C.inArray(a, r)) i && i.push(a); else if (s = C.contains(a.ownerDocument, a), u = b(p.appendChild(a), "script"), s && we(u), n) for (o = 0; a = u[o++];) ye.test(a.type || "") && n.push(a); + return u = null, p + } + + var ke, Se, Ae = g.createElement("div"); + for (ke in { + submit: !0, + change: !0, + focusin: !0 + }) (y[ke] = (Se = "on" + ke) in T) || (Ae.setAttribute(Se, "t"), y[ke] = !1 === Ae.attributes[Se].expando); + var De = /^(?:input|select|textarea)$/i, je = /^key/, Le = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + He = /^(?:focusinfocus|focusoutblur)$/, qe = /^([^.]*)(?:\.(.+)|)/; + + function _e() { + return !0 + } + + function u() { + return !1 + } + + function Fe() { + try { + return g.activeElement + } catch (e) { + } + } + + function Me(e, t, n, r, i, o) { + var a, s; + if ("object" == typeof t) { + for (s in "string" != typeof n && (r = r || n, n = undefined), t) Me(e, s, n, r, t[s], o); + return e + } + if (null == r && null == i ? (i = n, r = n = undefined) : null == i && ("string" == typeof n ? (i = r, r = undefined) : (i = r, r = n, n = undefined)), !1 === i) i = u; else if (!i) return e; + return 1 === o && (a = i, (i = function (e) { + return C().off(e), a.apply(this, arguments) + }).guid = a.guid || (a.guid = C.guid++)), e.each(function () { + C.event.add(this, t, i, r, n) + }) + } + + C.event = { + global: {}, + add: function (e, t, n, r, i) { + var o, a, s, u, l, c, f, d, p, h = C._data(e); + if (h) for (n.handler && (n = (s = n).handler, i = s.selector), n.guid || (n.guid = C.guid++), o = (o = h.events) || (h.events = {}), (l = h.handle) || ((l = h.handle = function (e) { + return void 0 === C || e && C.event.triggered === e.type ? undefined : C.event.dispatch.apply(l.elem, arguments) + }).elem = e), a = (t = (t || "").match(E) || [""]).length; a--;) f = p = (d = qe.exec(t[a]) || [])[1], d = (d[2] || "").split(".").sort(), f && (u = C.event.special[f] || {}, f = (i ? u.delegateType : u.bindType) || f, u = C.event.special[f] || {}, p = C.extend({ + type: f, + origType: p, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && C.expr.match.needsContext.test(i), + namespace: d.join(".") + }, s), (c = o[f]) || ((c = o[f] = []).delegateCount = 0, u.setup && !1 !== u.setup.call(e, r, d, l)) || (e.addEventListener ? e.addEventListener(f, l, !1) : e.attachEvent && e.attachEvent("on" + f, l)), u.add && (u.add.call(e, p), p.handler.guid || (p.handler.guid = n.guid)), i ? c.splice(c.delegateCount++, 0, p) : c.push(p), C.event.global[f] = !0) + }, + remove: function (e, t, n, r, i) { + var o, a, s, u, l, c, f, d, p, h, g, m = C.hasData(e) && C._data(e); + if (m && (c = m.events)) { + for (l = (t = (t || "").match(E) || [""]).length; l--;) if (p = g = (s = qe.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), p) { + for (f = C.event.special[p] || {}, d = c[p = (r ? f.delegateType : f.bindType) || p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), u = o = d.length; o--;) a = d[o], !i && g !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || r && r !== a.selector && ("**" !== r || !a.selector) || (d.splice(o, 1), a.selector && d.delegateCount--, f.remove && f.remove.call(e, a)); + u && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, m.handle) || C.removeEvent(e, p, m.handle), delete c[p]) + } else for (p in c) C.event.remove(e, p + t[l], n, r, !0); + C.isEmptyObject(c) && (delete m.handle, C._removeData(e, "events")) + } + }, + trigger: function (e, t, n, r) { + var i, o, a, s, u, l, c = [n || g], f = m.call(e, "type") ? e.type : e, + d = m.call(e, "namespace") ? e.namespace.split(".") : [], p = u = n = n || g; + if (3 !== n.nodeType && 8 !== n.nodeType && !He.test(f + C.event.triggered) && (-1 < f.indexOf(".") && (f = (d = f.split(".")).shift(), d.sort()), o = f.indexOf(":") < 0 && "on" + f, (e = e[C.expando] ? e : new C.Event(f, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = d.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = undefined, e.target || (e.target = n), t = null == t ? [e] : C.makeArray(t, [e]), s = C.event.special[f] || {}, r || !s.trigger || !1 !== s.trigger.apply(n, t))) { + if (!r && !s.noBubble && !C.isWindow(n)) { + for (a = s.delegateType || f, He.test(a + f) || (p = p.parentNode); p; p = p.parentNode) c.push(p), u = p; + u === (n.ownerDocument || g) && c.push(u.defaultView || u.parentWindow || T) + } + for (l = 0; (p = c[l++]) && !e.isPropagationStopped();) e.type = 1 < l ? a : s.bindType || f, (i = (C._data(p, "events") || {})[e.type] && C._data(p, "handle")) && i.apply(p, t), (i = o && p[o]) && i.apply && v(p) && (e.result = i.apply(p, t), !1 === e.result) && e.preventDefault(); + if (e.type = f, !r && !e.isDefaultPrevented() && (!s._default || !1 === s._default.apply(c.pop(), t)) && v(n) && o && n[f] && !C.isWindow(n)) { + (u = n[o]) && (n[o] = null), C.event.triggered = f; + try { + n[f]() + } catch (h) { + } + C.event.triggered = undefined, u && (n[o] = u) + } + return e.result + } + }, + dispatch: function (e) { + e = C.event.fix(e); + var t, n, r, i, o, a = c.call(arguments), s = (C._data(this, "events") || {})[e.type] || [], + u = C.event.special[e.type] || {}; + if ((a[0] = e).delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, e)) { + for (o = C.event.handlers.call(this, e, s), t = 0; (r = o[t++]) && !e.isPropagationStopped();) for (e.currentTarget = r.elem, n = 0; (i = r.handlers[n++]) && !e.isImmediatePropagationStopped();) e.rnamespace && !e.rnamespace.test(i.namespace) || (e.handleObj = i, e.data = i.data, (i = ((C.event.special[i.origType] || {}).handle || i.handler).apply(r.elem, a)) !== undefined && !1 === (e.result = i) && (e.preventDefault(), e.stopPropagation())); + return u.postDispatch && u.postDispatch.call(this, e), e.result + } + }, + handlers: function (e, t) { + var n, r, i, o, a = [], s = t.delegateCount, u = e.target; + if (s && u.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1)) for (; u != this; u = u.parentNode || this) if (1 === u.nodeType && (!0 !== u.disabled || "click" !== e.type)) { + for (r = [], n = 0; n < s; n++) r[i = (o = t[n]).selector + " "] === undefined && (r[i] = o.needsContext ? -1 < C(i, this).index(u) : C.find(i, this, null, [u]).length), r[i] && r.push(o); + r.length && a.push({elem: u, handlers: r}) + } + return s < t.length && a.push({elem: this, handlers: t.slice(s)}), a + }, + fix: function (e) { + if (e[C.expando]) return e; + var t, n, r, i = e.type, o = e, a = this.fixHooks[i]; + for (a || (this.fixHooks[i] = a = Le.test(i) ? this.mouseHooks : je.test(i) ? this.keyHooks : {}), r = a.props ? this.props.concat(a.props) : this.props, e = new C.Event(o), t = r.length; t--;) e[n = r[t]] = o[n]; + return e.target || (e.target = o.srcElement || g), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, a.filter ? a.filter(e, o) : e + }, + props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), filter: function (e, t) { + return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e + } + }, + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function (e, t) { + var n, r, i = t.button, o = t.fromElement; + return null == e.pageX && null != t.clientX && (r = (n = e.target.ownerDocument || g).documentElement, n = n.body, e.pageX = t.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o), e.which || i === undefined || (e.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0), e + } + }, + special: { + load: {noBubble: !0}, focus: { + trigger: function () { + if (this !== Fe() && this.focus) try { + return this.focus(), !1 + } catch (e) { + } + }, delegateType: "focusin" + }, blur: { + trigger: function () { + if (this === Fe() && this.blur) return this.blur(), !1 + }, delegateType: "focusout" + }, click: { + trigger: function () { + if (C.nodeName(this, "input") && "checkbox" === this.type && this.click) return this.click(), !1 + }, _default: function (e) { + return C.nodeName(e.target, "a") + } + }, beforeunload: { + postDispatch: function (e) { + e.result !== undefined && e.originalEvent && (e.originalEvent.returnValue = e.result) + } + } + }, + simulate: function (e, t, n) { + e = C.extend(new C.Event, n, {type: e, isSimulated: !0}); + C.event.trigger(e, null, t), e.isDefaultPrevented() && n.preventDefault() + } + }, C.removeEvent = g.removeEventListener ? function (e, t, n) { + e.removeEventListener && e.removeEventListener(t, n) + } : function (e, t, n) { + t = "on" + t; + e.detachEvent && ("undefined" == typeof e[t] && (e[t] = null), e.detachEvent(t, n)) + }, C.Event = function (e, t) { + if (!(this instanceof C.Event)) return new C.Event(e, t); + e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.defaultPrevented === undefined && !1 === e.returnValue ? _e : u) : this.type = e, t && C.extend(this, t), this.timeStamp = e && e.timeStamp || C.now(), this[C.expando] = !0 + }, C.Event.prototype = { + constructor: C.Event, + isDefaultPrevented: u, + isPropagationStopped: u, + isImmediatePropagationStopped: u, + preventDefault: function () { + var e = this.originalEvent; + this.isDefaultPrevented = _e, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) + }, + stopPropagation: function () { + var e = this.originalEvent; + this.isPropagationStopped = _e, e && !this.isSimulated && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0) + }, + stopImmediatePropagation: function () { + var e = this.originalEvent; + this.isImmediatePropagationStopped = _e, e && e.stopImmediatePropagation && e.stopImmediatePropagation(), this.stopPropagation() + } + }, C.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function (e, i) { + C.event.special[e] = { + delegateType: i, bindType: i, handle: function (e) { + var t, n = e.relatedTarget, r = e.handleObj; + return n && (n === this || C.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t + } + } + }), y.submit || (C.event.special.submit = { + setup: function () { + if (C.nodeName(this, "form")) return !1; + C.event.add(this, "click._submit keypress._submit", function (e) { + e = e.target, e = C.nodeName(e, "input") || C.nodeName(e, "button") ? C.prop(e, "form") : undefined; + e && !C._data(e, "submit") && (C.event.add(e, "submit._submit", function (e) { + e._submitBubble = !0 + }), C._data(e, "submit", !0)) + }) + }, postDispatch: function (e) { + e._submitBubble && (delete e._submitBubble, this.parentNode) && !e.isTrigger && C.event.simulate("submit", this.parentNode, e) + }, teardown: function () { + if (C.nodeName(this, "form")) return !1; + C.event.remove(this, "._submit") + } + }), y.change || (C.event.special.change = { + setup: function () { + if (De.test(this.nodeName)) return "checkbox" !== this.type && "radio" !== this.type || (C.event.add(this, "propertychange._change", function (e) { + "checked" === e.originalEvent.propertyName && (this._justChanged = !0) + }), C.event.add(this, "click._change", function (e) { + this._justChanged && !e.isTrigger && (this._justChanged = !1), C.event.simulate("change", this, e) + })), !1; + C.event.add(this, "beforeactivate._change", function (e) { + e = e.target; + De.test(e.nodeName) && !C._data(e, "change") && (C.event.add(e, "change._change", function (e) { + !this.parentNode || e.isSimulated || e.isTrigger || C.event.simulate("change", this.parentNode, e) + }), C._data(e, "change", !0)) + }) + }, handle: function (e) { + var t = e.target; + if (this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type) return e.handleObj.handler.apply(this, arguments) + }, teardown: function () { + return C.event.remove(this, "._change"), !De.test(this.nodeName) + } + }), y.focusin || C.each({focus: "focusin", blur: "focusout"}, function (n, r) { + var i = function (e) { + C.event.simulate(r, e.target, C.event.fix(e)) + }; + C.event.special[r] = { + setup: function () { + var e = this.ownerDocument || this, t = C._data(e, r); + t || e.addEventListener(n, i, !0), C._data(e, r, (t || 0) + 1) + }, teardown: function () { + var e = this.ownerDocument || this, t = C._data(e, r) - 1; + t ? C._data(e, r, t) : (e.removeEventListener(n, i, !0), C._removeData(e, r)) + } + } + }), C.fn.extend({ + on: function (e, t, n, r) { + return Me(this, e, t, n, r) + }, one: function (e, t, n, r) { + return Me(this, e, t, n, r, 1) + }, off: function (e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) r = e.handleObj, C(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler); else { + if ("object" != typeof e) return !1 !== t && "function" != typeof t || (n = t, t = undefined), !1 === n && (n = u), this.each(function () { + C.event.remove(this, e, n, t) + }); + for (i in e) this.off(i, t, e[i]) + } + return this + }, trigger: function (e, t) { + return this.each(function () { + C.event.trigger(e, t, this) + }) + }, triggerHandler: function (e, t) { + var n = this[0]; + if (n) return C.event.trigger(e, t, n, !0) + } + }); + var Oe = / jQuery\d+="(?:null|\d+)"/g, Re = new RegExp("<(?:" + xe + ")[\\s/>]", "i"), + Pe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, Be = /\s*$/g, + ze = be(g).appendChild(g.createElement("div")); + + function Xe(e, t) { + return C.nodeName(e, "table") && C.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e + } + + function Ue(e) { + return e.type = (null !== C.find.attr(e, "type")) + "/" + e.type, e + } + + function Ve(e) { + var t = Ie.exec(e.type); + return t ? e.type = t[1] : e.removeAttribute("type"), e + } + + function Ye(e, t) { + if (1 === t.nodeType && C.hasData(e)) { + var n, r, i, e = C._data(e), o = C._data(t, e), a = e.events; + if (a) for (n in delete o.handle, o.events = {}, a) for (r = 0, i = a[n].length; r < i; r++) C.event.add(t, n, a[n][r]); + o.data && (o.data = C.extend({}, o.data)) + } + } + + function w(n, r, i, o) { + r = O.apply([], r); + var e, t, a, s, u, l, c = 0, f = n.length, d = f - 1, p = r[0], h = C.isFunction(p); + if (h || 1 < f && "string" == typeof p && !y.checkClone && We.test(p)) return n.each(function (e) { + var t = n.eq(e); + h && (r[0] = p.call(this, e, t.html())), w(t, r, i, o) + }); + if (f && (e = (l = Ne(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === l.childNodes.length && (l = e), e || o)) { + for (a = (s = C.map(b(l, "script"), Ue)).length; c < f; c++) t = l, c !== d && (t = C.clone(t, !0, !0), a) && C.merge(s, b(t, "script")), i.call(n[c], t, c); + if (a) for (u = s[s.length - 1].ownerDocument, C.map(s, Ve), c = 0; c < a; c++) t = s[c], ye.test(t.type || "") && !C._data(t, "globalEval") && C.contains(u, t) && (t.src ? C._evalUrl && C._evalUrl(t.src) : C.globalEval((t.text || t.textContent || t.innerHTML || "").replace($e, ""))); + l = null + } + return n + } + + function Je(e, t, n) { + for (var r, i = t ? C.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || C.cleanData(b(r)), r.parentNode && (n && C.contains(r.ownerDocument, r) && we(b(r, "script")), r.parentNode.removeChild(r)); + return e + } + + C.extend({ + htmlPrefilter: function (e) { + return e.replace(Pe, "<$1>") + }, clone: function (e, t, n) { + var r, i, o, a, s, u = C.contains(e.ownerDocument, e); + if (y.html5Clone || C.isXMLDoc(e) || !Re.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (ze.innerHTML = e.outerHTML, ze.removeChild(o = ze.firstChild)), !(y.noCloneEvent && y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || C.isXMLDoc(e))) for (r = b(o), s = b(e), a = 0; null != (i = s[a]); ++a) if (r[a]) { + f = c = l = p = d = void 0; + var l, c, f, d = i, p = r[a]; + if (1 === p.nodeType) { + if (l = p.nodeName.toLowerCase(), !y.noCloneEvent && p[C.expando]) { + for (c in (f = C._data(p)).events) C.removeEvent(p, c, f.handle); + p.removeAttribute(C.expando) + } + "script" === l && p.text !== d.text ? (Ue(p).text = d.text, Ve(p)) : "object" === l ? (p.parentNode && (p.outerHTML = d.outerHTML), y.html5Clone && d.innerHTML && !C.trim(p.innerHTML) && (p.innerHTML = d.innerHTML)) : "input" === l && ge.test(d.type) ? (p.defaultChecked = p.checked = d.checked, p.value !== d.value && (p.value = d.value)) : "option" === l ? p.defaultSelected = p.selected = d.defaultSelected : "input" !== l && "textarea" !== l || (p.defaultValue = d.defaultValue) + } + } + if (t) if (n) for (s = s || b(e), r = r || b(o), a = 0; null != (i = s[a]); a++) Ye(i, r[a]); else Ye(e, o); + return 0 < (r = b(o, "script")).length && we(r, !u && b(e, "script")), r = s = i = null, o + }, cleanData: function (e, t) { + for (var n, r, i, o, a = 0, s = C.expando, u = C.cache, l = y.attributes, c = C.event.special; null != (n = e[a]); a++) if ((t || v(n)) && (o = (i = n[s]) && u[i])) { + if (o.events) for (r in o.events) c[r] ? C.event.remove(n, r) : C.removeEvent(n, r, o.handle); + u[i] && (delete u[i], l || "undefined" == typeof n.removeAttribute ? n[s] = undefined : n.removeAttribute(s), f.push(i)) + } + } + }), C.fn.extend({ + domManip: w, detach: function (e) { + return Je(this, e, !0) + }, remove: function (e) { + return Je(this, e) + }, text: function (e) { + return d(this, function (e) { + return e === undefined ? C.text(this) : this.empty().append((this[0] && this[0].ownerDocument || g).createTextNode(e)) + }, null, e, arguments.length) + }, append: function () { + return w(this, arguments, function (e) { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Xe(this, e).appendChild(e) + }) + }, prepend: function () { + return w(this, arguments, function (e) { + var t; + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = Xe(this, e)).insertBefore(e, t.firstChild) + }) + }, before: function () { + return w(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this) + }) + }, after: function () { + return w(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) + }) + }, empty: function () { + for (var e, t = 0; null != (e = this[t]); t++) { + for (1 === e.nodeType && C.cleanData(b(e, !1)); e.firstChild;) e.removeChild(e.firstChild); + e.options && C.nodeName(e, "select") && (e.options.length = 0) + } + return this + }, clone: function (e, t) { + return e = null != e && e, t = null == t ? e : t, this.map(function () { + return C.clone(this, e, t) + }) + }, html: function (e) { + return d(this, function (e) { + var t = this[0] || {}, n = 0, r = this.length; + if (e === undefined) return 1 === t.nodeType ? t.innerHTML.replace(Oe, "") : undefined; + if ("string" == typeof e && !Be.test(e) && (y.htmlSerialize || !Re.test(e)) && (y.leadingWhitespace || !ve.test(e)) && !x[(me.exec(e) || ["", ""])[1].toLowerCase()]) { + e = C.htmlPrefilter(e); + try { + for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (C.cleanData(b(t, !1)), t.innerHTML = e); + t = 0 + } catch (i) { + } + } + t && this.empty().append(e) + }, null, e, arguments.length) + }, replaceWith: function () { + var n = []; + return w(this, arguments, function (e) { + var t = this.parentNode; + C.inArray(this, n) < 0 && (C.cleanData(b(this)), t) && t.replaceChild(e, this) + }, n) + } + }), C.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (e, a) { + C.fn[e] = function (e) { + for (var t, n = 0, r = [], i = C(e), o = i.length - 1; n <= o; n++) t = n === o ? this : this.clone(!0), C(i[n])[a](t), R.apply(r, t.get()); + return this.pushStack(r) + } + }); + var Ge, Ke = {HTML: "block", BODY: "block"}; + + function Qe(e, t) { + e = C(t.createElement(e)).appendTo(t.body), t = C.css(e[0], "display"); + return e.detach(), t + } + + function Ze(e) { + var t = g, n = Ke[e]; + return n || ("none" !== (n = Qe(e, t)) && n || ((t = ((Ge = (Ge || C("'; + break; + case 3: + delete s.title, delete s.closeBtn, -1 === s.icon && s.icon, g.closeAll("loading"); + break; + case 4: + r || (s.content = [s.content, "body"]), s.follow = s.content[1], s.content = s.content[0] + '', delete s.title, s.tips = "object" == typeof s.tips ? s.tips : [s.tips, !0], s.tipsMore || g.closeAll("tips") + } + o.vessel(r, function (e, t, i) { + c.append(e[0]), r ? 2 == s.type || 4 == s.type ? m("body").append(e[1]) : f.parents("." + u[0])[0] || (f.data("display", f.css("display")).show().addClass("layui-layer-wrap").wrap(e[1]), m("#" + u[0] + l).find("." + u[5]).before(t)) : c.append(e[1]), m("#" + u.MOVE)[0] || c.append(d.moveElem = i), o.layero = m("#" + u[0] + l), o.shadeo = m("#" + u.SHADE + l), s.scrollbar || d.setScrollbar(l) + }).auto(l), o.shadeo.css({ + "background-color": s.shade[1] || "#000", + opacity: s.shade[0] || s.shade + }), 2 == s.type && 6 == g.ie && o.layero.find("iframe").attr("src", f[0]), 4 == s.type ? o.tips() : (o.offset(), parseInt(d.getStyle(document.getElementById(u.MOVE), "z-index")) || (o.layero.css("visibility", "hidden"), g.ready(function () { + o.offset(), o.layero.css("visibility", "visible") + }))), !s.fixed || d.events.resize[o.index] || (d.events.resize[o.index] = function () { + o.resize() + }, h.on("resize", d.events.resize[o.index])), s.time <= 0 || setTimeout(function () { + g.close(o.index) + }, s.time), o.move().callback(), u.anim[s.anim] && (a = "layer-anim " + u.anim[s.anim], o.layero.addClass(a).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () { + m(this).removeClass(a) + })), o.layero.data("config", s) + } + }, t.pt.resize = function () { + var e = this, t = e.config; + e.offset(), (/^\d+%$/.test(t.area[0]) || /^\d+%$/.test(t.area[1])) && e.auto(e.index), 4 == t.type && e.tips() + }, t.pt.auto = function (e) { + var t = this.config, i = m("#" + u[0] + e), + n = ("" === t.area[0] && 0 < t.maxWidth && (g.ie && g.ie < 8 && t.btn && i.width(i.innerWidth()), i.outerWidth() > t.maxWidth) && i.width(t.maxWidth), [i.innerWidth(), i.innerHeight()]), + a = i.find(u[1]).outerHeight() || 0, o = i.find("." + u[6]).outerHeight() || 0, e = function (e) { + (e = i.find(e)).height(n[1] - a - o - 2 * (0 | parseFloat(e.css("padding-top")))) + }; + return 2 === t.type ? e("iframe") : "" === t.area[1] ? 0 < t.maxHeight && i.outerHeight() > t.maxHeight ? (n[1] = t.maxHeight, e("." + u[5])) : t.fixed && n[1] >= h.height() && (n[1] = h.height(), e("." + u[5])) : e("." + u[5]), this + }, t.pt.offset = function () { + var e = this, t = e.config, i = e.layero, n = [i.outerWidth(), i.outerHeight()], + a = "object" == typeof t.offset; + e.offsetTop = (h.height() - n[1]) / 2, e.offsetLeft = (h.width() - n[0]) / 2, a ? (e.offsetTop = t.offset[0], e.offsetLeft = t.offset[1] || e.offsetLeft) : "auto" !== t.offset && ("t" === t.offset ? e.offsetTop = 0 : "r" === t.offset ? e.offsetLeft = h.width() - n[0] : "b" === t.offset ? e.offsetTop = h.height() - n[1] : "l" === t.offset ? e.offsetLeft = 0 : "lt" === t.offset ? (e.offsetTop = 0, e.offsetLeft = 0) : "lb" === t.offset ? (e.offsetTop = h.height() - n[1], e.offsetLeft = 0) : "rt" === t.offset ? (e.offsetTop = 0, e.offsetLeft = h.width() - n[0]) : "rb" === t.offset ? (e.offsetTop = h.height() - n[1], e.offsetLeft = h.width() - n[0]) : e.offsetTop = t.offset), t.fixed || (e.offsetTop = /%$/.test(e.offsetTop) ? h.height() * parseFloat(e.offsetTop) / 100 : parseFloat(e.offsetTop), e.offsetLeft = /%$/.test(e.offsetLeft) ? h.width() * parseFloat(e.offsetLeft) / 100 : parseFloat(e.offsetLeft), e.offsetTop += h.scrollTop(), e.offsetLeft += h.scrollLeft()), "min" === i.data("maxminStatus") && (e.offsetTop = h.height() - (i.find(u[1]).outerHeight() || 0), e.offsetLeft = i.css("left")), i.css({ + top: e.offsetTop, + left: e.offsetLeft + }) + }, t.pt.tips = function () { + var e = this.config, t = this.layero, i = [t.outerWidth(), t.outerHeight()], n = m(e.follow), a = { + width: (n = n[0] ? n : m("body")).outerWidth(), + height: n.outerHeight(), + top: n.offset().top, + left: n.offset().left + }, o = t.find(".layui-layer-TipsG"), n = e.tips[0]; + e.tips[1] || o.remove(), a.autoLeft = function () { + 0 < a.left + i[0] - h.width() ? (a.tipLeft = a.left + a.width - i[0], o.css({ + right: 12, + left: "auto" + })) : a.tipLeft = a.left + }, a.where = [function () { + a.autoLeft(), a.tipTop = a.top - i[1] - 10, o.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color", e.tips[1]) + }, function () { + a.tipLeft = a.left + a.width + 10, a.tipTop = a.top - (.75 * a.height < 21 ? 21 - .5 * a.height : 0), a.tipTop = Math.max(a.tipTop, 0), o.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color", e.tips[1]) + }, function () { + a.autoLeft(), a.tipTop = a.top + a.height + 10, o.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color", e.tips[1]) + }, function () { + a.tipLeft = a.left - i[0] - 10, a.tipTop = a.top - (.75 * a.height < 21 ? 21 - .5 * a.height : 0), a.tipTop = Math.max(a.tipTop, 0), o.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color", e.tips[1]) + }], a.where[n - 1](), 1 === n ? a.top - (h.scrollTop() + i[1] + 16) < 0 && a.where[2]() : 2 === n ? 0 < h.width() - (a.left + a.width + i[0] + 16) || a.where[3]() : 3 === n ? 0 < a.top - h.scrollTop() + a.height + i[1] + 16 - h.height() && a.where[0]() : 4 === n && 0 < i[0] + 16 - a.left && a.where[1](), t.find("." + u[5]).css({ + "background-color": e.tips[1], + "padding-right": e.closeBtn ? "30px" : "" + }), t.css({left: a.tipLeft - (e.fixed ? h.scrollLeft() : 0), top: a.tipTop - (e.fixed ? h.scrollTop() : 0)}) + }, t.pt.move = function () { + var n = this, a = n.config, e = m(document), o = n.layero, r = ["LAY_MOVE_DICT", "LAY_RESIZE_DICT"], + t = o.find(a.move), i = o.find(".layui-layer-resize"); + return a.move && t.css("cursor", "move"), t.on("mousedown", function (e) { + var t, i; + e.button || (t = m(this), i = {}, a.move && (i.layero = o, i.config = a, i.offset = [e.clientX - parseFloat(o.css("left")), e.clientY - parseFloat(o.css("top"))], t.data(r[0], i), d.eventMoveElem = t, d.moveElem.css("cursor", "move").show()), e.preventDefault()) + }), i.on("mousedown", function (e) { + var t = m(this), i = {}; + a.resize && (i.layero = o, i.config = a, i.offset = [e.clientX, e.clientY], i.index = n.index, i.area = [o.outerWidth(), o.outerHeight()], t.data(r[1], i), d.eventResizeElem = t, d.moveElem.css("cursor", "se-resize").show()), e.preventDefault() + }), d.docEvent || (e.on("mousemove", function (e) { + var t, i, n, a, o, s, l; + d.eventMoveElem && (t = (a = d.eventMoveElem.data(r[0]) || {}).layero, o = a.config, s = e.clientX - a.offset[0], l = e.clientY - a.offset[1], i = "fixed" === t.css("position"), e.preventDefault(), a.stX = i ? 0 : h.scrollLeft(), a.stY = i ? 0 : h.scrollTop(), o.moveOut || (i = h.width() - t.outerWidth() + a.stX, n = h.height() - t.outerHeight() + a.stY, i < (s = s < a.stX ? a.stX : s) && (s = i), n < (l = l < a.stY ? a.stY : l) && (l = n)), t.css({ + left: s, + top: l + })), d.eventResizeElem && (o = (a = d.eventResizeElem.data(r[1]) || {}).config, s = e.clientX - a.offset[0], l = e.clientY - a.offset[1], e.preventDefault(), g.style(a.index, { + width: a.area[0] + s, + height: a.area[1] + l + }), o.resizing) && o.resizing(a.layero) + }).on("mouseup", function (e) { + var t, i; + d.eventMoveElem && (i = (t = d.eventMoveElem.data(r[0]) || {}).config, d.eventMoveElem.removeData(r[0]), delete d.eventMoveElem, d.moveElem.hide(), i.moveEnd) && i.moveEnd(t.layero), d.eventResizeElem && (d.eventResizeElem.removeData(r[1]), delete d.eventResizeElem, d.moveElem.hide()) + }), d.docEvent = !0), n + }, t.pt.callback = function () { + var t = this, i = t.layero, n = t.config; + t.openLayer(), n.success && (2 == n.type ? i.find("iframe").on("load", function () { + n.success(i, t.index, t) + }) : n.success(i, t.index, t)), 6 == g.ie && t.IE6(i), i.find("." + u[6]).children("a").on("click", function () { + var e = m(this).index(); + 0 === e ? n.yes ? n.yes(t.index, i, t) : n.btn1 ? n.btn1(t.index, i, t) : g.close(t.index) : !1 !== (n["btn" + (e + 1)] && n["btn" + (e + 1)](t.index, i, t)) && g.close(t.index) + }), i.find("." + u[7]).on("click", function () { + !1 !== (n.cancel && n.cancel(t.index, i, t)) && g.close(t.index) + }), n.shadeClose && t.shadeo.on("click", function () { + g.close(t.index) + }), i.find(".layui-layer-min").on("click", function () { + !1 !== (n.min && n.min(i, t.index, t)) && g.min(t.index, n) + }), i.find(".layui-layer-max").on("click", function () { + m(this).hasClass("layui-layer-maxmin") ? (g.restore(t.index), n.restore && n.restore(i, t.index, t)) : (g.full(t.index, n), setTimeout(function () { + n.full && n.full(i, t.index, t) + }, 100)) + }), n.end && (d.end[t.index] = n.end) + }, d.reselect = function () { + m.each(m("select"), function (e, t) { + var i = m(this); + i.parents("." + u[0])[0] || 1 == i.attr("layer") && m("." + u[0]).length < 1 && i.removeAttr("layer").show() + }) + }, t.pt.IE6 = function (e) { + m("select").each(function (e, t) { + var i = m(this); + i.parents("." + u[0])[0] || "none" !== i.css("display") && i.attr({layer: "1"}).hide() + }) + }, t.pt.openLayer = function () { + g.zIndex = this.config.zIndex, g.setTop = function (e) { + return g.zIndex = parseInt(e[0].style.zIndex), e.on("mousedown", function () { + g.zIndex++, e.css("z-index", g.zIndex + 1) + }), g.zIndex + } + }, d.record = function (e) { + if (!e[0]) return p.console && console.error("index error"); + var t = [e[0].style.width || e.width(), e[0].style.height || e.height(), e.position().top, e.position().left + parseFloat(e.css("margin-left"))]; + e.find(".layui-layer-max").addClass("layui-layer-maxmin"), e.attr({area: t}) + }, d.setScrollbar = function (e) { + u.html.css("overflow", "hidden").attr("layer-full", e) + }, d.restScrollbar = function (e) { + u.html.attr("layer-full") == e && (u.html[0].style[u.html[0].style.removeProperty ? "removeProperty" : "removeAttribute"]("overflow"), u.html.removeAttr("layer-full")) + }, (p.layer = g).getChildFrame = function (e, t) { + return t = t || m("." + u[4]).attr("times"), m("#" + u[0] + t).find("iframe").contents().find(e) + }, g.getFrameIndex = function (e) { + return m("#" + e).parents("." + u[4]).attr("times") + }, g.iframeAuto = function (e) { + var t, i, n; + e && (t = g.getChildFrame("html", e).outerHeight(), i = (e = m("#" + u[0] + e)).find(u[1]).outerHeight() || 0, n = e.find("." + u[6]).outerHeight() || 0, e.css({height: t + i + n}), e.find("iframe").css({height: t})) + }, g.iframeSrc = function (e, t) { + m("#" + u[0] + e).find("iframe").attr("src", t) + }, g.style = function (e, t, i) { + var e = m("#" + u[0] + e), n = e.find(".layui-layer-content"), a = e.attr("type"), + o = e.find(u[1]).outerHeight() || 0, s = e.find("." + u[6]).outerHeight() || 0; + e.attr("minLeft"); + a !== d.type[3] && a !== d.type[4] && (i || (parseFloat(t.width) <= 260 && (t.width = 260), parseFloat(t.height) - o - s <= 64 && (t.height = 64 + o + s)), e.css(t), s = e.find("." + u[6]).outerHeight() || 0, a === d.type[2] ? e.find("iframe").css({height: ("number" == typeof t.height ? t.height : e.height()) - o - s}) : n.css({height: ("number" == typeof t.height ? t.height : e.height()) - o - s - parseFloat(n.css("padding-top")) - parseFloat(n.css("padding-bottom"))})) + }, g.min = function (e, t) { + var i, n, a, o, s, l, r = m("#" + u[0] + e), c = r.data("maxminStatus"); + "min" !== c && ("max" === c && g.restore(e), r.data("maxminStatus", "min"), t = t || r.data("config") || {}, c = m("#" + u.SHADE + e), i = r.find(".layui-layer-min"), n = r.find(u[1]).outerHeight() || 0, o = (a = "string" == typeof (o = r.attr("minLeft"))) ? o : 181 * d.minStackIndex + "px", s = r.css("position"), l = { + width: 180, + height: n, + position: "fixed", + overflow: "hidden" + }, d.record(r), 0 < d.minStackArr.length && (o = d.minStackArr[0], d.minStackArr.shift()), parseFloat(o) + 180 > h.width() && (o = h.width() - 180 - (d.minStackArr.edgeIndex = d.minStackArr.edgeIndex || 0, d.minStackArr.edgeIndex += 3)) < 0 && (o = 0), t.minStack && (l.left = o, l.top = h.height() - n, a || d.minStackIndex++, r.attr("minLeft", o)), r.attr("position", s), g.style(e, l, !0), i.hide(), "page" === r.attr("type") && r.find(u[4]).hide(), d.restScrollbar(e), c.hide()) + }, g.restore = function (e) { + var t = m("#" + u[0] + e), i = m("#" + u.SHADE + e), n = t.attr("area").split(","), a = t.attr("type"), + o = t.data("config") || {}; + t.removeData("maxminStatus"), g.style(e, { + width: n[0], + height: n[1], + top: parseFloat(n[2]), + left: parseFloat(n[3]), + position: t.attr("position"), + overflow: "visible" + }, !0), t.find(".layui-layer-max").removeClass("layui-layer-maxmin"), t.find(".layui-layer-min").show(), "page" === a && t.find(u[4]).show(), o.scrollbar ? d.restScrollbar(e) : d.setScrollbar(e), i.show() + }, g.full = function (t) { + var i = m("#" + u[0] + t), e = i.data("maxminStatus"); + "max" !== e && ("min" === e && g.restore(t), i.data("maxminStatus", "max"), d.record(i), u.html.attr("layer-full") || d.setScrollbar(t), setTimeout(function () { + var e = "fixed" === i.css("position"); + g.style(t, { + top: e ? 0 : h.scrollTop(), + left: e ? 0 : h.scrollLeft(), + width: "100%", + height: "100%" + }, !0), i.find(".layui-layer-min").hide() + }, 100)) + }, g.title = function (e, t) { + m("#" + u[0] + (t || g.index)).find(u[1]).html(e) + }, g.close = function (o, s) { + var l, e, + r = (t = m("." + u[0]).children("#" + o).closest("." + u[0]))[0] ? (o = t.attr("times"), t) : m("#" + u[0] + o), + c = r.attr("type"), t = r.data("config") || {}, f = t.id && t.hideOnClose; + r[0] && (l = { + slideDown: "layer-anim-slide-down-out", + slideLeft: "layer-anim-slide-left-out", + slideUp: "layer-anim-slide-up-out", + slideRight: "layer-anim-slide-right-out" + }[t.anim] || "layer-anim-close", e = function () { + var e = "layui-layer-wrap"; + if (f) return r.removeClass("layer-anim " + l), r.hide(); + if (c === d.type[1] && "object" === r.attr("conType")) { + r.children(":not(." + u[5] + ")").remove(); + for (var t = r.find("." + e), i = 0; i < 2; i++) t.unwrap(); + t.css("display", t.data("display")).removeClass(e) + } else { + if (c === d.type[2]) try { + var n = m("#" + u[4] + o)[0]; + n.contentWindow.document.write(""), n.contentWindow.close(), r.find("." + u[5])[0].removeChild(n) + } catch (a) { + } + r[0].innerHTML = "", r.remove() + } + "function" == typeof d.end[o] && d.end[o](), delete d.end[o], "function" == typeof s && s(), d.events.resize[o] && (h.off("resize", d.events.resize[o]), delete d.events.resize[o]) + }, m("#" + u.SHADE + o)[f ? "hide" : "remove"](), t.isOutAnim && r.addClass("layer-anim " + l), 6 == g.ie && d.reselect(), d.restScrollbar(o), "string" == typeof r.attr("minLeft") && (d.minStackIndex--, d.minStackArr.push(r.attr("minLeft"))), g.ie && g.ie < 10 || !t.isOutAnim ? e() : setTimeout(function () { + e() + }, 200)) + }, g.closeAll = function (n, a) { + "function" == typeof n && (a = n, n = null); + var o = m("." + u[0]); + m.each(o, function (e) { + var t = m(this), i = n ? t.attr("type") === n : 1; + i && g.close(t.attr("times"), e === o.length - 1 ? a : null) + }), 0 === o.length && "function" == typeof a && a() + }, g.closeLast = function (e, t) { + g.close(m(".layui-layer-" + (e = e || "page") + ":last").attr("times"), t) + }, g.cache || {}), v = function (e) { + return i.skin ? " " + i.skin + " " + i.skin + "-" + e : "" + }; + g.prompt = function (i, n) { + var e = "", t = ""; + "function" == typeof (i = i || {}) && (n = i), i.area && (e = 'style="width: ' + (o = i.area)[0] + "; height: " + o[1] + ';"', delete i.area), i.placeholder && (t = ' placeholder="' + i.placeholder + '"'); + var a, + o = 2 == i.formType ? '" : '", + s = i.success; + return delete i.success, g.open(m.extend({ + type: 1, + btn: ["确定", "取消"], + content: o, + skin: "layui-layer-prompt" + v("prompt"), + maxWidth: h.width(), + success: function (e) { + (a = e.find(".layui-layer-input")).val(i.value || "").focus(), "function" == typeof s && s(e) + }, + resize: !1, + yes: function (e) { + var t = a.val(); + t.length > (i.maxlength || 500) ? g.tips("最多输入" + (i.maxlength || 500) + "个字数", a, {tips: 1}) : n && n(t, e, a) + } + }, i)) + }, g.tab = function (n) { + var a = (n = n || {}).tab || {}, o = "layui-this", s = n.success; + return delete n.success, g.open(m.extend({ + type: 1, + skin: "layui-layer-tab" + v("tab"), + resize: !1, + title: function () { + var e = a.length, t = 1, i = ""; + if (0 < e) for (i = '' + a[0].title + ""; t < e; t++) i += "" + a[t].title + ""; + return i + }(), + content: '
          ' + function () { + var e = a.length, t = 1, i = ""; + if (0 < e) for (i = '
        • ' + (a[0].content || "no content") + "
        • "; t < e; t++) i += '
        • ' + (a[t].content || "no content") + "
        • "; + return i + }() + "
        ", + success: function (e) { + var t = e.find(".layui-layer-title").children(), i = e.find(".layui-layer-tabmain").children(); + t.on("mousedown", function (e) { + e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0; + var e = m(this), t = e.index(); + e.addClass(o).siblings().removeClass(o), i.eq(t).show().siblings().hide(), "function" == typeof n.change && n.change(t) + }), "function" == typeof s && s(e) + } + }, n)) + }, g.photos = function (n, e, a) { + var s = {}; + if ((n = m.extend(!0, {toolbar: !0, footer: !0}, n)).photos) { + var t = !("string" == typeof n.photos || n.photos instanceof m), i = t ? n.photos : {}, o = i.data || [], + l = i.start || 0, r = n.success; + if (s.imgIndex = 1 + (0 | l), n.img = n.img || "img", delete n.success, t) { + if (0 === o.length) return g.msg("没有图片") + } else { + var c = m(n.photos), f = function () { + o = [], c.find(n.img).each(function (e) { + var t = m(this); + t.attr("layer-index", e), o.push({ + alt: t.attr("alt"), + pid: t.attr("layer-pid"), + src: t.attr("lay-src") || t.attr("layer-src") || t.attr("src"), + thumb: t.attr("src") + }) + }) + }; + if (f(), 0 === o.length) return; + if (e || c.on("click", n.img, function () { + f(); + var e = m(this).attr("layer-index"); + g.photos(m.extend(n, {photos: {start: e, data: o, tab: n.tab}, full: n.full}), !0) + }), !e) return + } + s.imgprev = function (e) { + s.imgIndex--, s.imgIndex < 1 && (s.imgIndex = o.length), s.tabimg(e) + }, s.imgnext = function (e, t) { + s.imgIndex++, s.imgIndex > o.length && (s.imgIndex = 1, t) || s.tabimg(e) + }, s.keyup = function (e) { + var t; + s.end || (t = e.keyCode, e.preventDefault(), 37 === t ? s.imgprev(!0) : 39 === t ? s.imgnext(!0) : 27 === t && g.close(s.index)) + }, s.tabimg = function (e) { + if (!(o.length <= 1)) return i.start = s.imgIndex - 1, g.close(s.index), g.photos(n, !0, e) + }, s.isNumber = function (e) { + return "number" == typeof e && !isNaN(e) + }, s.image = {}, s.getTransform = function (e) { + var t = [], i = e.rotate, n = e.scaleX, e = e.scale; + return s.isNumber(i) && 0 !== i && t.push("rotate(" + i + "deg)"), s.isNumber(n) && 1 !== n && t.push("scaleX(" + n + ")"), s.isNumber(e) && t.push("scale(" + e + ")"), t.length ? t.join(" ") : "none" + }, s.event = function (e, i, n) { + var a, o; + s.main.find(".layui-layer-photos-prev").on("click", function (e) { + e.preventDefault(), s.imgprev(!0) + }), s.main.find(".layui-layer-photos-next").on("click", function (e) { + e.preventDefault(), s.imgnext(!0) + }), m(document).on("keyup", s.keyup), e.off("click").on("click", "*[toolbar-event]", function () { + var e = m(this); + switch (e.attr("toolbar-event")) { + case"rotate": + s.image.rotate = ((s.image.rotate || 0) + Number(e.attr("data-option"))) % 360, s.imgElem.css({transform: s.getTransform(s.image)}); + break; + case"scalex": + s.image.scaleX = -1 === s.image.scaleX ? 1 : -1, s.imgElem.css({transform: s.getTransform(s.image)}); + break; + case"zoom": + var t = Number(e.attr("data-option")); + s.image.scale = (s.image.scale || 1) + t, t < 0 && s.image.scale < 0 - t && (s.image.scale = 0 - t), s.imgElem.css({transform: s.getTransform(s.image)}); + break; + case"reset": + s.image.scaleX = 1, s.image.scale = 1, s.image.rotate = 0, s.imgElem.css({transform: "none"}); + break; + case"close": + g.close(i) + } + n.offset(), n.auto(i) + }), s.main.on("mousewheel DOMMouseScroll", function (e) { + var t = e.originalEvent.wheelDelta || -e.originalEvent.detail, + i = s.main.find('[toolbar-event="zoom"]'); + (0 < t ? i.eq(0) : i.eq(1)).trigger("click"), e.preventDefault() + }), (p.layui || p.lay) && (a = p.layui.lay || p.lay, o = function (e, t) { + var i = Date.now() - t.timeStart, i = t.distanceX / i, n = h.width() / 3; + (.25 < Math.abs(i) || Math.abs(t.distanceX) > n) && ("left" === t.direction ? s.imgnext(!0) : "right" === t.direction && s.imgprev(!0)) + }, m.each([n.shadeo, s.main], function (e, t) { + a.touchSwipe(t, {onTouchEnd: o}) + })) + }, s.loadi = g.load(1, {shade: !("shade" in n) && .9, scrollbar: !1}); + var t = o[l].src, d = function (e) { + g.close(s.loadi); + var t, i = o[l].alt || ""; + a && (n.anim = -1), s.index = g.open(m.extend({ + type: 1, + id: "layui-layer-photos", + area: (e = [e.width, e.height], t = [m(p).width() - 100, m(p).height() - 100], !n.full && (t[0] < e[0] || t[1] < e[1]) && ((t = [e[0] / t[0], e[1] / t[1]])[1] < t[0] ? (e[0] = e[0] / t[0], e[1] = e[1] / t[0]) : t[0] < t[1] && (e[0] = e[0] / t[1], e[1] = e[1] / t[1])), [e[0] + "px", e[1] + "px"]), + title: !1, + shade: .9, + shadeClose: !0, + closeBtn: !1, + move: ".layer-layer-photos-main img", + moveType: 1, + scrollbar: !1, + moveOut: !0, + anim: 5, + isOutAnim: !1, + skin: "layui-layer-photos" + v("photos"), + content: '
        ' + i + '' + (t = ['
        '], 1 < o.length && t.push(['
        ', '', '', "
        "].join("")), n.toolbar && t.push(['
        ', '', '', '', '', '', '', "
        "].join("")), n.footer && t.push(['"].join("")), t.push("
        "), t.join("")) + "
        ", + success: function (e, t, i) { + s.main = e.find(".layer-layer-photos-main"), s.footer = e.find(".layui-layer-photos-footer"), s.imgElem = s.main.children("img"), s.event(e, t, i), n.tab && n.tab(o[l], e), "function" == typeof r && r(e) + }, + end: function () { + s.end = !0, m(document).off("keyup", s.keyup) + } + }, n)) + }, u = function () { + g.close(s.loadi), g.msg("当前图片地址异常
        是否继续查看下一张?", { + time: 3e4, + btn: ["下一张", "不看了"], + yes: function () { + 1 < o.length && s.imgnext(!0, !0) + } + }) + }, y = new Image; + (y.src = t, y.complete) ? d(y) : (y.onload = function () { + y.onload = null, d(y) + }, y.onerror = function (e) { + y.onerror = null, u(e) + }) + } + }, d.run = function (e) { + h = (m = e)(p); + var e = navigator.userAgent.toLowerCase(), e = /android|iphone|ipod|ipad|ios/.test(e), n = m(p); + e && m.each({Height: "height", Width: "width"}, function (e, t) { + var i = "inner" + e; + h[t] = function () { + return i in p ? p[i] : n[t]() + } + }), u.html = m("html"), g.open = function (e) { + return new t(e).index + } + }, p.layui && layui.define ? (g.ready(), layui.define(["jquery", "lay"], function (e) { + g.path = layui.cache.dir, d.run(layui.$), e("layer", p.layer = g) + })) : "function" == typeof define && define.amd ? define(["jquery"], function () { + return d.run(p.jQuery), g + }) : (g.ready(), d.run(p.jQuery)) +}(window); +layui.define("jquery", function (t) { + "use strict"; + var s = layui.$, p = layui.hint(), e = { + fixbar: function (i) { + var o, t, e, n, r = "layui-fixbar", a = s(document), c = (i = s.extend(!0, { + target: "body", + bars: [], + "default": !0, + margin: 160, + duration: 320 + }, i), s(i.target)), u = i.scroll ? s(i.scroll) : s("body" === i.target ? a : c), + l = (i["default"] && (i.bar1 && i.bars.push({ + type: "bar1", + icon: "layui-icon-chat" + }), i.bar2 && i.bars.push({type: "bar2", icon: "layui-icon-help"}), i.bars.push({ + type: "top", + icon: "layui-icon-top" + })), s("
          ").addClass(r)); + layui.each(i.bars, function (t, e) { + var n = s('
        • '); + n.addClass(e.icon).attr({ + "lay-type": e.type, + style: e.style || (i.bgcolor ? "background-color: " + i.bgcolor : "") + }).html(e.content), n.on("click", function () { + var t = s(this).attr("lay-type"); + "top" === t && ("body" === i.target ? s("html,body") : u).animate({scrollTop: 0}, i.duration), "function" == typeof i.click && i.click.call(this, t) + }), "object" === layui.type(i.on) && layui.each(i.on, function (t, e) { + n.on(t, function () { + var t = s(this).attr("lay-type"); + "function" == typeof e && e.call(this, t) + }) + }), "top" === e.type && (n.addClass("layui-fixbar-top"), o = n), l.append(n) + }), c.find("." + r).remove(), "object" == typeof i.css && l.css(i.css), c.append(l), o && (e = function e() { + return u.scrollTop() >= i.margin ? t || (o.show(), t = 1) : t && (o.hide(), t = 0), e + }()), u.on("scroll", function () { + e && (clearTimeout(n), n = setTimeout(function () { + e() + }, 100)) + }) + }, countdown: function (i) { + i = s.extend(!0, {date: new Date, now: new Date}, i); + var o = arguments, r = (1 < o.length && (i.date = new Date(o[0]), i.now = new Date(o[1]), i.clock = o[2]), { + options: i, + clear: function () { + clearTimeout(r.timer) + }, + reload: function (t) { + this.clear(), s.extend(!0, this.options, {now: new Date}, t), a() + } + }), a = ("function" == typeof i.ready && i.ready(), function c() { + var t = new Date(i.date), e = new Date(i.now), t = 0 < (t = t.getTime() - e.getTime()) ? t : 0, n = { + d: Math.floor(t / 864e5), + h: Math.floor(t / 36e5) % 24, + m: Math.floor(t / 6e4) % 60, + s: Math.floor(t / 1e3) % 60 + }; + return 1 < o.length && (n = [n.d, n.h, n.m, n.s]), r.timer = setTimeout(function () { + e.setTime(e.getTime() + 1e3), i.now = e, a() + }, 1e3), "function" == typeof i.clock && i.clock(n, r), t <= 0 && (clearTimeout(r.timer), "function" == typeof i.done) && i.done(n, r), c + }()); + return r + }, timeAgo: function (t, e) { + var n = this, i = [[], []], o = (new Date).getTime() - new Date(t).getTime(); + return 26784e5 < o ? (o = new Date(t), i[0][0] = n.digit(o.getFullYear(), 4), i[0][1] = n.digit(o.getMonth() + 1), i[0][2] = n.digit(o.getDate()), e || (i[1][0] = n.digit(o.getHours()), i[1][1] = n.digit(o.getMinutes()), i[1][2] = n.digit(o.getSeconds())), i[0].join("-") + " " + i[1].join(":")) : 864e5 <= o ? (o / 1e3 / 60 / 60 / 24 | 0) + " \u5929\u524d" : 36e5 <= o ? (o / 1e3 / 60 / 60 | 0) + " \u5c0f\u65f6\u524d" : 18e4 <= o ? (o / 1e3 / 60 | 0) + " \u5206\u949f\u524d" : o < 0 ? "\u672a\u6765" : "\u521a\u521a" + }, digit: function (t, e) { + var n = ""; + e = e || 2; + for (var i = (t = String(t)).length; i < e; i++) n += "0"; + return t < Math.pow(10, e) ? n + (0 | t) : t + }, toDateString: function (t, e, n) { + var i, o, r, a, c, u, l, s, g, f, d; + return null === t || "" === t ? "" : (i = this, (o = new Date(function () { + if (t) return !isNaN(t) && "string" == typeof t ? parseInt(t) : t + }() || new Date)).getDate() ? (r = o.getFullYear(), a = o.getMonth(), c = o.getDate(), u = o.getHours(), l = o.getMinutes(), s = o.getSeconds(), g = o.getMilliseconds(), f = n && n.customMeridiem || function (t, e) { + t = 100 * t + e; + return t < 600 ? "\u51cc\u6668" : t < 900 ? "\u65e9\u4e0a" : t < 1100 ? "\u4e0a\u5348" : t < 1300 ? "\u4e2d\u5348" : t < 1800 ? "\u4e0b\u5348" : "\u665a\u4e0a" + }, d = { + yy: function () { + return String(r).slice(-2) + }, yyyy: function () { + return i.digit(r, 4) + }, M: function () { + return String(a + 1) + }, MM: function () { + return i.digit(a + 1) + }, d: function () { + return String(c) + }, dd: function () { + return i.digit(c) + }, H: function () { + return String(u) + }, HH: function () { + return i.digit(u) + }, h: function () { + return String(u % 12 || 12) + }, hh: function () { + return i.digit(u % 12 || 12) + }, A: function () { + return f(u, l) + }, m: function () { + return String(l) + }, mm: function () { + return i.digit(l) + }, s: function () { + return String(s) + }, ss: function () { + return i.digit(s) + }, SSS: function () { + return i.digit(g, 3) + } + }, (e = e || "yyyy-MM-dd HH:mm:ss").replace(/\[([^\]]+)]|y{1,4}|M{1,2}|d{1,2}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|SSS/g, function (t, e) { + return e || d[t] && d[t]() || t + })) : (p.error('Invalid millisecond for "util.toDateString(millisecond)"'), "")) + }, escape: function (t) { + return t === undefined || null === t ? "" : /[<"'>]|&(?=#[a-zA-Z0-9]+)/g.test(t += "") ? t.replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """) : t + }, unescape: function (t) { + return t !== undefined && null !== t || (t = ""), (t += "").replace(/\&/g, "&").replace(/\</g, "<").replace(/\>/g, ">").replace(/\'/g, "'").replace(/\"/g, '"') + }, openWin: function (t) { + var e = (t = t || {}).window || window.open(t.url || "", t.target, t.specs); + t.url || (e.document.open("text/html", "replace"), e.document.write(t.content || ""), e.document.close()) + }, toVisibleArea: function (t) { + var e, n, i, o, r, a, c, u; + (t = s.extend({ + margin: 160, + duration: 200, + type: "y" + }, t)).scrollElem[0] && t.thisElem[0] && (e = t.scrollElem, c = t.thisElem, i = (r = "y" === t.type) ? "top" : "left", o = e[n = r ? "scrollTop" : "scrollLeft"](), r = e[r ? "height" : "width"](), a = e.offset()[i], u = {}, (c = c.offset()[i] - a) > r - t.margin || c < t.margin) && (u[n] = c - r / 2 + o, e.animate(u, t.duration)) + }, on: function (i, o, t) { + "object" == typeof i && (t = o || {}, o = i, i = t.attr || "lay-on"); + var e, n = (t = s.extend({ + elem: "body", + trigger: "click" + }, "object" == typeof t ? t : {trigger: t})).elem = s(t.elem), r = "[" + i + "]", a = "UTIL_ON_DATA"; + if (n[0]) return n.data(a) || n.data(a, { + events: {}, + callbacks: {} + }), e = (a = n.data(a)).callbacks, o = a.events[i] = s.extend(!0, a.events[i], o), n.off(t.trigger, r, e[i]), n.on(t.trigger, r, e[i] = function (t) { + var e = s(this), n = e.attr(i); + "function" == typeof o[n] && o[n].call(this, e, t) + }), o + } + }; + e.event = e.on, t("util", e) +}); +layui.define(["jquery", "laytpl", "lay", "util"], function (e) { + "use strict"; + var n, i, t, c = layui.$, m = layui.laytpl, p = layui.util, a = layui.hint(), + o = layui.device().mobile ? "touchstart" : "mousedown", r = "dropdown", y = "layui_" + r + "_index", h = { + config: {customName: {id: "id", title: "title", children: "child"}}, + index: layui[r] ? layui[r].index + 1e4 : 0, + set: function (e) { + var i = this; + return i.config = c.extend({}, i.config, e), i + }, + on: function (e, i) { + return layui.onevent.call(this, r, e, i) + } + }, f = function () { + var i = this, e = i.config, t = e.id; + return f.that[t] = i, { + config: e, reload: function (e) { + i.reload.call(i, e) + }, reloadData: function (e) { + h.reloadData(t, e) + }, close: function () { + i.remove() + } + } + }, g = "layui-dropdown", l = "layui-menu-item-up", d = "layui-menu-item-down", v = "layui-menu-body-title", + s = "layui-menu-item-group", w = "layui-menu-item-parent", u = "layui-menu-item-checked", + V = "layui-menu-item-checked2", C = "layui-menu-body-panel", x = "layui-menu-body-panel-left", + b = "layui-dropdown-shade", k = "." + s + ">." + v, E = function (e) { + var i = this; + i.index = ++h.index, i.config = c.extend({}, i.config, h.config, e), i.init() + }; + E.prototype.config = { + trigger: "click", + content: "", + className: "", + style: "", + show: !1, + isAllowSpread: !0, + isSpreadItem: !0, + data: [], + delay: [200, 300], + shade: 0, + accordion: !1 + }, E.prototype.reload = function (e, i) { + var t = this; + t.config = c.extend({}, t.config, e), t.init(!0, i) + }, E.prototype.init = function (e, i) { + var t, n = this, a = n.config, l = c(a.elem); + return 1 < l.length ? (layui.each(l, function () { + h.render(c.extend({}, a, {elem: this})) + }), n) : (c.extend(a, lay.options(l[0])), !e && l[0] && l.data(y) ? (t = f.getThis(l.data(y))) ? t.reload(a, i) : void 0 : (a.elem = c(a.elem), a.id = "id" in a ? a.id : l.attr("id") || n.index, a.customName = c.extend({}, h.config.customName, a.customName), (a.show || "reloadData" === i && n.elemView && c("body").find(n.elemView.get(0)).length) && n.render(e, i), void n.events())) + }, E.prototype.render = function (e, i) { + var l = this, d = l.config, s = d.customName, t = c("body"), n = function () { + var e = c('
            '); + return 0 < d.data.length ? u(e, d.data) : e.html('
          • No data
          • '), e + }, u = function (r, e) { + return layui.each(e, function (e, i) { + var t, n = i[s.children] && 0 < i[s.children].length, a = ("isSpreadItem" in i ? i : d).isSpreadItem, + l = (o = p.escape(i[s.title]), l = i.templet || d.templet, o = l ? "function" == typeof l ? l(i) : m(l).render(i) : o), + o = (n && (i.type = i.type || "parent"), i.type ? { + group: "group", + parent: "parent", + "-": "-" + }[i.type] || "parent" : ""); + ("-" === o || i[s.title] || i[s.id] || n) && ((l = c(["", (t = "href" in i ? '' + l + "" : l, n ? '
            ' + t + ("parent" === o ? '' : "group" === o && d.isAllowSpread ? '' : "") + "
            " : '
            ' + t + "
            "), ""].join(""))).data("item", i), n && (a = c('
            '), t = c("
              "), "parent" === o ? (a.append(u(t, i[s.children])), l.append(a)) : l.append(u(t, i[s.children]))), r.append(l)) + }), r + }, + a = ['
              ', "
              "].join(""); + !(e = "contextmenu" !== d.trigger && !lay.isTopElem(d.elem[0]) ? e : !0) && d.elem.data(y + "_opened") || (l.elemView = c("." + g + '[lay-id="' + d.id + '"]'), "reloadData" === i && l.elemView.length ? l.elemView.html(d.content || n()) : (l.elemView = c(a), l.elemView.append(d.content || n()), d.className && l.elemView.addClass(d.className), d.style && l.elemView.attr("style", d.style), h.thisId = d.id, l.remove(), t.append(l.elemView), d.elem.data(y + "_opened", !0), e = d.shade ? '
              ' : "", l.elemView.before(e), "mouseenter" === d.trigger && l.elemView.on("mouseenter", function () { + clearTimeout(f.timer) + }).on("mouseleave", function () { + l.delayRemove() + })), l.position(), (f.prevElem = l.elemView).data("prevElem", d.elem), l.elemView.find(".layui-menu").on(o, function (e) { + layui.stope(e) + }), l.elemView.find(".layui-menu li").on("click", function (e) { + var i = c(this), t = i.data("item") || {}, n = t[s.children] && 0 < t[s.children].length, + a = "all" === d.clickScope; + t.disabled || n && !a || "-" === t.type || (!1 === ("function" == typeof d.click ? d.click(t, i) : null) || n || l.remove(), layui.stope(e)) + }), l.elemView.find(k).on("click", function (e) { + var i = c(this).parent(); + "group" === (i.data("item") || {}).type && d.isAllowSpread && f.spread(i, d.accordion) + }), "function" == typeof d.ready && d.ready(l.elemView, d.elem)) + }, E.prototype.position = function (e) { + var i = this.config; + lay.position(i.elem[0], this.elemView[0], { + position: i.position, + e: this.e, + clickType: "contextmenu" === i.trigger ? "right" : null, + align: i.align || null + }) + }, E.prototype.remove = function () { + this.config; + var e = f.prevElem; + e && (e.data("prevElem") && e.data("prevElem").data(y + "_opened", !1), e.remove()), lay("." + b).remove() + }, E.prototype.normalizedDelay = function () { + var e = this.config, e = [].concat(e.delay); + return {show: e[0], hide: e[1] !== undefined ? e[1] : e[0]} + }, E.prototype.delayRemove = function () { + var e = this; + e.config; + clearTimeout(f.timer), f.timer = setTimeout(function () { + e.remove() + }, e.normalizedDelay().hide) + }, E.prototype.events = function () { + var i = this, e = i.config, + t = ("hover" === e.trigger && (e.trigger = "mouseenter"), i.prevElem && i.prevElem.off(e.trigger, i.prevElemCallback), "mouseenter" === e.trigger); + i.prevElem = e.elem, i.prevElemCallback = function (e) { + clearTimeout(f.timer), i.e = e, t ? f.timer = setTimeout(function () { + i.render() + }, i.normalizedDelay().show) : i.render(), e.preventDefault() + }, e.elem.on(e.trigger, i.prevElemCallback), t && e.elem.on("mouseleave", function () { + i.delayRemove() + }) + }, f.that = {}, f.getThis = function (e) { + var i = f.that[e]; + return i || a.error(e ? r + " instance with ID '" + e + "' not found" : "ID argument required"), i + }, f.spread = function (e, i) { + var t = e.children("ul"), n = e.hasClass(l), a = function () { + c(this).css({display: ""}) + }; + t.is(":animated") || (n ? (e.removeClass(l).addClass(d), t.hide().stop().slideDown(200, a)) : (t.stop().slideUp(200, a), e.removeClass(d).addClass(l)), n && i && ((t = e.siblings("." + d)).children("ul").stop().slideUp(200, a), t.removeClass(d).addClass(l))) + }, n = c(window), i = c(document), n.on("resize", function () { + if (h.thisId) { + var e = f.getThis(h.thisId); + if (e) return !(e.elemView && !e.elemView[0] || !c("." + g)[0]) && void ("contextmenu" === e.config.trigger ? e.remove() : e.position()) + } + }), i.on(o, function (e) { + var i, t; + h.thisId && (i = f.getThis(h.thisId)) && (t = i.config, !lay.isTopElem(t.elem[0]) && "contextmenu" !== t.trigger && (e.target === t.elem[0] || t.elem.find(e.target)[0] || i.elemView && e.target === i.elemView[0] || i.elemView && i.elemView.find(e.target)[0]) || i.remove()) + }), t = ".layui-menu:not(.layui-dropdown-menu) li", i.on("click", t, function (e) { + var i = c(this), t = i.parents(".layui-menu").eq(0), n = i.hasClass(s) || i.hasClass(w), + a = t.attr("lay-filter") || t.attr("id"), l = lay.options(this); + i.hasClass("layui-menu-item-divider") || n || (t.find("." + u).removeClass(u), t.find("." + V).removeClass(V), i.addClass(u), i.parents("." + w).addClass(V), l.title = l.title || c.trim(i.children("." + v).text()), layui.event.call(this, r, "click(" + a + ")", l)) + }), i.on("click", t + k, function (e) { + var i = c(this), t = i.parents("." + s + ":eq(0)"), n = lay.options(t[0]), + i = "string" == typeof i.parents(".layui-menu").eq(0).attr("lay-accordion"); + "isAllowSpread" in n && !n.isAllowSpread || f.spread(t, i) + }), t = ".layui-menu ." + w, i.on("mouseenter", t, function (e) { + var i, t = c(this).find("." + C); + t[0] && ((i = t[0].getBoundingClientRect()).right > n.width() && (t.addClass(x), (i = t[0].getBoundingClientRect()).left < 0) && t.removeClass(x), i.bottom > n.height()) && t.eq(0).css("margin-top", -(i.bottom - n.height() + 5)) + }).on("mouseleave", t, function (e) { + var i = c(this).children("." + C); + i.removeClass(x), i.css("margin-top", 0) + }), h.close = function (e) { + e = f.getThis(e); + return e ? (e.remove(), f.call(e)) : this + }, h.reload = function (e, i, t) { + e = f.getThis(e); + return e ? (e.reload(i, t), f.call(e)) : this + }, h.reloadData = function () { + var t = c.extend([], arguments), + n = (t[2] = "reloadData", new RegExp("^(" + ["data", "templet", "content"].join("|") + ")$")); + return layui.each(t[1], function (e, i) { + n.test(e) || delete t[1][e] + }), h.reload.apply(null, t) + }, h.render = function (e) { + e = new E(e); + return f.call(e) + }, e(r, h) +}); +layui.define(["jquery", "lay"], function (e) { + "use strict"; + var g = layui.$, x = layui.lay, m = { + config: {}, index: layui.slider ? layui.slider.index + 1e4 : 0, set: function (e) { + var t = this; + return t.config = g.extend({}, t.config, e), t + }, on: function (e, t) { + return layui.onevent.call(this, i, e, t) + } + }, i = "slider", f = "layui-disabled", b = "layui-slider-bar", T = "layui-slider-wrap", w = "layui-slider-wrap-btn", + M = "layui-slider-tips", L = "layui-slider-input-txt", E = "layui-slider-hover", t = function (e) { + var t = this; + t.index = ++m.index, t.config = g.extend({}, t.config, m.config, e), t.render() + }; + t.prototype.config = { + type: "default", + min: 0, + max: 100, + value: 0, + step: 1, + showstep: !1, + tips: !0, + tipsAlways: !1, + input: !1, + range: !1, + height: 200, + disabled: !1, + theme: "#16baaa" + }, t.prototype.render = function () { + var n = this, a = n.config, e = g(a.elem); + if (1 < e.length) return layui.each(e, function () { + m.render(g.extend({}, a, {elem: this})) + }), n; + g.extend(a, x.options(e[0])), a.step < 1 && (a.step = 1), a.max < a.min && (a.max = a.min + a.step), a.range ? (a.value = "object" == typeof a.value ? a.value : [a.min, a.value], e = Math.min(a.value[0], a.value[1]), i = Math.max(a.value[0], a.value[1]), a.value[0] = Math.max(e, a.min), a.value[1] = Math.max(i, a.min), a.value[0] = Math.min(a.value[0], a.max), a.value[1] = Math.min(a.value[1], a.max), i = Math.floor((a.value[0] - a.min) / (a.max - a.min) * 100), l = (s = Math.floor((a.value[1] - a.min) / (a.max - a.min) * 100)) - i + "%", i += "%", s += "%") : ("object" == typeof a.value && (a.value = Math.min.apply(null, a.value)), a.value < a.min && (a.value = a.min), a.value > a.max && (a.value = a.max), l = Math.floor((a.value - a.min) / (a.max - a.min) * 100) + "%"); + var t, e = a.disabled ? "#c2c2c2" : a.theme, + i = '
              ' + (a.tips ? '
              " : "") + '
              ' + (a.range ? '
              ' : "") + "
              ", + l = g(a.elem), s = l.next(".layui-slider"); + if (s[0] && s.remove(), n.elemTemp = g(i), a.range ? (n.elemTemp.find("." + T).eq(0).data("value", a.value[0]), n.elemTemp.find("." + T).eq(1).data("value", a.value[1])) : n.elemTemp.find("." + T).data("value", a.value), l.html(n.elemTemp), "vertical" === a.type && n.elemTemp.height(a.height + "px"), a.showstep) { + for (var o = (a.max - a.min) / a.step, r = "", u = 1; u < 1 + o; u++) { + var d = 100 * u / o; + d < 100 && (r += '
              ') + } + n.elemTemp.append(r) + } + + function c(e) { + e = e.parent().data("value"), e = a.setTips ? a.setTips(e) : e; + n.elemTemp.find("." + M).html(e) + } + + function v(e) { + var t = "vertical" === a.type ? a.height : n.elemTemp[0].offsetWidth, i = n.elemTemp.find("." + T); + return ("vertical" === a.type ? t - e.parent()[0].offsetTop - i.height() : e.parent()[0].offsetLeft) / t * 100 + } + + function p(e) { + "vertical" === a.type ? n.elemTemp.find("." + M).css({ + bottom: e + "%", + "margin-bottom": "20px", + display: "inline-block" + }) : n.elemTemp.find("." + M).css({left: e + "%", display: "inline-block"}) + } + + a.input && !a.range && (e = g('
              '), l.css("position", "relative"), l.append(e), l.find("." + L).children("input").val(a.value), "vertical" === a.type ? e.css({ + left: 0, + top: -48 + }) : n.elemTemp.css("margin-right", e.outerWidth() + 15)), a.disabled ? (n.elemTemp.addClass(f), n.elemTemp.find("." + w).addClass(f)) : n.slide(), a.tips && (a.tipsAlways ? (c(s = n.elemTemp.find("." + w)), p(v(s))) : n.elemTemp.find("." + w).on("mouseover", function () { + c(g(this)); + var e = v(g(this)); + clearTimeout(t), t = setTimeout(function () { + p(e) + }, 300) + }).on("mouseout", function () { + clearTimeout(t), a.tipsAlways || n.elemTemp.find("." + M).css("display", "none") + })) + }, t.prototype.slide = function (e, t, i) { + var u = this, d = u.config, c = u.elemTemp, v = function () { + return "vertical" === d.type ? d.height : c[0].offsetWidth + }, p = c.find("." + T), o = c.next(".layui-slider-input"), r = o.children("." + L).children("input").val(), + m = 100 / ((d.max - d.min) / Math.ceil(d.step)), f = function (e, t, i) { + e = (e = 100 < (e = 100 < Math.ceil(e) * m ? Math.ceil(e) * m : Math.round(e) * m) ? 100 : e) < 0 ? 0 : e, p.eq(t).css("vertical" === d.type ? "bottom" : "left", e + "%"); + var n, a = h(p[0].offsetLeft), l = d.range ? h(p[1].offsetLeft) : 0, + s = ("vertical" === d.type ? (c.find("." + M).css({ + bottom: e + "%", + "margin-bottom": "20px" + }), a = h(v() - p[0].offsetTop - p.height()), l = d.range ? h(v() - p[1].offsetTop - p.height()) : 0) : c.find("." + M).css("left", e + "%"), a = 100 < a ? 100 : a, l = 100 < l ? 100 : l, Math.min(a, l)), + a = Math.abs(a - l), l = ("vertical" === d.type ? c.find("." + b).css({ + height: a + "%", + bottom: s + "%" + }) : c.find("." + b).css({width: a + "%", left: s + "%"}), d.min + Math.round((d.max - d.min) * e / 100)); + r = l, o.children("." + L).children("input").val(r), p.eq(t).data("value", l), c.find("." + M).html(d.setTips ? d.setTips(l) : l), d.range && (n = [p.eq(0).data("value"), p.eq(1).data("value")])[0] > n[1] && n.reverse(), u.value = d.range ? n : l, d.change && d.change(u.value), "done" === i && d.done && d.done(u.value) + }, h = function (e) { + var t = e / v() * 100 / m, i = Math.round(t) * m; + return i = e == v() ? Math.ceil(t) * m : i + }, y = g(['
              v() ? v() : t) / v() * 100 / m; + f(t, o), r.addClass(E), c.find("." + M).show(), e.preventDefault() + }, n = function (e) { + r.removeClass(E), d.tipsAlways || setTimeout(function () { + c.find("." + M).hide() + }, e) + }, a = function () { + n && n(x.touchEventsSupported() ? 1e3 : 0), y.remove(), d.done && d.done(u.value), x.touchEventsSupported() && (t[0].removeEventListener("touchmove", i, !!x.passiveSupported && {passive: !1}), t[0].removeEventListener("touchend", a), t[0].removeEventListener("touchcancel", a)) + }, g("#LAY-slider-moving")[0] || g("body").append(y), y.on("mousemove", i), y.on("mouseup", a).on("mouseleave", a), x.touchEventsSupported() && (t[0].addEventListener("touchmove", i, !!x.passiveSupported && {passive: !1}), t[0].addEventListener("touchend", a), t[0].addEventListener("touchcancel", a)) + }) + }), c.on("click", function (e) { + var t = g("." + w), i = g(this); + !t.is(event.target) && 0 === t.has(event.target).length && t.length && (i = (t = (t = (t = "vertical" === d.type ? v() - e.clientY + i.offset().top - g(window).scrollTop() : e.clientX - i.offset().left - g(window).scrollLeft()) < 0 ? 0 : t) > v() ? v() : t) / v() * 100 / m, t = d.range ? "vertical" === d.type ? Math.abs(t - parseInt(g(p[0]).css("bottom"))) > Math.abs(t - parseInt(g(p[1]).css("bottom"))) ? 1 : 0 : Math.abs(t - p[0].offsetLeft) > Math.abs(t - p[1].offsetLeft) ? 1 : 0 : 0, f(i, t, "done"), e.preventDefault()) + }), o.children(".layui-slider-input-btn").children("i").each(function (t) { + g(this).on("click", function () { + r = o.children("." + L).children("input").val(); + var e = ((r = 1 == t ? r - d.step < d.min ? d.min : Number(r) - d.step : Number(r) + d.step > d.max ? d.max : Number(r) + d.step) - d.min) / (d.max - d.min) * 100 / m; + f(e, 0, "done") + }) + }); + var n = function () { + var e = this.value, + e = (e = (e = (e = isNaN(e) ? 0 : e) < d.min ? d.min : e) > d.max ? d.max : e, ((this.value = e) - d.min) / (d.max - d.min) * 100 / m); + f(e, 0, "done") + }; + o.children("." + L).children("input").on("keydown", function (e) { + 13 === e.keyCode && (e.preventDefault(), n.call(this)) + }).on("change", n) + }, t.prototype.events = function () { + this.config + }, m.render = function (e) { + e = new t(e); + return function () { + var i = this, n = i.config; + return { + setValue: function (e, t) { + return e = (e = e > n.max ? n.max : e) < n.min ? n.min : e, n.value = e, i.slide("set", e, t || 0) + }, config: n + } + }.call(e) + }, e(i, m) +}); +layui.define(["jquery", "lay"], function (e) { + "use strict"; + var k = layui.$, r = layui.lay, o = layui.hint(), i = layui.device().mobile ? "click" : "mousedown", n = { + config: {}, index: layui.colorpicker ? layui.colorpicker.index + 1e4 : 0, set: function (e) { + var i = this; + return i.config = k.extend({}, i.config, e), i + }, on: function (e, i) { + return layui.onevent.call(this, "colorpicker", e, i) + } + }, l = function () { + var e = this.config, i = e.id; + return l.that[i] = this, {config: e} + }, t = "colorpicker", c = "layui-colorpicker", a = ".layui-colorpicker-main", x = "layui-icon-down", + P = "layui-icon-close", C = "layui-colorpicker-trigger-span", w = "layui-colorpicker-trigger-i", + B = "layui-colorpicker-side-slider", I = "layui-colorpicker-basis", T = "layui-colorpicker-alpha-bgcolor", + D = "layui-colorpicker-alpha-slider", E = "layui-colorpicker-basis-cursor", M = "layui-colorpicker-main-input", + Y = function (e) { + var i = {h: 0, s: 0, b: 0}, o = Math.min(e.r, e.g, e.b), t = Math.max(e.r, e.g, e.b), r = t - o; + return i.b = t, i.s = 0 !== t ? 255 * r / t : 0, 0 !== i.s ? e.r == t ? i.h = (e.g - e.b) / r : e.g == t ? i.h = 2 + (e.b - e.r) / r : i.h = 4 + (e.r - e.g) / r : i.h = -1, t === o && (i.h = 0), i.h *= 60, i.h < 0 && (i.h += 360), i.s *= 100 / 255, i.b *= 100 / 255, i + }, X = function (e) { + var i, o = {}, t = e.h, r = 255 * e.s / 100, e = 255 * e.b / 100; + return 0 == r ? o.r = o.g = o.b = e : (e = t % 60 * ((i = e) - (r = (255 - r) * e / 255)) / 60, (t = 360 === t ? 0 : t) < 60 ? (o.r = i, o.b = r, o.g = r + e) : t < 120 ? (o.g = i, o.b = r, o.r = i - e) : t < 180 ? (o.g = i, o.r = r, o.b = r + e) : t < 240 ? (o.b = i, o.r = r, o.g = i - e) : t < 300 ? (o.b = i, o.g = r, o.r = r + e) : t < 360 ? (o.r = i, o.g = r, o.b = i - e) : (o.r = 0, o.g = 0, o.b = 0)), { + r: Math.round(o.r), + g: Math.round(o.g), + b: Math.round(o.b) + } + }, j = function (e) { + var e = X(e), o = [e.r.toString(16), e.g.toString(16), e.b.toString(16)]; + return k.each(o, function (e, i) { + 1 === i.length && (o[e] = "0" + i) + }), o.join("") + }, F = function (e) { + e = e.match(/[0-9]{1,3}/g) || []; + return {r: e[0], g: e[1], b: e[2]} + }, L = k(window), s = k(document), d = function (e) { + this.index = ++n.index, this.config = k.extend({}, this.config, n.config, e), this.render() + }; + d.prototype.config = { + color: "", + size: null, + alpha: !1, + format: "hex", + predefine: !1, + colors: ["#16baaa", "#16b777", "#1E9FFF", "#FF5722", "#FFB800", "#01AAED", "#999", "#c00", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585", "rgb(0, 186, 189)", "rgb(255, 120, 0)", "rgb(250, 212, 0)", "#393D49", "rgba(0,0,0,.5)", "rgba(255, 69, 0, 0.68)", "rgba(144, 240, 144, 0.5)", "rgba(31, 147, 255, 0.73)"] + }, d.prototype.render = function () { + var e = this, i = e.config; + if (1 < (t = k(i.elem)).length) return layui.each(t, function () { + n.render(k.extend({}, i, {elem: this})) + }), e; + k.extend(i, r.options(t[0])); + var o = k(['
              ', "", '', '', "", "", "
              "].join("")), + t = i.elem = k(i.elem); + i.size && o.addClass("layui-colorpicker-" + i.size), t.addClass("layui-inline").html(e.elemColorBox = o), i.id = "id" in i ? i.id : t.attr("id") || e.index, e.color = e.elemColorBox.find("." + C)[0].style.background, e.events() + }, d.prototype.renderPicker = function () { + var o, e = this, i = e.config, t = e.elemColorBox[0], + r = e.elemPicker = k(['
              ', '
              ', '
              ', '
              ', '
              ', '
              ', "
              ", '
              ', '
              ', "
              ", "
              ", '
              ', '
              ', '
              ', "
              ", "
              ", i.predefine ? (o = ['
              '], layui.each(i.colors, function (e, i) { + o.push(['
              ', '
              ', "
              "].join("")) + }), o.push("
              "), o.join("")) : "", '
              ', '
              ', '', "
              ", '
              ', '', '', "", "
              "].join("")); + e.elemColorBox.find("." + C)[0]; + k(a)[0] && k(a).data("index") == e.index ? e.removePicker(d.thisElemInd) : (e.removePicker(d.thisElemInd), k("body").append(r)), n.thisId = i.id, d.thisElemInd = e.index, d.thisColor = t.style.background, e.position(), e.pickerEvents() + }, d.prototype.removePicker = function (e) { + var i = this.config, e = k("#layui-colorpicker" + (e || this.index)); + return e[0] && (e.remove(), delete n.thisId, "function" == typeof i.close) && i.close(this.color), this + }, d.prototype.position = function () { + var e = this, i = e.config; + return r.position(e.bindElem || e.elemColorBox[0], e.elemPicker[0], {position: i.position, align: "center"}), e + }, d.prototype.val = function () { + var e, i = this, o = (i.config, i.elemColorBox.find("." + C)), t = i.elemPicker.find("." + M), + r = o[0].style.backgroundColor; + r ? (e = Y(F(r)), o = o.attr("lay-type"), i.select(e.h, e.s, e.b), "torgb" === o ? t.find("input").val(r) : "rgba" === o ? (o = F(r), 3 === (r.match(/[0-9]{1,3}/g) || []).length ? (t.find("input").val("rgba(" + o.r + ", " + o.g + ", " + o.b + ", 1)"), i.elemPicker.find("." + D).css("left", 280)) : (t.find("input").val(r), r = 280 * r.slice(r.lastIndexOf(",") + 1, r.length - 1), i.elemPicker.find("." + D).css("left", r)), i.elemPicker.find("." + T)[0].style.background = "linear-gradient(to right, rgba(" + o.r + ", " + o.g + ", " + o.b + ", 0), rgb(" + o.r + ", " + o.g + ", " + o.b + "))") : t.find("input").val("#" + j(e))) : (i.select(0, 100, 100), t.find("input").val(""), i.elemPicker.find("." + T)[0].style.background = "", i.elemPicker.find("." + D).css("left", 280)) + }, d.prototype.side = function () { + var n = this, l = n.config, c = n.elemColorBox.find("." + C), a = c.attr("lay-type"), + s = n.elemPicker.find(".layui-colorpicker-side"), e = n.elemPicker.find("." + B), + d = n.elemPicker.find("." + I), t = n.elemPicker.find("." + E), u = n.elemPicker.find("." + T), + f = n.elemPicker.find("." + D), p = e[0].offsetTop / 180 * 360, h = 100 - (t[0].offsetTop + 3) / 180 * 100, + g = (t[0].offsetLeft + 3) / 260 * 100, v = Math.round(f[0].offsetLeft / 280 * 100) / 100, + y = n.elemColorBox.find("." + w), i = n.elemPicker.find(".layui-colorpicker-pre").children("div"), + m = function (e, i, o, t) { + n.select(e, i, o); + var r = X({h: e, s: i, b: o}), e = j({h: e, s: i, b: o}), i = n.elemPicker.find("." + M).find("input"); + y.addClass(x).removeClass(P), c[0].style.background = "rgb(" + r.r + ", " + r.g + ", " + r.b + ")", "torgb" === a ? i.val("rgb(" + r.r + ", " + r.g + ", " + r.b + ")") : "rgba" === a ? (f.css("left", 280 * t), i.val("rgba(" + r.r + ", " + r.g + ", " + r.b + ", " + t + ")"), c[0].style.background = "rgba(" + r.r + ", " + r.g + ", " + r.b + ", " + t + ")", u[0].style.background = "linear-gradient(to right, rgba(" + r.r + ", " + r.g + ", " + r.b + ", 0), rgb(" + r.r + ", " + r.g + ", " + r.b + "))") : i.val("#" + e), l.change && l.change(k.trim(n.elemPicker.find("." + M).find("input").val())) + }, o = k(['
              '].join("")), + b = function (e) { + k("#LAY-colorpicker-moving")[0] || k("body").append(o), o.on("mousemove", e), o.on("mouseup", function () { + o.remove() + }).on("mouseleave", function () { + o.remove() + }) + }; + e.on("mousedown", function (e) { + var t = this.offsetTop, r = e.clientY; + b(function (e) { + var i = t + (e.clientY - r), o = s[0].offsetHeight, + o = (i = o < (i = i < 0 ? 0 : i) ? o : i) / 180 * 360; + m(p = o, g, h, v), e.preventDefault() + }), e.preventDefault() + }), s.on("click", function (e) { + var i = e.clientY - k(this).offset().top + L.scrollTop(), + i = (i = (i = i < 0 ? 0 : i) > this.offsetHeight ? this.offsetHeight : i) / 180 * 360; + m(p = i, g, h, v), e.preventDefault() + }), t.on("mousedown", function (e) { + var n = this.offsetTop, l = this.offsetLeft, c = e.clientY, a = e.clientX; + layui.stope(e), b(function (e) { + var i = n + (e.clientY - c), o = l + (e.clientX - a), t = d[0].offsetHeight - 3, + r = d[0].offsetWidth - 3, r = ((o = r < (o = o < -3 ? -3 : o) ? r : o) + 3) / 260 * 100, + o = 100 - ((i = t < (i = i < -3 ? -3 : i) ? t : i) + 3) / 180 * 100; + m(p, g = r, h = o, v), e.preventDefault() + }), e.preventDefault() + }), d.on("mousedown", function (e) { + var i = e.clientY - k(this).offset().top - 3 + L.scrollTop(), + o = e.clientX - k(this).offset().left - 3 + L.scrollLeft(), + o = ((i = i < -3 ? -3 : i) > this.offsetHeight - 3 && (i = this.offsetHeight - 3), ((o = (o = o < -3 ? -3 : o) > this.offsetWidth - 3 ? this.offsetWidth - 3 : o) + 3) / 260 * 100), + i = 100 - (i + 3) / 180 * 100; + m(p, g = o, h = i, v), layui.stope(e), e.preventDefault(), t.trigger(e, "mousedown") + }), f.on("mousedown", function (e) { + var t = this.offsetLeft, r = e.clientX; + b(function (e) { + var i = t + (e.clientX - r), o = u[0].offsetWidth, + o = (o < (i = i < 0 ? 0 : i) && (i = o), Math.round(i / 280 * 100) / 100); + m(p, g, h, v = o), e.preventDefault() + }), e.preventDefault() + }), u.on("click", function (e) { + var i = e.clientX - k(this).offset().left, + i = ((i = i < 0 ? 0 : i) > this.offsetWidth && (i = this.offsetWidth), Math.round(i / 280 * 100) / 100); + m(p, g, h, v = i), e.preventDefault() + }), i.each(function () { + k(this).on("click", function () { + k(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected"); + var e = this.style.backgroundColor, i = Y(F(e)), o = e.slice(e.lastIndexOf(",") + 1, e.length - 1); + p = i.h, g = i.s, h = i.b, 3 === (e.match(/[0-9]{1,3}/g) || []).length && (o = 1), v = o, m(i.h, i.s, i.b, o) + }) + }), r.touchEventsSupported() && layui.each([{elem: s, eventType: "click"}, { + elem: u, + eventType: "click" + }, {elem: d, eventType: "mousedown"}], function (e, t) { + r.touchSwipe(t.elem, { + onTouchMove: function (e) { + var i, o; + e = e, i = t.eventType, e = e.touches[0], (o = document.createEvent("MouseEvent")).initMouseEvent(i, !0, !0, window, 1, e.screenX, e.screenY, e.clientX, e.clientY, !1, !1, !1, !1, 0, null), e.target.dispatchEvent(o) + } + }) + }) + }, d.prototype.select = function (e, i, o, t) { + this.config; + var r = j({h: e, s: 100, b: 100}), e = (j({h: e, s: i, b: o}), e / 360 * 180), o = 180 - o / 100 * 180 - 3, + i = i / 100 * 260 - 3; + this.elemPicker.find("." + B).css("top", e), this.elemPicker.find("." + I)[0].style.background = "#" + r, this.elemPicker.find("." + E).css({ + top: o, + left: i + }) + }, d.prototype.pickerEvents = function () { + var c = this, a = c.config, s = c.elemColorBox.find("." + C), d = c.elemPicker.find("." + M + " input"), o = { + clear: function (e) { + s[0].style.background = "", c.elemColorBox.find("." + w).removeClass(x).addClass(P), c.color = "", a.done && a.done(""), c.removePicker() + }, confirm: function (e, i) { + var o, t, r, n, l = k.trim(d.val()); + -1 < l.indexOf(",") ? (t = Y(F(l)), c.select(t.h, t.s, t.b), s[0].style.background = o = "#" + j(t), 3 < (l.match(/[0-9]{1,3}/g) || []).length && "rgba" === s.attr("lay-type") && (r = 280 * l.slice(l.lastIndexOf(",") + 1, l.length - 1), c.elemPicker.find("." + D).css("left", r), o = s[0].style.background = l)) : (3 === (r = -1 < (r = l).indexOf("#") ? r.substring(1) : r).length && (r = (n = r.split(""))[0] + n[0] + n[1] + n[1] + n[2] + n[2]), n = { + r: (r = parseInt(r, 16)) >> 16, + g: (65280 & r) >> 8, + b: 255 & r + }, t = Y(n), s[0].style.background = o = "#" + j(t), c.elemColorBox.find("." + w).removeClass(P).addClass(x)), "change" === i ? (c.select(t.h, t.s, t.b, i), a.change && a.change(o)) : (c.color = l, a.done && a.done(l), c.removePicker()) + } + }; + c.elemPicker.on("click", "*[colorpicker-events]", function () { + var e = k(this), i = e.attr("colorpicker-events"); + o[i] && o[i].call(this, e) + }), d.on("keyup", function (e) { + var i = k(this); + o.confirm.call(this, i, 13 === e.keyCode ? null : "change") + }) + }, d.prototype.events = function () { + var e = this; + e.config; + e.elemColorBox.on("click", function () { + e.renderPicker(), k(a)[0] && (e.val(), e.side()) + }) + }, s.on(i, function (e) { + var i, o, t; + n.thisId && (i = l.getThis(n.thisId)) && (o = i.config, t = i.elemColorBox.find("." + C), k(e.target).hasClass(c) || k(e.target).parents("." + c)[0] || k(e.target).hasClass(a.replace(/\./g, "")) || k(e.target).parents(a)[0] || i.elemPicker && (i.color ? (e = Y(F(i.color)), i.select(e.h, e.s, e.b)) : i.elemColorBox.find("." + w).removeClass(x).addClass(P), t[0].style.background = i.color || "", "function" == typeof o.cancel && o.cancel(i.color), i.removePicker())) + }), L.on("resize", function () { + if (n.thisId) { + var e = l.getThis(n.thisId); + if (e) return !(!e.elemPicker || !k(a)[0]) && void e.position() + } + }), l.that = {}, l.getThis = function (e) { + var i = l.that[e]; + return i || o.error(e ? t + " instance with ID '" + e + "' not found" : "ID argument required"), i + }, n.render = function (e) { + e = new d(e); + return l.call(e) + }, e(t, n) +}); +layui.define("jquery", function (t) { + "use strict"; + var u = layui.$, d = (layui.hint(), layui.device()), c = "element", r = "layui-this", h = "layui-show", + o = ".layui-tab-title", i = function () { + this.config = {} + }, y = (i.prototype.set = function (t) { + return u.extend(!0, this.config, t), this + }, i.prototype.on = function (t, i) { + return layui.onevent.call(this, c, t, i) + }, i.prototype.tabAdd = function (t, i) { + var a, e = u(".layui-tab[lay-filter=" + t + "]"), l = e.children(o), n = l.children(".layui-tab-bar"), + e = e.children(".layui-tab-content"), s = "" + (i.title || "unnaming") + ""; + return n[0] ? n.before(s) : l.append(s), e.append('
              ' + (i.content || "") + "
              "), i.change && this.tabChange(t, i.id), l.data("LAY_TAB_CHANGE", i.change), C.tabAuto(i.change ? "change" : null), this + }, i.prototype.tabDelete = function (t, i) { + t = u(".layui-tab[lay-filter=" + t + "]").children(o).find('>li[lay-id="' + i + '"]'); + return C.tabDelete(null, t), this + }, i.prototype.tabChange = function (t, i) { + t = u(".layui-tab[lay-filter=" + t + "]").children(o).find('>li[lay-id="' + i + '"]'); + return C.tabClick.call(t[0], {liElem: t}), this + }, i.prototype.tab = function (a) { + a = a || {}, e.on("click", a.headerElem, function (t) { + var i = u(this).index(); + C.tabClick.call(this, {index: i, options: a}) + }) + }, i.prototype.progress = function (t, i) { + var a = "layui-progress", t = u("." + a + "[lay-filter=" + t + "]").find("." + a + "-bar"), + a = t.find("." + a + "-text"); + return t.css("width", function () { + return /^.+\/.+$/.test(i) ? 100 * new Function("return " + i)() + "%" : i + }).attr("lay-percent", i), a.text(i), this + }, ".layui-nav"), f = "layui-nav-item", p = "layui-nav-bar", b = "layui-nav-tree", v = "layui-nav-child", + m = "layui-nav-more", g = "layui-anim layui-anim-upbit", C = { + tabClick: function (t) { + var i = (t = t || {}).options || {}, a = t.liElem || u(this), + e = i.headerElem ? a.parent() : a.parents(".layui-tab").eq(0), + i = i.bodyElem ? u(i.bodyElem) : e.children(".layui-tab-content").children(".layui-tab-item"), + l = a.find("a"), l = "javascript:;" !== l.attr("href") && "_blank" === l.attr("target"), + n = "string" == typeof a.attr("lay-unselect"), s = e.attr("lay-filter"), + t = "index" in t ? t.index : a.parent().children("li").index(a); + l || n || (a.addClass(r).siblings().removeClass(r), i.eq(t).addClass(h).siblings().removeClass(h)), layui.event.call(this, c, "tab(" + s + ")", { + elem: e, + index: t + }) + }, tabDelete: function (t, i) { + var i = i || u(this).parent(), a = i.parent().children("li").index(i), e = i.closest(".layui-tab"), + l = e.children(".layui-tab-content").children(".layui-tab-item"), n = e.attr("lay-filter"); + i.hasClass(r) && (i.next()[0] && i.next().is("li") ? C.tabClick.call(i.next()[0], {index: a + 1}) : i.prev()[0] && i.prev().is("li") && C.tabClick.call(i.prev()[0], null, a - 1)), i.remove(), l.eq(a).remove(), setTimeout(function () { + C.tabAuto() + }, 50), layui.event.call(this, c, "tabDelete(" + n + ")", {elem: e, index: a}) + }, tabAuto: function (l) { + var n = "layui-tab-more", s = "layui-tab-bar", o = "layui-tab-close", c = this; + u(".layui-tab").each(function () { + var t, i = u(this), a = i.children(".layui-tab-title"), + e = (i.children(".layui-tab-content").children(".layui-tab-item"), 'lay-stope="tabmore"'), + e = u(''); + c === window && d.ie, i.attr("lay-allowclose") && a.find("li").each(function () { + var t, i = u(this); + i.find("." + o)[0] || ((t = u('')).on("click", C.tabDelete), i.append(t)) + }), "string" != typeof i.attr("lay-unauto") && (a.prop("scrollWidth") > a.outerWidth() + 1 || a.find("li").length && a.height() > (t = a.find("li").eq(0).height()) + t / 2 ? ("change" === l && a.data("LAY_TAB_CHANGE") && a.addClass(n), a.find("." + s)[0] || (a.append(e), i.attr("overflow", ""), e.on("click", function (t) { + var i = a.hasClass(n); + a[i ? "removeClass" : "addClass"](n) + }))) : (a.find("." + s).remove(), i.removeAttr("overflow"))) + }) + }, hideTabMore: function (t) { + var i = u(".layui-tab-title"); + !0 !== t && "tabmore" === u(t.target).attr("lay-stope") || (i.removeClass("layui-tab-more"), i.find(".layui-tab-bar").attr("title", "")) + }, clickThis: function () { + var t = u(this), i = t.closest(y), a = i.attr("lay-filter"), e = t.parent(), l = t.siblings("." + v), + n = "string" == typeof e.attr("lay-unselect"); + if ("javascript:;" !== t.attr("href") && "_blank" === t.attr("target") || n || l[0] || (i.find("." + r).removeClass(r), e.addClass(r)), i.hasClass(b)) { + var n = f + "ed", s = !e.hasClass(n), o = function () { + u(this).css({display: ""}), i.children("." + p).css({opacity: 0}) + }; + if (l.is(":animated")) return; + l.removeClass(g), l[0] && (s ? (l.slideDown(200, o), e.addClass(n)) : (e.removeClass(n), l.show().slideUp(200, o)), "string" != typeof i.attr("lay-accordion") && "all" !== i.attr("lay-shrink") || ((s = e.siblings("." + n)).removeClass(n), s.children("." + v).show().stop().slideUp(200, o))) + } + layui.event.call(this, c, "nav(" + a + ")", t) + }, collapse: function () { + var t = u(this), i = t.find(".layui-colla-icon"), a = t.siblings(".layui-colla-content"), + e = t.parents(".layui-collapse").eq(0), l = e.attr("lay-filter"), n = "none" === a.css("display"); + "string" == typeof e.attr("lay-accordion") && ((e = e.children(".layui-colla-item").children("." + h)).siblings(".layui-colla-title").children(".layui-colla-icon").html(""), e.removeClass(h)), a[n ? "addClass" : "removeClass"](h), i.html(n ? "" : ""), layui.event.call(this, c, "collapse(" + l + ")", { + title: t, + content: a, + show: n + }) + } + }, a = (i.prototype.render = i.prototype.init = function (t, i) { + var a = i ? '[lay-filter="' + i + '"]' : "", i = { + tab: function () { + C.tabAuto.call({}) + }, nav: function () { + var s = {}, o = {}, c = {}, r = "layui-nav-title"; + u(y + a).each(function (t) { + var i = u(this), a = u(''), e = i.find("." + f); + i.find("." + p)[0] || (i.append(a), (i.hasClass(b) ? e.find("dd,>." + r) : e).on("mouseenter", function () { + !function (t, i, a) { + var e, l = u(this), n = l.find("." + v); + i.hasClass(b) ? n[0] || (e = l.children("." + r), t.css({ + top: l.offset().top - i.offset().top, + height: (e[0] ? e : l).outerHeight(), + opacity: 1 + })) : (n.addClass(g), n.hasClass("layui-nav-child-c") && n.css({left: -(n.outerWidth() - l.width()) / 2}), n[0] ? t.css({ + left: t.position().left + t.width() / 2, + width: 0, + opacity: 0 + }) : t.css({ + left: l.position().left + parseFloat(l.css("marginLeft")), + top: l.position().top + l.height() - t.height() + }), s[a] = setTimeout(function () { + t.css({width: n[0] ? 0 : l.width(), opacity: n[0] ? 0 : 1}) + }, d.ie && d.ie < 10 ? 0 : 200), clearTimeout(c[a]), "block" === n.css("display") && clearTimeout(o[a]), o[a] = setTimeout(function () { + n.addClass(h), l.find("." + m).addClass(m + "d") + }, 300)) + }.call(this, a, i, t) + }).on("mouseleave", function () { + i.hasClass(b) ? a.css({ + height: 0, + opacity: 0 + }) : (clearTimeout(o[t]), o[t] = setTimeout(function () { + i.find("." + v).removeClass(h), i.find("." + m).removeClass(m + "d") + }, 300)) + }), i.on("mouseleave", function () { + clearTimeout(s[t]), c[t] = setTimeout(function () { + i.hasClass(b) || a.css({width: 0, left: a.position().left + a.width() / 2, opacity: 0}) + }, 200) + })), e.find("a").each(function () { + var t = u(this); + t.parent(); + t.siblings("." + v)[0] && !t.children("." + m)[0] && t.append(''), t.off("click", C.clickThis).on("click", C.clickThis) + }) + }) + }, breadcrumb: function () { + u(".layui-breadcrumb" + a).each(function () { + var t = u(this), i = "lay-separator", a = t.attr(i) || "/", e = t.find("a"); + e.next("span[" + i + "]")[0] || (e.each(function (t) { + t !== e.length - 1 && u(this).after("" + a + "") + }), t.css("visibility", "visible")) + }) + }, progress: function () { + var e = "layui-progress"; + u("." + e + a).each(function () { + var t = u(this), i = t.find(".layui-progress-bar"), a = i.attr("lay-percent"); + i.css("width", function () { + return /^.+\/.+$/.test(a) ? 100 * new Function("return " + a)() + "%" : a + }), t.attr("lay-showpercent") && setTimeout(function () { + i.html('' + a + "") + }, 350) + }) + }, collapse: function () { + u(".layui-collapse" + a).each(function () { + u(this).find(".layui-colla-item").each(function () { + var t = u(this), i = t.find(".layui-colla-title"), + t = "none" === t.find(".layui-colla-content").css("display"); + i.find(".layui-colla-icon").remove(), i.append('' + (t ? "" : "") + ""), i.off("click", C.collapse).on("click", C.collapse) + }) + }) + } + }; + return i[t] ? i[t]() : layui.each(i, function (t, i) { + i() + }) + }, new i), e = u(document); + u(function () { + a.render() + }), e.on("click", ".layui-tab-title li", C.tabClick), u(window).on("resize", C.tabAuto), t(c, a) +}); +layui.define(["lay", "layer"], function (e) { + "use strict"; + var x = layui.$, a = layui.lay, i = layui.layer, b = layui.device(), t = "upload", r = "layui_" + t + "_index", + o = { + config: {}, index: layui[t] ? layui[t].index + 1e4 : 0, set: function (e) { + var i = this; + return i.config = x.extend({}, i.config, e), i + }, on: function (e, i) { + return layui.onevent.call(this, t, e, i) + } + }, l = function () { + var i = this, e = i.config.id; + return { + upload: function (e) { + i.upload.call(i, e) + }, reload: function (e) { + i.reload.call(i, e) + }, config: (l.that[e] = i).config + } + }, u = "layui-upload-file", f = "layui-upload-form", F = "layui-upload-iframe", w = "layui-upload-choose", + L = "UPLOADING", j = function (e) { + var i = this; + i.index = ++o.index, i.config = x.extend({}, i.config, o.config, e), i.render() + }; + j.prototype.config = { + accept: "images", + exts: "", + auto: !0, + bindAction: "", + url: "", + force: "", + field: "file", + acceptMime: "", + method: "post", + data: {}, + drag: !0, + size: 0, + number: 0, + multiple: !1, + text: { + "cross-domain": "Cross-domain requests are not supported", + "data-format-error": "Please return JSON data format", + "check-error": "", + error: "", + "limit-number": null, + "limit-size": null + } + }, j.prototype.reload = function (e) { + var i = this; + i.config = x.extend({}, i.config, e), i.render(!0) + }, j.prototype.render = function (e) { + var i = this, t = i.config, n = x(t.elem); + return 1 < n.length ? (layui.each(n, function () { + o.render(x.extend({}, t, {elem: this})) + }), i) : (x.extend(t, a.options(n[0], {attr: n.attr("lay-data") ? "lay-data" : null})), !e && n[0] && n.data(r) ? (e = l.getThis(n.data(r))) ? e.reload(t) : void 0 : (t.elem = x(t.elem), t.bindAction = x(t.bindAction), t.id = "id" in t ? t.id : n.attr("id") || i.index, i.file(), void i.events())) + }, j.prototype.file = function () { + var e = this, i = e.config, + t = e.elemFile = x(['"].join("")), + n = i.elem.next(); + (n.hasClass(u) || n.hasClass(f)) && n.remove(), b.ie && b.ie < 10 && i.elem.wrap('
              '), e.isFile() ? (e.elemFile = i.elem, i.field = i.elem[0].name) : i.elem.after(t), b.ie && b.ie < 10 && e.initIE() + }, j.prototype.initIE = function () { + var t, e = this.config, + i = x(''), + n = x(['
              ', "
              "].join("")); + x("#" + F)[0] || x("body").append(i), e.elem.next().hasClass(f) || (this.elemFile.wrap(n), e.elem.next("." + f).append((t = [], layui.each(e.data, function (e, i) { + i = "function" == typeof i ? i() : i, t.push('') + }), t.join("")))) + }, j.prototype.msg = function (e) { + return i.msg(e, {icon: 2, shift: 6}) + }, j.prototype.isFile = function () { + var e = this.config.elem[0]; + if (e) return "input" === e.tagName.toLocaleLowerCase() && "file" === e.type + }, j.prototype.preview = function (n) { + window.FileReader && layui.each(this.chooseFiles, function (e, i) { + var t = new FileReader; + t.readAsDataURL(i), t.onload = function () { + n && n(e, i, this.result) + } + }) + }, j.prototype.upload = function (e, i) { + var t, n, a, o, u = this, f = u.config, c = f.text || {}, l = u.elemFile[0], s = function () { + return e || u.files || u.chooseFiles || l.files + }, r = function () { + var a = 0, o = 0, l = s(), r = function () { + f.multiple && a + o === u.fileLength && "function" == typeof f.allDone && f.allDone({ + total: u.fileLength, + successful: a, + failed: o + }) + }, t = function (t) { + var n = new FormData, i = function (e) { + t.unified ? layui.each(l, function (e, i) { + delete i[L] + }) : delete e[L] + }; + if (layui.each(f.data, function (e, i) { + i = "function" == typeof i ? t.unified ? i() : i(t.index, t.file) : i, n.append(e, i) + }), t.unified) layui.each(l, function (e, i) { + i[L] || (i[L] = !0, n.append(f.field, i)) + }); else { + if (t.file[L]) return; + n.append(f.field, t.file), t.file[L] = !0 + } + var e = { + url: f.url, + type: "post", + data: n, + dataType: f.dataType || "json", + contentType: !1, + processData: !1, + headers: f.headers || {}, + success: function (e) { + f.unified ? a += u.fileLength : a++, p(t.index, e), r(t.index), i(t.file) + }, + error: function (e) { + f.unified ? o += u.fileLength : o++, u.msg(c.error || ["Upload failed, please try again.", "status: " + (e.status || "") + " - " + (e.statusText || "error")].join("
              ")), m(t.index), r(t.index), i(t.file) + } + }; + "function" == typeof f.progress && (e.xhr = function () { + var e = x.ajaxSettings.xhr(); + return e.upload.addEventListener("progress", function (e) { + var i; + e.lengthComputable && (i = Math.floor(e.loaded / e.total * 100), f.progress(i, (f.item || f.elem)[0], e, t.index)) + }), e + }), x.ajax(e) + }; + f.unified ? t({unified: !0, index: 0}) : layui.each(l, function (e, i) { + t({index: e, file: i}) + }) + }, d = function () { + var n = x("#" + F); + u.elemFile.parent().submit(), clearInterval(j.timer), j.timer = setInterval(function () { + var e, i = n.contents().find("body"); + try { + e = i.text() + } catch (t) { + u.msg(c["cross-domain"]), clearInterval(j.timer), m() + } + e && (clearInterval(j.timer), i.html(""), p(0, e)) + }, 30) + }, p = function (e, i) { + if (u.elemFile.next("." + w).remove(), l.value = "", "json" === f.force && "object" != typeof i) try { + i = JSON.parse(i) + } catch (t) { + return i = {}, u.msg(c["data-format-error"]) + } + "function" == typeof f.done && f.done(i, e || 0, function (e) { + u.upload(e) + }) + }, m = function (e) { + f.auto && (l.value = ""), "function" == typeof f.error && f.error(e || 0, function (e) { + u.upload(e) + }) + }, h = f.exts, g = (n = [], layui.each(e || u.chooseFiles, function (e, i) { + n.push(i.name) + }), n), v = { + preview: function (e) { + u.preview(e) + }, upload: function (e, i) { + var t = {}; + t[e] = i, u.upload(t) + }, pushFile: function () { + return u.files = u.files || {}, layui.each(u.chooseFiles, function (e, i) { + u.files[e] = i + }), u.files + }, resetFile: function (e, i, t) { + i = new File([i], t); + u.files = u.files || {}, u.files[e] = i + } + }, y = { + file: "\u6587\u4ef6", + images: "\u56fe\u7247", + video: "\u89c6\u9891", + audio: "\u97f3\u9891" + }[f.accept] || "\u6587\u4ef6", g = 0 === g.length ? l.value.match(/[^\/\\]+\..+/g) || [] : g; + if (0 !== g.length) { + switch (f.accept) { + case"file": + layui.each(g, function (e, i) { + if (h && !RegExp(".\\.(" + h + ")$", "i").test(escape(i))) return t = !0 + }); + break; + case"video": + layui.each(g, function (e, i) { + if (!RegExp(".\\.(" + (h || "avi|mp4|wma|rmvb|rm|flash|3gp|flv") + ")$", "i").test(escape(i))) return t = !0 + }); + break; + case"audio": + layui.each(g, function (e, i) { + if (!RegExp(".\\.(" + (h || "mp3|wav|mid") + ")$", "i").test(escape(i))) return t = !0 + }); + break; + default: + layui.each(g, function (e, i) { + if (!RegExp(".\\.(" + (h || "jpg|png|gif|bmp|jpeg|svg") + ")$", "i").test(escape(i))) return t = !0 + }) + } + if (t) return u.msg(c["check-error"] || "\u9009\u62e9\u7684" + y + "\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"), l.value = ""; + if ("choose" !== i && !f.auto || (f.choose && f.choose(v), "choose" !== i)) { + if (u.fileLength = (a = 0, y = s(), layui.each(y, function () { + a++ + }), a), f.number && u.fileLength > f.number) return u.msg("function" == typeof c["limit-number"] ? c["limit-number"](f, u.fileLength) : "\u540c\u65f6\u6700\u591a\u53ea\u80fd\u4e0a\u4f20: " + f.number + " \u4e2a\u6587\u4ef6
              \u60a8\u5f53\u524d\u5df2\u7ecf\u9009\u62e9\u4e86: " + u.fileLength + " \u4e2a\u6587\u4ef6"); + if (0 < f.size && !(b.ie && b.ie < 10)) if (layui.each(s(), function (e, i) { + i.size > 1024 * f.size && (i = 1 <= (i = f.size / 1024) ? i.toFixed(2) + "MB" : f.size + "KB", l.value = "", o = i) + }), o) return u.msg("function" == typeof c["limit-size"] ? c["limit-size"](f, o) : "\u6587\u4ef6\u5927\u5c0f\u4e0d\u80fd\u8d85\u8fc7 " + o); + if (!f.before || !1 !== f.before(v)) b.ie ? (9 < b.ie ? r : d)() : r() + } + } + }, j.prototype.events = function () { + var n = this, a = n.config, o = function (e) { + n.chooseFiles = {}, layui.each(e, function (e, i) { + var t = (new Date).getTime(); + n.chooseFiles[t + "-" + e] = i + }) + }, l = function (e, i) { + var t = n.elemFile, + e = (a.item || a.elem, 1 < e.length ? e.length + "\u4e2a\u6587\u4ef6" : (e[0] || {}).name || t[0].value.match(/[^\/\\]+\..+/g) || []); + t.next().hasClass(w) && t.next().remove(), n.upload(null, "choose"), n.isFile() || a.choose || t.after('' + e + "") + }; + a.elem.off("upload.start").on("upload.start", function () { + var e = x(this); + n.config.item = e, n.elemFile[0].click() + }), b.ie && b.ie < 10 || a.elem.off("upload.over").on("upload.over", function () { + x(this).attr("lay-over", "") + }).off("upload.leave").on("upload.leave", function () { + x(this).removeAttr("lay-over") + }).off("upload.drop").on("upload.drop", function (e, i) { + var t = x(this), i = i.originalEvent.dataTransfer.files || []; + t.removeAttr("lay-over"), o(i), a.auto ? n.upload() : l(i) + }), n.elemFile.on("change", function () { + var e = this.files || []; + 0 !== e.length && (o(e), a.auto ? n.upload() : l(e)) + }), a.bindAction.off("upload.action").on("upload.action", function () { + n.upload() + }), a.elem.data(r) || (a.elem.on("click", function () { + n.isFile() || x(this).trigger("upload.start") + }), a.drag && a.elem.on("dragover", function (e) { + e.preventDefault(), x(this).trigger("upload.over") + }).on("dragleave", function (e) { + x(this).trigger("upload.leave") + }).on("drop", function (e) { + e.preventDefault(), x(this).trigger("upload.drop", e) + }), a.bindAction.on("click", function () { + x(this).trigger("upload.action") + }), a.elem.data(r, a.id)) + }, l.that = {}, l.getThis = function (e) { + var i = l.that[e]; + return i || hint.error(e ? t + " instance with ID '" + e + "' not found" : "ID argument required"), i + }, o.render = function (e) { + e = new j(e); + return l.call(e) + }, e(t, o) +}); +layui.define(["lay", "layer", "util"], function (e) { + "use strict"; + var C = layui.$, h = layui.layer, d = layui.util, l = layui.hint(), w = (layui.device(), "form"), o = ".layui-form", + N = "layui-this", T = "layui-hide", $ = "layui-disabled", t = function () { + this.config = { + verify: { + required: function (e) { + if (!/[\S]+/.test(e)) return "\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a" + }, phone: function (e) { + if (e && !/^1\d{10}$/.test(e)) return "\u624b\u673a\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e" + }, email: function (e) { + if (e && !/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e)) return "\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e" + }, url: function (e) { + if (e && !/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/.test(e)) return "\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e" + }, number: function (e) { + if (e && isNaN(e)) return "\u53ea\u80fd\u586b\u5199\u6570\u5b57" + }, date: function (e) { + if (e && !/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/.test(e)) return "\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e" + }, identity: function (e) { + if (e && !/(^\d{15}$)|(^\d{17}(x|X|\d)$)/.test(e)) return "\u8eab\u4efd\u8bc1\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e" + } + }, autocomplete: null + } + }, i = (t.prototype.set = function (e) { + return C.extend(!0, this.config, e), this + }, t.prototype.verify = function (e) { + return C.extend(!0, this.config.verify, e), this + }, t.prototype.getFormElem = function (e) { + return C(o + (e ? '[lay-filter="' + e + '"]' : "")) + }, t.prototype.on = function (e, t) { + return layui.onevent.call(this, w, e, t) + }, t.prototype.val = function (e, i) { + return this.getFormElem(e).each(function (e, t) { + var a = C(this); + layui.each(i, function (e, t) { + var i, e = a.find('[name="' + e + '"]'); + e[0] && ("checkbox" === (i = e[0].type) ? e[0].checked = t : "radio" === i ? e.each(function () { + this.checked = this.value == t + }) : e.val(t)) + }) + }), r.render(null, e), this.getValue(e) + }, t.prototype.getValue = function (e, t) { + t = t || this.getFormElem(e); + var a = {}, n = {}, e = t.find("input,select,textarea"); + return layui.each(e, function (e, t) { + var i; + C(this); + t.name = (t.name || "").replace(/^\s*|\s*&/, ""), t.name && (/^.*\[\]$/.test(t.name) && (i = t.name.match(/^(.*)\[\]$/g)[0], a[i] = 0 | a[i], i = t.name.replace(/^(.*)\[\]$/, "$1[" + a[i]++ + "]")), /^(checkbox|radio)$/.test(t.type) && !t.checked || (n[i || t.name] = t.value)) + }), n + }, t.prototype.render = function (e, t) { + var i = this.config, a = C(o + (t ? '[lay-filter="' + t + '"]' : "")), n = { + input: function (e) { + var e = e || a.find("input,textarea"), + t = (i.autocomplete && e.attr("autocomplete", i.autocomplete), function (e, t) { + var i = e.val(), a = Number(i), n = Number(e.attr("step")) || 1, l = Number(e.attr("min")), + r = Number(e.attr("max")), s = Number(e.attr("lay-precision")), + o = "click" !== t && "" === i, c = "init" === t; + isNaN(a) || ("click" === t && (a = !!C(this).index() ? a - n : a + n), t = function (e) { + return ((e.toString().match(/\.(\d+$)/) || [])[1] || "").length + }, s = 0 <= s ? s : Math.max(t(n), t(i)), o || (c || r <= (a = a <= l ? l : a) && (a = r), s && (a = a.toFixed(s)), e.val(a)), e[(a < l || r < a) && !o ? "addClass" : "removeClass"]("layui-input-number-out-of-range"), c) || ((n = { + increment: e.next().find(".layui-icon-up"), + decrement: e.next().find(".layui-icon-down") + }).increment[r <= a && !o ? "addClass" : "removeClass"]($), n.decrement[a <= l && !o ? "addClass" : "removeClass"]($)) + }); + a.find("input[lay-affix],textarea[lay-affix]").each(function () { + var r = C(this), s = r.attr("lay-affix"), o = "layui-input-wrap", c = "layui-input-suffix", + u = "layui-input-affix", e = r.is("[disabled]") || r.is("[readonly]"), d = function (e, t) { + (e = C(e))[0] && e[C.trim(t) ? "removeClass" : "addClass"](T) + }, n = function (i) { + i = C.extend({}, f[s] || {value: s}, i, lay.options(r[0])); + var a, t = C('
              '), e = layui.isArray(i.value) ? i.value : [i.value], + e = C((a = [], layui.each(e, function (e, t) { + a.push('') + }), a.join(""))), + n = (t.append(e), i.split && t.addClass("layui-input-split"), i.className && t.addClass(i.className), r.next("." + u)), + l = (n[0] && n.remove(), r.parent().hasClass(o) || r.wrap('
              '), r.next("." + c)); + l[0] ? ((n = l.find("." + u))[0] && n.remove(), l.prepend(t), r.css("padding-right", function () { + return (r.closest(".layui-input-group")[0] ? 0 : l.outerWidth()) + t.outerWidth() + })) : (t.addClass(c), r.after(t)), "auto" === i.show && d(t, r.val()), "function" == typeof i.init && i.init.call(this, r, i), r.on("input propertychange", function () { + var e = this.value; + "auto" === i.show && d(t, e) + }), r.on("blur", function () { + "function" == typeof i.blur && i.blur.call(this, r, i) + }), e.on("click", function () { + var e = r.attr("lay-filter"); + C(this).hasClass($) || ("function" == typeof i.click && i.click.call(this, r, i), layui.event.call(this, w, "input-affix(" + e + ")", { + elem: r[0], + affix: s, + options: i + })) + }) + }, f = { + eye: { + value: "eye-invisible", click: function (e, t) { + var i = "LAY_FORM_INPUT_AFFIX_SHOW", a = e.data(i); + e.attr("type", a ? "password" : "text").data(i, !a), n({value: a ? "eye-invisible" : "eye"}) + } + }, + clear: { + value: "clear", click: function (e) { + e.val("").focus(), d(C(this).parent(), null) + }, show: "auto", disabled: e + }, + number: { + value: ["up", "down"], + split: !0, + className: "layui-input-number", + disabled: r.is("[disabled]"), + init: function (e) { + t.call(this, e, "init") + }, + click: function (e) { + t.call(this, e, "click") + }, + blur: function (e) { + t.call(this, e, "blur") + } + } + }; + n() + }) + }, select: function (e) { + var p, c = "\u8bf7\u9009\u62e9", m = "layui-form-select", g = "layui-select-title", + x = "layui-select-none", b = "", e = e || a.find("select"), k = function (e, t) { + C(e.target).parent().hasClass(g) && !t || (C("." + m).removeClass(m + "ed " + m + "up"), p && b && p.val(b)), p = null + }, u = function (a, e, t) { + var s, r, i, n, o, l, c = C(this), u = a.find("." + g), d = u.find("input"), f = a.find("dl"), + h = f.children("dd"), y = f.children("dt"), v = this.selectedIndex; + e || (r = c.attr("lay-search"), i = function () { + var e = a.offset().top + a.outerHeight() + 5 - F.scrollTop(), t = f.outerHeight(); + v = c[0].selectedIndex, a.addClass(m + "ed"), h.removeClass(T), y.removeClass(T), s = null, h.removeClass(N), 0 <= v && h.eq(v).addClass(N), e + t > F.height() && t <= e && a.addClass(m + "up"), o() + }, n = function (e) { + a.removeClass(m + "ed " + m + "up"), d.blur(), s = null, e || l(d.val(), function (e) { + var t = c[0].selectedIndex; + e && (b = C(c[0].options[t]).html(), 0 === t && b === d.attr("placeholder") && (b = ""), d.val(b || "")) + }) + }, o = function () { + var e, t, i = f.children("dd." + N); + i[0] && (e = i.position().top, t = f.height(), i = i.height(), t < e && f.scrollTop(e + f.scrollTop() - t + i - 5), e < 0) && f.scrollTop(e + f.scrollTop() - 5) + }, u.on("click", function (e) { + (a.hasClass(m + "ed") ? n : (k(e, !0), i))(), f.find("." + x).remove() + }), u.find(".layui-edge").on("click", function () { + d.focus() + }), d.on("keyup", function (e) { + 9 === e.keyCode && i() + }).on("keydown", function (l) { + var e = l.keyCode, r = (9 === e && n(), function (a, n) { + l.preventDefault(); + var e = function () { + var e = f.children("dd." + N); + if (f.children("dd." + T)[0] && "next" === a) { + var t = f.children("dd:not(." + T + ",." + $ + ")"), i = t.eq(0).index(); + if (0 <= i && i < e.index() && !t.hasClass(N)) return t.eq(0).prev()[0] ? t.eq(0).prev() : f.children(":last") + } + return n && n[0] ? n : s && s[0] ? s : e + }(), t = e[a](), i = e[a]("dd:not(." + T + ")"); + return t[0] ? (s = e[a](), i[0] && !i.hasClass($) || !s[0] ? (i.addClass(N).siblings().removeClass(N), void o()) : r(a, s)) : s = null + }); + 38 === e && r("prev"), 40 === e && r("next"), 13 === e && (l.preventDefault(), f.children("dd." + N).trigger("click")) + }).on("paste", function () { + i() + }), l = function (a, e, n) { + var l = 0, t = (layui.each(h, function () { + var e = C(this), t = e.text(), + i = ("cs" !== r && (t = t.toLowerCase(), a = a.toLowerCase()), -1 === t.indexOf(a)); + ("" === a || "blur" === n ? a !== t : i) && l++, "keyup" === n && e[i ? "addClass" : "removeClass"](T) + }), "keyup" === n && layui.each(y, function () { + var e = C(this), t = e.nextUntil("dt").filter("dd"); + e[t.length == t.filter("." + T).length ? "addClass" : "removeClass"](T) + }), l === h.length); + return e(t), t + }, t && (e = "input propertychange", lay.ie && ("10" === lay.ie || "11" === lay.ie) && d.attr("placeholder") && (e = "keyup"), d.on(e, function (e) { + var t = this.value, e = e.keyCode; + if (9 === e || 13 === e || 37 === e || 38 === e || 39 === e || 40 === e) return !1; + l(t, function (e) { + e ? f.find("." + x)[0] || f.append('

              \u65e0\u5339\u914d\u9879

              ') : f.find("." + x).remove() + }, "keyup"), "" === t && (c.val(""), f.find("." + N).removeClass(N), (c[0].options[0] || {}).value || f.children("dd:eq(0)").addClass(N), f.find("." + x).remove()), o() + }).on("blur", function (e) { + var t = c[0].selectedIndex; + p = d, b = C(c[0].options[t]).text(), 0 === t && b === d.attr("placeholder") && (b = ""), setTimeout(function () { + l(d.val(), function (e) { + b || d.val("") + }, "blur") + }, 200) + })), h.on("click", function () { + var e = C(this), t = e.attr("lay-value"), i = c.attr("lay-filter"); + return e.hasClass($) || (e.hasClass("layui-select-tips") ? d.val("") : (d.val(e.text()), e.addClass(N)), e.siblings().removeClass(N), c.val(t).removeClass("layui-form-danger"), layui.event.call(this, w, "select(" + i + ")", { + elem: c[0], + value: t, + othis: a + }), n(!0)), !1 + }), a.find("dl>dt").on("click", function (e) { + return !1 + }), C(document).off("click", k).on("click", k)) + }; + e.each(function (e, t) { + var i = C(this), a = i.next("." + m), n = this.disabled, l = t.value, + r = C(t.options[t.selectedIndex]), t = t.options[0]; + if ("string" == typeof i.attr("lay-ignore")) return i.show(); + var s, o = "string" == typeof i.attr("lay-search"), t = t && !t.value && t.innerHTML || c, + r = C(['
              ', '
              ', '', '
              ', '
              ', (t = i.find("*"), s = [], layui.each(t, function (e, t) { + var i = t.tagName.toLowerCase(); + 0 !== e || t.value || "optgroup" === i ? s.push("optgroup" === i ? "
              " + t.label + "
              " : '
              ' + C.trim(t.innerHTML) + "
              ") : s.push('
              ' + C.trim(t.innerHTML || c) + "
              ") + }), 0 === s.length && s.push('
              \u6ca1\u6709\u9009\u9879
              '), s.join("") + "
              "), "
              "].join("")); + a[0] && a.remove(), i.after(r), u.call(this, r, n, o) + }) + }, checkbox: function (e) { + var o = { + checkbox: ["layui-form-checkbox", "layui-form-checked", "checkbox"], + "switch": ["layui-form-switch", "layui-form-onswitch", "switch"], + SUBTRA: "layui-icon-indeterminate" + }, e = e || a.find("input[type=checkbox]"); + e.each(function (e, t) { + var i = C(this), a = i.attr("lay-skin") || "primary", + n = d.escape(C.trim(t.title || (t.title = i.attr("lay-text") || ""))), l = this.disabled, + r = o[a] || o.checkbox, s = i.next("." + r[0]); + if (s[0] && s.remove(), i.next("[lay-checkbox]")[0] && (n = i.next().html() || ""), n = "switch" === a ? n.split("|") : [n], "string" == typeof i.attr("lay-ignore")) return i.show(); + l = C(['
              ", (s = { + checkbox: [n[0] ? "
              " + n[0] + "
              " : "primary" === a ? "" : "
              ", ''].join(""), + "switch": "
              " + ((t.checked ? n[0] : n[1]) || "") + "
              " + })[a] || s.checkbox, "
              "].join("")); + i.after(l), function (a, n) { + var l = C(this); + a.on("click", function () { + var e = C(this), t = l.attr("lay-filter"), + e = e.next("*[lay-checkbox]")[0] ? e.next().html() : l.attr("title") || "", + i = l.attr("lay-skin") || "primary", e = "switch" === i ? e.split("|") : [e]; + l[0].disabled || (l[0].indeterminate && (l[0].indeterminate = !1, a.find("." + o.SUBTRA).removeClass(o.SUBTRA).addClass("layui-icon-ok")), l[0].checked ? (l[0].checked = !1, a.removeClass(n[1]), "switch" === i && a.children("div").html(e[1])) : (l[0].checked = !0, a.addClass(n[1]), "switch" === i && a.children("div").html(e[0])), layui.event.call(l[0], w, n[2] + "(" + t + ")", { + elem: l[0], + value: l[0].value, + othis: a + })) + }) + }.call(this, l, r) + }) + }, radio: function (e) { + var r = "layui-form-radio", s = ["layui-icon-radio", "layui-icon-circle"], + e = e || a.find("input[type=radio]"); + e.each(function (e, t) { + var i = C(this), a = i.next("." + r), n = this.disabled; + if ("string" == typeof i.attr("lay-ignore")) return i.show(); + a[0] && a.remove(); + n = C(['
              ', '', "
              " + (a = d.escape(t.title || ""), a = i.next("[lay-radio]")[0] ? i.next().html() : a) + "
              ", "
              "].join("")); + i.after(n), function (a) { + var n = C(this), l = "layui-anim-scaleSpring"; + a.on("click", function () { + var e = n[0].name, t = n.parents(o), i = n.attr("lay-filter"), + e = t.find("input[name=" + e.replace(/(\.|#|\[|\])/g, "\\$1") + "]"); + n[0].disabled || (layui.each(e, function () { + var e = C(this).next("." + r); + this.checked = !1, e.removeClass(r + "ed"), e.children(".layui-icon").removeClass(l + " " + s[0]).addClass(s[1]) + }), n[0].checked = !0, a.addClass(r + "ed"), a.children(".layui-icon").addClass(l + " " + s[0]), layui.event.call(n[0], w, "radio(" + i + ")", { + elem: n[0], + value: n[0].value, + othis: a + })) + }) + }.call(this, n) + }) + } + }, t = function () { + layui.each(n, function (e, t) { + t() + }) + }; + return "object" === layui.type(e) ? C(e).is(o) ? (a = C(e), t()) : e.each(function (e, t) { + var i = C(t); + i.closest(o).length && ("SELECT" === t.tagName ? n.select(i) : "INPUT" === t.tagName && ("checkbox" === (t = t.type) || "radio" === t ? n[t](i) : n.input(i))) + }) : e ? n[e] ? n[e]() : l.error('\u4e0d\u652f\u6301\u7684 "' + e + '" \u8868\u5355\u6e32\u67d3') : t(), this + }, t.prototype.validate = function (e) { + var u, d = this.config.verify, f = "layui-form-danger"; + return !(e = C(e))[0] || (e.attr("lay-verify") !== undefined || !1 !== this.validate(e.find("*[lay-verify]"))) && (layui.each(e, function (e, r) { + var s = C(this), t = (s.attr("lay-verify") || "").split("|"), o = s.attr("lay-vertype"), + c = C.trim(s.val()); + if (s.removeClass(f), layui.each(t, function (e, t) { + var i = "", a = d[t]; + if (a) { + var n = "function" == typeof a ? i = a(c, r) : !a[0].test(c), + l = "select" === r.tagName.toLowerCase() || /^(checkbox|radio)$/.test(r.type), i = i || a[1]; + if ("required" === t && (i = s.attr("lay-reqtext") || i), n) return "tips" === o ? h.tips(i, "string" != typeof s.attr("lay-ignore") && l ? s.next() : s, {tips: 1}) : "alert" === o ? h.alert(i, { + title: "\u63d0\u793a", + shadeClose: !0 + }) : /\b(string|number)\b/.test(typeof i) && h.msg(i, {icon: 5, shift: 6}), setTimeout(function () { + (l ? s.next().find("input") : r).focus() + }, 7), s.addClass(f), u = !0 + } + }), u) return u + }), !u) + }, t.prototype.submit = function (e, t) { + var i = {}, a = C(this), e = "string" == typeof e ? e : a.attr("lay-filter"), + n = this.getFormElem ? this.getFormElem(e) : a.parents(o).eq(0), l = n.find("*[lay-verify]"); + return !!r.validate(l) && (i = r.getValue(null, n), l = { + elem: this.getFormElem ? window.event && window.event.target : this, + form: (this.getFormElem ? n : a.parents("form"))[0], + field: i + }, "function" == typeof t && t(l), layui.event.call(this, w, "submit(" + e + ")", l)) + }), r = new t, t = C(document), F = C(window); + C(function () { + r.render() + }), t.on("reset", o, function () { + var e = C(this).attr("lay-filter"); + setTimeout(function () { + r.render(null, e) + }, 50) + }), t.on("submit", o, i).on("click", "*[lay-submit]", i), e(w, r) +}); +layui.define(["lay", "laytpl", "laypage", "form", "util"], function (n) { + "use strict"; + var f = layui.$, r = layui.lay, m = layui.laytpl, O = layui.laypage, p = layui.layer, v = layui.form, + g = layui.util, x = layui.hint(), b = layui.device(), k = { + config: { + checkName: "LAY_CHECKED", + indexName: "LAY_INDEX", + numbersName: "LAY_NUM", + disabledName: "LAY_DISABLED" + }, cache: {}, index: layui.table ? layui.table.index + 1e4 : 0, set: function (e) { + return this.config = f.extend({}, this.config, e), this + }, on: function (e, t) { + return layui.onevent.call(this, N, e, t) + } + }, w = function () { + var a = this, e = a.config, i = e.id || e.index; + return { + config: e, reload: function (e, t) { + a.reload.call(a, e, t) + }, reloadData: function (e, t) { + k.reloadData(i, e, t) + }, setColsWidth: function () { + a.setColsWidth.call(a) + }, resize: function () { + a.resize.call(a) + } + } + }, C = function (e) { + var t = w.that[e]; + return t || x.error(e ? "The table instance with ID '" + e + "' not found" : "ID argument required"), t || null + }, l = function (e) { + var t = w.config[e]; + return t || x.error(e ? "The table instance with ID '" + e + "' not found" : "ID argument required"), t || null + }, T = function (e) { + var t = this.config || {}, a = (e = e || {}).item3, i = e.content; + "numbers" === a.type && (i = e.tplData[k.config.numbersName]); + ("escape" in a ? a : t).escape && (i = g.escape(i)); + t = e.text && a.exportTemplet || a.templet || a.toolbar; + return t && (i = "function" == typeof t ? t.call(a, e.tplData, e.obj) : m(function (e) { + try { + return r(e).html() + } catch (t) { + return e + } + }(t) || String(i)).render(f.extend({LAY_COL: a}, e.tplData))), e.text ? f("
              " + i + "
              ").text() : i + }, N = "table", t = ".layui-table", R = "layui-hide", y = "layui-hide-v", h = "layui-none", D = "layui-table-view", + o = ".layui-table-header", L = ".layui-table-body", u = ".layui-table-fixed-r", I = ".layui-table-pageview", + E = ".layui-table-sort", A = "layui-table-checked", _ = "layui-table-edit", M = "layui-table-hover", + P = "laytable-cell-group", W = "layui-table-col-special", j = "layui-table-tool-panel", + H = "layui-table-expanded", S = "LAY_TABLE_MOVE_DICT", e = function (e) { + return ['', "", "{{# layui.each(d.data.cols, function(i1, item1){ }}", "", "{{# layui.each(item1, function(i2, item2){ }}", '{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}', '{{# if(item2.fixed === "right"){ right = true; } }}', (e = e || {}).fixed && "right" !== e.fixed ? '{{# if(item2.fixed && item2.fixed !== "right"){ }}' : "right" === e.fixed ? '{{# if(item2.fixed === "right"){ }}' : "", "{{# var isSort = !(item2.colGroup) && item2.sort; }}", '", e.fixed ? "{{# }; }}" : "", "{{# }); }}", "", "{{# }); }}", "", "
              ', '
              ', '{{# if(item2.type === "checkbox"){ }}', '', "{{# } else { }}", '{{-item2.title||""}}', "{{# if(isSort){ }}", '', "{{# } }}", "{{# } }}", "
              ", "
              "].join("") + }, + a = ['', "", "
              "].join(""), + s = [, "{{# if(d.data.toolbar){ }}", '
              ', '
              ', '
              ', "
              ", "{{# } }}", '
              ', "{{# if(d.data.loading){ }}", '
              ', '', "
              ", "{{# } }}", "{{# var left, right; }}", '
              ', e(), "
              ", '
              ', a, "
              ", "{{# if(left){ }}", '
              ', '
              ', e({fixed: !0}), "
              ", '
              ', a, "
              ", "
              ", "{{# }; }}", "{{# if(right){ }}", '
              ', '
              ', e({fixed: "right"}), '
              ', "
              ", '
              ', a, "
              ", "
              ", "{{# }; }}", "
              ", "{{# if(d.data.totalRow){ }}", '
              ', '', '', "
              ", "
              ", "{{# } }}", '
              ', '
              ', "
              "].join(""), + d = f(window), F = f(document), i = function (e) { + this.index = ++k.index, this.config = f.extend({}, this.config, k.config, e), this.render() + }, c = (i.prototype.config = { + limit: 10, + loading: !0, + escape: !0, + cellMinWidth: 60, + cellMaxWidth: Number.MAX_VALUE, + editTrigger: "click", + defaultToolbar: ["filter", "exports", "print"], + defaultContextmenu: !0, + autoSort: !0, + text: {none: "\u65e0\u6570\u636e"}, + cols: [] + }, i.prototype.render = function (e) { + var t = this, a = t.config, + i = (a.elem = f(a.elem), a.where = a.where || {}, a.id = "id" in a ? a.id : a.elem.attr("id") || t.index); + if (w.that[i] = t, (w.config[i] = a).request = f.extend({ + pageName: "page", + limitName: "limit" + }, a.request), a.response = f.extend({ + statusName: "code", + statusCode: 0, + msgName: "msg", + dataName: "data", + totalRowName: "totalRow", + countName: "count" + }, a.response), null !== a.page && "object" == typeof a.page && (a.limit = a.page.limit || a.limit, a.limits = a.page.limits || a.limits, t.page = a.page.curr = a.page.curr || 1, delete a.page.elem, delete a.page.jump), !a.elem[0]) return t; + if (a.elem.attr("lay-filter") || a.elem.attr("lay-filter", a.id), "reloadData" === e) return t.pullData(t.page, {type: "reloadData"}); + a.index = t.index, t.key = a.id || a.index, t.setInit(), a.height && /^full-.+$/.test(a.height) ? (t.fullHeightGap = a.height.split("-")[1], a.height = d.height() - (parseFloat(t.fullHeightGap) || 0)) : a.height && /^#\w+\S*-.+$/.test(a.height) ? (i = a.height.split("-"), t.parentHeightGap = i.pop(), t.parentDiv = i.join("-"), a.height = f(t.parentDiv).height() - (parseFloat(t.parentHeightGap) || 0)) : "function" == typeof a.height && (t.customHeightFunc = a.height, a.height = t.customHeightFunc()); + var l, e = a.elem, i = e.next("." + D), n = t.elem = f("
              "); + n.addClass((l = [D, D + "-" + t.index, "layui-form", "layui-border-box"], a.className && l.push(a.className), l.join(" "))).attr({ + "lay-filter": "LAY-TABLE-FORM-DF-" + t.index, + "lay-id": a.id, + style: (l = [], a.width && l.push("width:" + a.width + "px;"), l.join("")) + }).html(m(s, {open: "{{", close: "}}"}).render({ + data: a, + index: t.index + })), t.renderStyle(), i[0] && i.remove(), e.after(n), t.layTool = n.find(".layui-table-tool"), t.layBox = n.find(".layui-table-box"), t.layHeader = n.find(o), t.layMain = n.find(".layui-table-main"), t.layBody = n.find(L), t.layFixed = n.find(".layui-table-fixed"), t.layFixLeft = n.find(".layui-table-fixed-l"), t.layFixRight = n.find(u), t.layTotal = n.find(".layui-table-total"), t.layPage = n.find(".layui-table-page"), t.renderToolbar(), t.renderPagebar(), t.fullSize(), t.pullData(t.page), t.events() + }, i.prototype.initOpts = function (e) { + this.config; + e.checkbox && (e.type = "checkbox"), e.space && (e.type = "space"), e.type || (e.type = "normal"), "normal" !== e.type && (e.unresize = !0, e.width = e.width || { + checkbox: 50, + radio: 50, + space: 30, + numbers: 60 + }[e.type]) + }, i.prototype.setInit = function (e) { + var l, a, d = this, r = d.config; + if (r.clientWidth = r.width || (l = function (e) { + var t, a = (e = e || r.elem.parent()).width(); + try { + t = "none" === e.css("display") + } catch (i) { + } + return !e[0] || a && !t ? a : l(e.parent()) + })(), "width" === e) return r.clientWidth; + r.height = r.maxHeight || r.height, r.css && -1 === r.css.indexOf(D) && (a = r.css.split("}"), layui.each(a, function (e, t) { + t && (a[e] = "." + D + "-" + d.index + " " + t) + }), r.css = a.join("}")); + var c = function (a, e, i, l) { + var n, o; + l ? (l.key = [r.index, a, i].join("-"), l.colspan = l.colspan || 0, l.rowspan = l.rowspan || 0, d.initOpts(l), (n = a + (parseInt(l.rowspan) || 1)) < r.cols.length ? (l.colGroup = !0, o = 0, layui.each(r.cols[n], function (e, t) { + t.HAS_PARENT || 1 <= o && o == (l.colspan || 1) || (t.HAS_PARENT = !0, t.parentKey = [r.index, a, i].join("-"), o += parseInt(1 < t.colspan ? t.colspan : 1), c(n, r.cols[n], e, t)) + })) : l.colGroup = !1, l.hide = l.hide && !l.colGroup || !1) : e.splice(i, 1) + }; + layui.each(r.cols, function (a, i) { + layui.each(i, function (e, t) { + a ? delete t.HAS_PARENT : c(a, i, e, t) + }) + }) + }, i.prototype.renderStyle = function () { + var e, a, t, i, l = this.config, n = this.index, o = []; + layui.each(l.cols, function (a, e) { + layui.each(e, function (e, t) { + e = [n, a, e].join("-"), t = ["width: ", t.width || l.cellMinWidth, "px"].join(""); + o.push(".laytable-cell-" + e + "{" + t + "}") + }) + }), (e = l.lineStyle) && (a = ".layui-table-view-" + n + " .layui-table-body .layui-table tr", t = e.split(";"), i = "none", layui.each(t, function (e, t) { + if ("height" === (t = t.split(":"))[0]) return t = parseFloat(t[1]), isNaN(t) || (i = t - 1 + "px"), !0 + }), layui.each(["{" + e + "}", ".layui-table-cell{height: auto; max-height: " + i + "; white-space: normal; text-overflow: clip;}", "> td:hover > .layui-table-cell{overflow: auto;}"].concat(b.ie ? [".layui-table-edit{height: " + i + ";}", "td[data-edit]:hover:after{height: " + i + ";}"] : []), function (e, t) { + t && o.push(a + " " + t) + })), l.css && o.push(l.css), r.style({target: this.elem[0], text: o.join(""), id: "DF-table-" + n}) + }, i.prototype.renderToolbar = function () { + var e = this.config, + t = ['
              ', '
              ', '
              '].join(""), + a = this.layTool.find(".layui-table-tool-temp"), + i = ("default" === e.toolbar ? a.html(t) : "string" == typeof e.toolbar && (t = f(e.toolbar).html() || "") && a.html(m(t).render(e)), { + filter: { + title: "\u7b5b\u9009\u5217", + layEvent: "LAYTABLE_COLS", + icon: "layui-icon-cols" + }, + exports: {title: "\u5bfc\u51fa", layEvent: "LAYTABLE_EXPORT", icon: "layui-icon-export"}, + print: {title: "\u6253\u5370", layEvent: "LAYTABLE_PRINT", icon: "layui-icon-print"} + }), l = []; + "object" == typeof e.defaultToolbar && layui.each(e.defaultToolbar, function (e, t) { + t = "string" == typeof t ? i[t] : t; + t && l.push('
              ') + }), this.layTool.find(".layui-table-tool-self").html(l.join("")) + }, i.prototype.renderPagebar = function () { + var e, t = this.config, a = this.layPagebar = f('
              '); + t.pagebar && ((e = f(t.pagebar).html() || "") && a.append(m(e).render(t)), this.layPage.append(a)) + }, i.prototype.setParentCol = function (e, t) { + var a = this.config, i = this.layHeader.find('th[data-key="' + t + '"]'), l = parseInt(i.attr("colspan")) || 0; + i[0] && (t = t.split("-"), t = a.cols[t[1]][t[2]], e ? l-- : l++, i.attr("colspan", l), i[l ? "removeClass" : "addClass"](R), t.colspan2 = l, t.hide = l < 1, a = i.data("parentkey")) && this.setParentCol(e, a) + }, i.prototype.setColsPatch = function () { + var a = this, e = a.config; + layui.each(e.cols, function (e, t) { + layui.each(t, function (e, t) { + t.hide && a.setParentCol(t.hide, t.parentKey) + }) + }) + }, i.prototype.setGroupWidth = function (i) { + var e, l = this; + l.config.cols.length <= 1 || ((e = l.layHeader.find((i ? "th[data-key=" + i.data("parentkey") + "]>" : "") + "." + P)).css("width", 0), layui.each(e.get().reverse(), function () { + var e = f(this), t = e.parent().data("key"), a = 0; + l.layHeader.eq(0).find("th[data-parentkey=" + t + "]").width(function (e, t) { + f(this).hasClass(R) || 0 < t && (a += t) + }), a && e.css("max-width", a - 1), i && e.parent().data("parentkey") && l.setGroupWidth(e.parent()) + }), e.css("width", "auto")) + }, i.prototype.setColsWidth = function () { + var t, a, n = this, d = n.config, i = 0, r = 0, c = 0, s = 0, u = n.setInit("width"), + e = (n.eachCols(function (e, t) { + t.hide || i++ + }), u = u - ("line" === d.skin || "nob" === d.skin ? 2 : i + 1) - n.getScrollWidth(n.layMain[0]) - 1, function (o) { + layui.each(d.cols, function (e, n) { + layui.each(n, function (e, t) { + var a = 0, i = t.minWidth || d.cellMinWidth, l = t.maxWidth || d.cellMaxWidth; + t ? t.colGroup || t.hide || (o ? c && c < i ? (r--, a = i) : c && l < c && (r--, a = l) : (a = t.width || 0, /\d+%$/.test(a) ? l < (a = (a = Math.floor(parseFloat(a) / 100 * u)) < i ? i : a) && (a = l) : a ? "normal" === t.type && (a < i && (t.width = a = i), l < a) && (t.width = a = l) : (t.width = a = 0, r++)), t.hide && (a = 0), s += a) : n.splice(e, 1) + }) + }), s < u && 0 < r && (c = (u - s) / r) + }), l = (e(), e(!0), n.autoColNums = r = 0 < r ? r : 0, n.eachCols(function (e, a) { + var i = a.minWidth || d.cellMinWidth, l = a.maxWidth || d.cellMaxWidth; + a.colGroup || a.hide || (0 === a.width ? n.cssRules(a.key, function (e) { + e.style.width = Math.floor(c < i ? i : l < c ? l : c) + "px" + }) : /\d+%$/.test(a.width) ? n.cssRules(a.key, function (e) { + var t = Math.floor(parseFloat(a.width) / 100 * u); + e.style.width = (t = l < (t = t < i ? i : t) ? l : t) + "px" + }) : n.cssRules(a.key, function (e) { + e.style.width = a.width + "px" + })) + }), n.layMain.width() - n.getScrollWidth(n.layMain[0]) - n.layMain.children("table").outerWidth()); + 0 < n.autoColNums && -i <= l && l <= i && (e = (a = (t = function (e) { + return !(e = e || n.layHeader.eq(0).find("thead > tr:first-child > th:last-child")).data("field") && e.prev()[0] ? t(e.prev()) : e + })()).data("key"), n.cssRules(e, function (e) { + var t = e.style.width || a.outerWidth(); + e.style.width = parseFloat(t) + l + "px", 0 < n.layMain.height() - n.layMain.prop("clientHeight") && (e.style.width = parseFloat(e.style.width) - 1 + "px") + })), n.setGroupWidth(), n.layMain.find("tbody").is(":empty") ? (e = n.layHeader.first().children("table").width(), n.layMain.find("table").width(e)) : n.layMain.find("table").width("auto"), n.loading(!0) + }, i.prototype.resize = function () { + this.layMain && (this.fullSize(), this.setColsWidth(), this.scrollPatch()) + }, i.prototype.reload = function (e, t, a) { + var i = this; + e = e || {}, delete i.haveInit, layui.each(e, function (e, t) { + "array" === layui.type(t) && delete i.config[e] + }), i.config = f.extend(t, {}, i.config, e), "reloadData" !== a && (layui.each(i.config.cols, function (e, t) { + layui.each(t, function (e, t) { + delete t.colspan2 + }) + }), delete i.config.HAS_SET_COLS_PATCH), i.render(a) + }, i.prototype.errorView = function (e) { + var t = this, a = t.layMain.find("." + h), e = f('
              ' + (e || "Error") + "
              "); + a[0] && (t.layNone.remove(), a.remove()), t.layFixed.addClass(R), t.layMain.find("tbody").html(""), t.layMain.append(t.layNone = e), t.layTotal.addClass(y), t.layPage.find(I).addClass(y), k.cache[t.key] = [], t.syncCheckAll(), t.renderForm(), t.setColsWidth() + }, i.prototype.page = 1, i.prototype.pullData = function (a, t) { + var e, i, l = this, n = l.config, + o = (n.HAS_SET_COLS_PATCH || l.setColsPatch(), n.HAS_SET_COLS_PATCH = !0, n.request), d = n.response, + r = function () { + "object" == typeof n.initSort && l.sort({ + field: n.initSort.field, + type: n.initSort.type, + reloadType: t.type + }) + }, c = function (e, t) { + l.setColsWidth(), "function" == typeof n.done && n.done(e, a, e[d.countName], t) + }; + t = t || {}, "function" == typeof n.before && n.before(n), l.startTime = (new Date).getTime(), t.renderData ? ((e = {})[d.dataName] = k.cache[l.key], e[d.countName] = n.url ? "object" === layui.type(n.page) ? n.page.count : e[d.dataName].length : n.data.length, "object" == typeof n.totalRow && (e[d.totalRowName] = f.extend({}, l.totalRow)), l.renderData({ + res: e, + curr: a, + count: e[d.countName], + type: t.type, + sort: !0 + }), c(e, "renderData")) : n.url ? (i = {}, n.page && (i[o.pageName] = a, i[o.limitName] = n.limit), o = f.extend(i, n.where), n.contentType && 0 == n.contentType.indexOf("application/json") && (o = JSON.stringify(o)), l.loading(), f.ajax({ + type: n.method || "get", + url: n.url, + contentType: n.contentType, + data: o, + dataType: n.dataType || "json", + jsonpCallback: n.jsonpCallback, + headers: n.headers || {}, + complete: "function" == typeof n.complete ? n.complete : undefined, + success: function (e) { + (e = "function" == typeof n.parseData ? n.parseData(e) || e : e)[d.statusName] != d.statusCode ? l.errorView(e[d.msgName] || '\u8fd4\u56de\u7684\u6570\u636e\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6b63\u786e\u7684\u6210\u529f\u72b6\u6001\u7801\u5e94\u4e3a\uff1a"' + d.statusName + '": ' + d.statusCode) : (l.totalRow = e[d.totalRowName], l.renderData({ + res: e, + curr: a, + count: e[d.countName], + type: t.type + }), r(), n.time = (new Date).getTime() - l.startTime + " ms"), c(e) + }, + error: function (e, t) { + l.errorView("\u8bf7\u6c42\u5f02\u5e38\uff0c\u9519\u8bef\u63d0\u793a\uff1a" + t), "function" == typeof n.error && n.error(e, t) + } + })) : "array" === layui.type(n.data) && (e = {}, i = a * n.limit - n.limit, o = n.data.concat(), e[d.dataName] = n.page ? o.splice(i, n.limit) : o, e[d.countName] = n.data.length, "object" == typeof n.totalRow && (e[d.totalRowName] = f.extend({}, n.totalRow)), l.totalRow = e[d.totalRowName], l.renderData({ + res: e, + curr: a, + count: e[d.countName], + type: t.type + }), r(), c(e)) + }, i.prototype.eachCols = function (e) { + return k.eachCols(null, e, this.config.cols), this + }, i.prototype.col = function (e) { + try { + return e = e.split("-"), this.config.cols[e[1]][e[2]] || {} + } catch (t) { + return x.error(t), {} + } + }, i.prototype.getTrHtml = function (a, l, n, e) { + var s = this, u = s.config, y = e && e.trs || [], h = e && e.trs_fixed || [], p = e && e.trs_fixed_r || []; + return n = n || 1, layui.each(a, function (e, o) { + var i = [], d = [], r = [], c = e + u.limit * (n - 1) + 1; + if ("object" != typeof o) { + a[e] = o = {LAY_KEY: o}; + try { + k.cache[s.key][e] = o + } catch (t) { + } + } + "array" === layui.type(o) && 0 === o.length || (o[k.config.numbersName] = c, l || (o[k.config.indexName] = e), s.eachCols(function (e, l) { + var t, e = l.field || e, a = l.key, n = o[e]; + n !== undefined && null !== n || (n = ""), l.colGroup || (e = ['', '
              " + function () { + var e, t = f.extend(!0, {LAY_COL: l}, o), a = k.config.checkName, i = k.config.disabledName; + switch (l.type) { + case"checkbox": + return ''; + case"radio": + return ''; + case"numbers": + return c + } + return l.toolbar ? m(f(l.toolbar).html() || "").render(t) : T.call(s, { + item3: l, + content: n, + tplData: t + }) + }(), "
              "].join(""), i.push(e), l.fixed && "right" !== l.fixed && d.push(e), "right" === l.fixed && r.push(e)) + }), e = ['data-index="' + e + '"'], o[k.config.checkName] && e.push('class="' + A + '"'), e = e.join(" "), y.push("" + i.join("") + ""), h.push("" + d.join("") + ""), p.push("" + r.join("") + "")) + }), {trs: y, trs_fixed: h, trs_fixed_r: p} + }, k.getTrHtml = function (e, t) { + e = C(e); + return e.getTrHtml(t, null, e.page) + }, i.prototype.renderData = function (e) { + var a = this, i = a.config, t = e.res, l = e.curr, n = a.count = e.count, o = e.sort, + d = t[i.response.dataName] || [], t = t[i.response.totalRowName], r = [], c = [], s = [], u = function () { + if (!o && a.sortKey) return a.sort({ + field: a.sortKey.field, + type: a.sortKey.sort, + pull: !0, + reloadType: e.type + }); + a.getTrHtml(d, o, l, { + trs: r, + trs_fixed: c, + trs_fixed_r: s + }), "fixed" === i.scrollPos && "reloadData" === e.type || a.layBody.scrollTop(0), "reset" === i.scrollPos && a.layBody.scrollLeft(0), a.layMain.find("." + h).remove(), a.layMain.find("tbody").html(r.join("")), a.layFixLeft.find("tbody").html(c.join("")), a.layFixRight.find("tbody").html(s.join("")), a.syncCheckAll(), a.renderForm(), a.fullSize(), a.haveInit ? a.scrollPatch() : setTimeout(function () { + a.scrollPatch() + }, 50), a.haveInit = !0, p.close(a.tipsIndex) + }; + return k.cache[a.key] = d, a.layTotal[0 == d.length ? "addClass" : "removeClass"](y), a.layPage[i.page || i.pagebar ? "removeClass" : "addClass"](R), a.layPage.find(I)[!i.page || 0 == n || 0 === d.length && 1 == l ? "addClass" : "removeClass"](y), 0 === d.length ? a.errorView(i.text.none) : (a.layFixLeft.removeClass(R), o ? u() : (u(), a.renderTotal(d, t), a.layTotal && a.layTotal.removeClass(R), void (i.page && (i.page = f.extend({ + elem: "layui-table-page" + i.index, + count: n, + limit: i.limit, + limits: i.limits || [10, 20, 30, 40, 50, 60, 70, 80, 90], + groups: 3, + layout: ["prev", "page", "next", "skip", "count", "limit"], + prev: '', + next: '', + jump: function (e, t) { + t || (a.page = e.curr, i.limit = e.limit, a.pullData(e.curr)) + } + }, i.page), i.page.count = n, O.render(i.page))))) + }, k.renderData = function (e) { + e = C(e); + e && e.pullData(e.page, {renderData: !0, type: "reloadData"}) + }, i.prototype.renderTotal = function (e, o) { + var d, r = this, c = r.config, s = {}; + c.totalRow && (layui.each(e, function (e, i) { + "array" === layui.type(i) && 0 === i.length || r.eachCols(function (e, t) { + var e = t.field || e, a = i[e]; + t.totalRow && (s[e] = (s[e] || 0) + (parseFloat(a) || 0)) + }) + }), r.dataTotal = [], d = [], r.eachCols(function (e, t) { + var a, e = t.field || e, i = o && o[t.field], l = "totalRowDecimals" in t ? t.totalRowDecimals : 2, + l = s[e] ? parseFloat(s[e] || 0).toFixed(l) : "", + l = (a = t.totalRowText || "", (n = {LAY_COL: t})[e] = l, n = t.totalRow && T.call(r, { + item3: t, + content: l, + tplData: n + }) || a, i || n), n = (t.field && r.dataTotal.push({ + field: t.field, + total: f("
              " + l + "
              ").text() + }), ['', '
              " + ("string" == typeof (a = t.totalRow || c.totalRow) ? m(a).render(f.extend({ + TOTAL_NUMS: i || s[e], + TOTAL_ROW: o || {}, + LAY_COL: t + }, t)) : l), "
              "].join("")); + d.push(n) + }), e = r.layTotal.find(".layui-table-patch"), r.layTotal.find("tbody").html("" + d.join("") + (e.length ? e.get(0).outerHTML : "") + "")) + }, i.prototype.getColElem = function (e, t) { + return e.eq(0).find(".laytable-cell-" + t + ":eq(0)") + }, i.prototype.renderForm = function (e) { + this.config; + var t = this.elem.attr("lay-filter"); + v.render(e, t) + }, i.prototype.renderFormByElem = function (a) { + layui.each(["input", "select"], function (e, t) { + v.render(a.find(t)) + }) + }, i.prototype.syncCheckAll = function () { + var a, e = this, i = e.config, t = e.layHeader.find('input[name="layTableCheckbox"]'), l = k.checkStatus(e.key); + t[0] && (a = l.isAll, e.eachCols(function (e, t) { + "checkbox" === t.type && (t[i.checkName] = a) + }), t.prop({checked: l.isAll, indeterminate: !l.isAll && l.data.length}), v.render(t)) + }, i.prototype.setRowActive = function (e, t, a) { + this.config; + e = this.layBody.find('tr[data-index="' + e + '"]'); + if (t = t || "layui-table-click", a) return e.removeClass(t); + e.addClass(t), e.siblings("tr").removeClass(t) + }, i.prototype.setRowChecked = function (i) { + var e = this, l = e.config, n = "all" === i.index, o = "array" === layui.type(i.index), + d = (t = e.layBody.find("tr"), n ? t : t.filter(o ? function () { + var e = f(this).data("index"); + return -1 !== i.index.indexOf(e) + } : '[data-index="' + i.index + '"]')), t = (i = f.extend({type: "checkbox"}, i), k.cache[e.key]), + a = "checked" in i, r = function (e) { + return "radio" === i.type || (a ? i.checked : !e) + }, t = (layui.each(t, function (e, t) { + var a; + "array" === layui.type(t) || t[l.disabledName] || (n || (o ? -1 !== i.index.indexOf(e) : Number(i.index) === e) ? (a = t[l.checkName] = r(t[l.checkName]), (e = d.filter('[data-index="' + e + '"]'))[a ? "addClass" : "removeClass"](A), "radio" === i.type && e.siblings().removeClass(A)) : "radio" === i.type && delete t[l.checkName]) + }), d.find('input[lay-type="' + ({ + radio: "layTableRadio", + checkbox: "layTableCheckbox" + }[i.type] || "checkbox") + '"]:not(:disabled)')), c = t.last(), s = c.closest(u); + ("radio" === i.type && s.hasClass(R) ? t.first() : t).prop("checked", r(c.prop("checked"))), e.syncCheckAll(), e.renderForm(i.type) + }, i.prototype.sort = function (l) { + var e, t = this, a = {}, i = t.config, n = i.elem.attr("lay-filter"), o = k.cache[t.key]; + "string" == typeof (l = l || {}).field && (d = l.field, t.layHeader.find("th").each(function (e, t) { + var a = f(this), i = a.data("field"); + if (i === l.field) return l.field = a, d = i, !1 + })); + try { + var d = d || l.field.data("field"), r = l.field.data("key"); + if (t.sortKey && !l.pull && d === t.sortKey.field && l.type === t.sortKey.sort) return; + var c = t.layHeader.find("th .laytable-cell-" + r).find(E); + t.layHeader.find("th").find(E).removeAttr("lay-sort"), c.attr("lay-sort", l.type || null), t.layFixed.find("th") + } catch (s) { + x.error("Table modules: sort field '" + d + "' not matched") + } + t.sortKey = { + field: d, + sort: l.type + }, i.autoSort && ("asc" === l.type ? e = layui.sort(o, d, null, !0) : "desc" === l.type ? e = layui.sort(o, d, !0, !0) : (e = layui.sort(o, k.config.indexName, null, !0), delete t.sortKey, delete i.initSort)), a[i.response.dataName] = e || o, t.renderData({ + res: a, + curr: t.page, + count: t.count, + sort: !0, + type: l.reloadType + }), l.fromEvent && (i.initSort = { + field: d, + type: l.type + }, layui.event.call(l.field, N, "sort(" + n + ")", f.extend({config: i}, i.initSort))) + }, i.prototype.loading = function (e) { + var t = this; + t.config.loading && (e ? (t.layInit && t.layInit.remove(), delete t.layInit, t.layBox.find(".layui-table-init").remove()) : (t.layInit = f(['
              ', '', "
              "].join("")), t.layBox.append(t.layInit))) + }, i.prototype.cssRules = function (t, a) { + var e = this.elem.children("style")[0]; + r.getStyleRules(e, function (e) { + if (e.selectorText === ".laytable-cell-" + t) return a(e), !0 + }) + }, i.prototype.fullSize = function () { + var e, a, i = this, t = i.config, l = t.height; + i.fullHeightGap ? (l = d.height() - i.fullHeightGap) < 135 && (l = 135) : i.parentDiv && i.parentHeightGap ? (l = f(i.parentDiv).height() - i.parentHeightGap) < 135 && (l = 135) : i.customHeightFunc && (l = i.customHeightFunc()) < 135 && (l = 135), 1 < t.cols.length && (e = i.layFixed.find(o).find("th"), a = i.layHeader.first(), layui.each(e, function (e, t) { + (t = f(t)).height(a.find('th[data-key="' + t.attr("data-key") + '"]').height() + "px") + })), l && (e = parseFloat(l) - (i.layHeader.outerHeight() || 39), t.toolbar && (e -= i.layTool.outerHeight() || 51), t.totalRow && (e -= i.layTotal.outerHeight() || 40), (t.page || t.pagebar) && (e -= i.layPage.outerHeight() || 43), t.maxHeight ? layui.each({ + elem: l, + layMain: e + }, function (e, t) { + i[e].css({height: "auto", maxHeight: t + "px"}) + }) : i.layMain.outerHeight(e)) + }, i.prototype.getScrollWidth = function (e) { + var t; + return e ? t = e.offsetWidth - e.clientWidth : ((e = document.createElement("div")).style.width = "100px", e.style.height = "100px", e.style.overflowY = "scroll", document.body.appendChild(e), t = e.offsetWidth - e.clientWidth, document.body.removeChild(e)), t + }, i.prototype.scrollPatch = function () { + var e = this, t = e.layMain.children("table"), a = e.layMain.width() - e.layMain.prop("clientWidth"), + i = e.layMain.height() - e.layMain.prop("clientHeight"), + l = (e.getScrollWidth(e.layMain[0]), t.outerWidth() - e.layMain.width()), n = function (e) { + var t; + a && i ? (e = e.eq(0)).find(".layui-table-patch")[0] || ((t = f('
              ')).find("div").css({width: a}), e.find("tr").append(t)) : e.find(".layui-table-patch").remove() + }; + n(e.layHeader), n(e.layTotal); + n = e.layMain.height() - i; + e.layFixed.find(L).css("height", t.height() >= n ? n : "auto").scrollTop(e.layMain.scrollTop()), e.layFixRight[k.cache[e.key] && k.cache[e.key].length && 0 < l ? "removeClass" : "addClass"](R), e.layFixRight.css("right", a - 1) + }, i.prototype.updateRow = function (e, i) { + var r = this, c = ".layui-table-cell", e = "array" === layui.type(e) ? e : [e], s = k.cache[r.key] || []; + layui.each(e, function (e, t) { + var a, l, n, o, d; + a = t.index, l = t.data, n = t.related, o = s[a] || {}, d = r.layBody.find('tr[data-index="' + a + '"]'), layui.each(l, function (e, t) { + o[e] = t, i && i(e, t) + }), r.eachCols(function (e, t) { + var a, i = String(t.field || e); + (i in l || ("function" == typeof n ? n(i, e) : n) && (t.templet || t.toolbar)) && (i = (e = d.children('td[data-field="' + i + '"]')).children(c), a = o[t.field], i.html(T.call(r, { + item3: t, + content: a, + tplData: f.extend({LAY_COL: t}, o) + })), e.data("content", a), r.renderFormByElem(i)) + }) + }) + }, k.updateRow = function (e, t) { + return C(e).updateRow(t) + }, i.prototype.events = function () { + var c = this, s = c.config, u = s.elem.attr("lay-filter"), e = c.layHeader.find("th"), y = ".layui-table-cell", + o = f("body"), d = {}, r = (c.layTool.on("click", "*[lay-event]", function (e) { + var a, i = f(this), t = i.attr("lay-event"), l = k.cache[s.id], n = function (e) { + var t = f(e.list), a = f('
                '); + a.html(t), s.height && a.css("max-height", s.height - (c.layTool.outerHeight() || 50)), i.find("." + j)[0] || i.append(a), c.renderForm(), a.on("click", function (e) { + layui.stope(e) + }), e.done && e.done(a, t) + }; + switch (layui.stope(e), F.trigger("table.tool.panel.remove"), p.close(c.tipsIndex), t) { + case"LAYTABLE_COLS": + n({ + list: (a = [], c.eachCols(function (e, t) { + t.field && "normal" == t.type && a.push('
              • " + (t.fieldTitle || t.title || t.field) + "
              • ").text()) + '" lay-filter="LAY_TABLE_TOOL_COLS">') + }), a.join("")), done: function () { + v.on("checkbox(LAY_TABLE_TOOL_COLS)", function (e) { + var e = f(e.elem), t = this.checked, a = e.data("key"), i = c.col(a), l = i.hide, + e = e.data("parentkey"); + i.key && (i.hide = !t, c.elem.find('*[data-key="' + a + '"]')[t ? "removeClass" : "addClass"](R), l != i.hide && c.setParentCol(!t, e), c.resize(), layui.event.call(this, N, "colToggled(" + u + ")", { + col: i, + config: s + })) + }) + } + }); + break; + case"LAYTABLE_EXPORT": + if (!l.length) return p.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e", this, {tips: 3}); + b.ie ? p.tips("\u5bfc\u51fa\u529f\u80fd\u4e0d\u652f\u6301 IE\uff0c\u8bf7\u7528 Chrome \u7b49\u9ad8\u7ea7\u6d4f\u89c8\u5668\u5bfc\u51fa", this, {tips: 3}) : n({ + list: ['
              • \u5bfc\u51fa csv \u683c\u5f0f\u6587\u4ef6
              • ', '
              • \u5bfc\u51fa xls \u683c\u5f0f\u6587\u4ef6
              • '].join(""), + done: function (e, t) { + t.on("click", function () { + var e = f(this).data("type"); + k.exportFile.call(c, s.id, null, e) + }) + } + }); + break; + case"LAYTABLE_PRINT": + if (!l.length) return p.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e", this, {tips: 3}); + var o = window.open("about:blank", "_blank"), + d = [""].join(""), + r = f(c.layHeader.html()); + r.append(c.layMain.find("table").html()), r.append(c.layTotal.find("table").html()), r.find("th.layui-table-patch").remove(), r.find("thead>tr>th." + W).filter(function (e, t) { + return !f(t).children("." + P).length + }).remove(), r.find("tbody>tr>td." + W).remove(), o.document.write(d + r.prop("outerHTML")), o.document.close(), layui.device("edg").edg ? (o.onafterprint = o.close, o.print()) : (o.print(), o.close()) + } + layui.event.call(this, N, "toolbar(" + u + ")", f.extend({event: t, config: s}, {})) + }), c.layHeader.on("click", "*[lay-event]", function (e) { + var t = f(this), a = t.attr("lay-event"), t = t.closest("th").data("key"), t = c.col(t); + layui.event.call(this, N, "colTool(" + u + ")", f.extend({event: a, config: s, col: t}, {})) + }), c.layPagebar.on("click", "*[lay-event]", function (e) { + var t = f(this).attr("lay-event"); + layui.event.call(this, N, "pagebar(" + u + ")", f.extend({event: t, config: s}, {})) + }), e.on("mousemove", function (e) { + var t = f(this), a = t.offset().left, e = e.clientX - a; + t.data("unresize") || w.eventMoveElem || (d.allowResize = t.width() - e <= 10, o.css("cursor", d.allowResize ? "col-resize" : "")) + }).on("mouseleave", function () { + f(this); + w.eventMoveElem || o.css("cursor", "") + }).on("mousedown", function (e) { + var t, a = f(this); + d.allowResize && (t = a.data("key"), e.preventDefault(), d.offset = [e.clientX, e.clientY], c.cssRules(t, function (e) { + var t = e.style.width || a.outerWidth(); + d.rule = e, d.ruleWidth = parseFloat(t), d.minWidth = a.data("minwidth") || s.cellMinWidth, d.maxWidth = a.data("maxwidth") || s.cellMaxWidth + }), a.data(S, d), w.eventMoveElem = a) + }), w.docEvent || F.on("mousemove", function (e) { + var t, a; + w.eventMoveElem && (t = w.eventMoveElem.data(S) || {}, w.eventMoveElem.data("resizing", 1), e.preventDefault(), t.rule) && (e = t.ruleWidth + e.clientX - t.offset[0], a = w.eventMoveElem.closest("." + D).attr("lay-id"), a = C(a)) && ((e = e < t.minWidth ? t.minWidth : e) > t.maxWidth && (e = t.maxWidth), t.rule.style.width = e + "px", a.setGroupWidth(w.eventMoveElem), p.close(c.tipsIndex)) + }).on("mouseup", function (e) { + var t, a, i, l, n; + w.eventMoveElem && (i = (t = w.eventMoveElem).closest("." + D).attr("lay-id"), a = C(i)) && (i = t.data("key"), l = a.col(i), n = a.config.elem.attr("lay-filter"), d = {}, o.css("cursor", ""), a.scrollPatch(), t.removeData(S), delete w.eventMoveElem, a.cssRules(i, function (e) { + l.width = parseFloat(e.style.width), layui.event.call(t[0], N, "colResized(" + n + ")", { + col: l, + config: a.config + }) + })) + }), w.docEvent = !0, e.on("click", function (e) { + var t = f(this), a = t.find(E), i = a.attr("lay-sort"); + if (!a[0] || 1 === t.data("resizing")) return t.removeData("resizing"); + c.sort({field: t, type: "asc" === i ? "desc" : "desc" === i ? null : "asc", fromEvent: !0}) + }).find(E + " .layui-edge ").on("click", function (e) { + var t = f(this), a = t.index(), t = t.parents("th").eq(0).data("field"); + layui.stope(e), 0 === a ? c.sort({field: t, type: "asc", fromEvent: !0}) : c.sort({ + field: t, + type: "desc", + fromEvent: !0 + }) + }), c.commonMember = function (e) { + var a = f(this).parents("tr").eq(0).data("index"), t = c.layBody.find('tr[data-index="' + a + '"]'), + i = (k.cache[c.key] || [])[a] || {}, l = { + tr: t, config: s, data: k.clearCacheKey(i), dataCache: i, index: a, del: function () { + k.cache[c.key][a] = [], t.remove(), c.scrollPatch() + }, update: function (e, t) { + c.updateRow({index: a, data: e = e || {}, related: t}, function (e, t) { + l.data[e] = t + }) + }, setRowChecked: function (e) { + c.setRowChecked(f.extend({index: a}, e)) + } + }; + return f.extend(l, e) + }), a = (c.elem.on("click", 'input[name="layTableCheckbox"]+', function (e) { + var t = f(this), a = t.closest("td"), t = t.prev(), + i = (c.layBody.find('input[name="layTableCheckbox"]'), t.parents("tr").eq(0).data("index")), + l = t[0].checked, n = "layTableAllChoose" === t.attr("lay-filter"); + t[0].disabled || (n ? c.setRowChecked({index: "all", checked: l}) : (c.setRowChecked({ + index: i, + checked: l + }), layui.stope(e)), layui.event.call(t[0], N, "checkbox(" + u + ")", r.call(t[0], { + checked: l, + type: n ? "all" : "one", + getCol: function () { + return c.col(a.data("key")) + } + }))) + }), c.elem.on("click", 'input[lay-type="layTableRadio"]+', function (e) { + var t = f(this), a = t.closest("td"), t = t.prev(), i = t[0].checked, + l = t.parents("tr").eq(0).data("index"); + if (layui.stope(e), t[0].disabled) return !1; + c.setRowChecked({ + type: "radio", + index: l + }), layui.event.call(t[0], N, "radio(" + u + ")", r.call(t[0], { + checked: i, getCol: function () { + return c.col(a.data("key")) + } + })) + }), c.layBody.on("mouseenter", "tr", function () { + var e = f(this), t = e.index(); + e.data("off") || c.layBody.find("tr:eq(" + t + ")").addClass(M) + }).on("mouseleave", "tr", function () { + var e = f(this), t = e.index(); + e.data("off") || c.layBody.find("tr:eq(" + t + ")").removeClass(M) + }).on("click", "tr", function (e) { + var t = [".layui-form-checkbox", ".layui-form-switch", ".layui-form-radio", "[lay-unrow]"].join(","); + f(e.target).is(t) || f(e.target).closest(t)[0] || a.call(this, "row") + }).on("dblclick", "tr", function () { + a.call(this, "rowDouble") + }).on("contextmenu", "tr", function (e) { + s.defaultContextmenu || e.preventDefault(), a.call(this, "rowContextmenu") + }), function (e) { + var t = f(this); + t.data("off") || layui.event.call(this, N, e + "(" + u + ")", r.call(t.children("td")[0])) + }), n = function (e, t) { + var a, i, l; + (e = f(e)).data("off") || (l = e.data("field"), i = e.data("key"), i = c.col(i), a = e.closest("tr").data("index"), a = k.cache[c.key][a], e.children(y), (i = "function" == typeof i.edit ? i.edit(a) : i.edit) && ((i = f("textarea" === i ? '' : ''))[0].value = (l = e.data("content") || a[l]) === undefined || null === l ? "" : l, e.find("." + _)[0] || e.append(i), i.focus(), t) && layui.stope(t)) + }, i = (c.layBody.on("change", "." + _, function () { + var e = f(this), t = e.parent(), a = this.value, i = e.parent().data("field"), + e = e.closest("tr").data("index"), e = k.cache[c.key][e], l = r.call(t[0], { + value: a, field: i, oldValue: e[i], td: t, reedit: function () { + setTimeout(function () { + n(l.td); + var e = {}; + e[i] = l.oldValue, l.update(e) + }) + }, getCol: function () { + return c.col(t.data("key")) + } + }), e = {}; + e[i] = a, l.update(e), layui.event.call(t[0], N, "edit(" + u + ")", l) + }).on("blur", "." + _, function () { + f(this).remove() + }), c.layBody.on(s.editTrigger, "td", function (e) { + n(this, e) + }).on("mouseenter", "td", function () { + t.call(this) + }).on("mouseleave", "td", function () { + t.call(this, "hide") + }), c.layTotal.on("mouseenter", "td", function () { + t.call(this) + }).on("mouseleave", "td", function () { + t.call(this, "hide") + }), "layui-table-grid-down"), t = function (e) { + var t = f(this), a = t.children(y); + t.data("off") || t.parent().hasClass(H) || (e ? t.find(".layui-table-grid-down").remove() : !(a.prop("scrollWidth") > a.outerWidth() || 0 < a.find("br").length) || s.lineStyle || a.find("." + i)[0] || t.append('
                ')) + }, l = function (e, t) { + var a = f(this), i = a.parent(), l = i.data("key"), n = c.col(l), o = i.parent().data("index"), + d = i.children(y), i = "layui-table-cell-c", r = f(''); + "tips" === (t = t || n.expandedMode || s.cellExpandedMode) ? c.tipsIndex = p.tips(['
                ', d.html(), "
                ", ''].join(""), d[0], { + tips: [3, ""], + time: -1, + anim: -1, + maxWidth: b.ios || b.android ? 300 : c.elem.width() / 2, + isOutAnim: !1, + skin: "layui-table-tips", + success: function (e, t) { + e.find(".layui-table-tips-c").on("click", function () { + p.close(t) + }) + } + }) : (c.elem.find("." + i).trigger("click"), c.cssRules(l, function (e) { + var t = e.style.width, a = n.expandedWidth || s.cellExpandedWidth; + a < parseFloat(t) && (a = parseFloat(t)), r.data("cell-width", t), e.style.width = a + "px", setTimeout(function () { + c.scrollPatch() + }) + }), c.setRowActive(o, H), d.next("." + i)[0] || d.after(r), r.on("click", function () { + var t = f(this); + c.setRowActive(o, [H, M].join(" "), !0), c.cssRules(l, function (e) { + e.style.width = t.data("cell-width"), setTimeout(function () { + c.resize() + }) + }), t.remove(), d.scrollTop(0), d.scrollLeft(0) + })), a.remove(), layui.stope(e) + }, h = (c.layBody.on("click", "." + i, function (e) { + l.call(this, e) + }), c.layTotal.on("click", "." + i, function (e) { + l.call(this, e, "tips") + }), function (e) { + var t = f(this), a = t.closest("td"), i = t.parents("tr").eq(0).data("index"); + c.setRowActive(i), layui.event.call(this, N, (e || "tool") + "(" + u + ")", r.call(this, { + event: t.attr("lay-event"), + getCol: function () { + return c.col(a.data("key")) + } + })) + }); + c.layBody.on("click", "*[lay-event]", function (e) { + h.call(this), layui.stope(e) + }).on("dblclick", "*[lay-event]", function (e) { + h.call(this, "toolDouble"), layui.stope(e) + }), c.layMain.on("scroll", function () { + var e = f(this), t = e.scrollLeft(), e = e.scrollTop(); + c.layHeader.scrollLeft(t), c.layTotal.scrollLeft(t), c.layFixed.find(L).scrollTop(e), p.close(c.tipsIndex) + }), c.layFixed.find(L).on("mousewheel DOMMouseScroll", function (e) { + var t = e.originalEvent.wheelDelta || -e.originalEvent.detail, a = c.layMain.scrollTop(); + e.preventDefault(), c.layMain.scrollTop(a + (0 < t ? -30 : 30)) + }) + }, d.on("resize", function () { + layui.each(w.that, function () { + this.resize() + }) + }), F.on("click", function () { + F.trigger("table.remove.tool.panel") + }), F.on("table.remove.tool.panel", function () { + f("." + j).remove() + }), k.init = function (i, o) { + o = o || {}; + var e = "object" == typeof i ? i : f("string" == typeof i ? 'table[lay-filter="' + i + '"]' : t + "[lay-data], " + t + "[lay-options]"), + d = "Table element property lay-data configuration item has a syntax error: "; + return e.each(function () { + var l, e = f(this), t = e.attr("lay-data"), + t = r.options(this, {attr: t ? "lay-data" : null, errorText: d + (t || e.attr("lay-options"))}), + n = f.extend({ + elem: this, + cols: [], + data: [], + skin: e.attr("lay-skin"), + size: e.attr("lay-size"), + even: "string" == typeof e.attr("lay-even") + }, k.config, o, t), a = (i && e.hide(), e.find("thead>tr").each(function (i) { + n.cols[i] = [], f(this).children().each(function (e) { + var t = f(this), a = t.attr("lay-data"), + a = r.options(this, {attr: a ? "lay-data" : null, errorText: d + (a || t.attr("lay-options"))}), + t = f.extend({ + title: t.text(), + colspan: parseInt(t.attr("colspan")) || 1, + rowspan: parseInt(t.attr("rowspan")) || 1 + }, a); + n.cols[i].push(t) + }) + }), e.find("tbody>tr")), t = k.render(n); + !a.length || o.data || t.config.url || (l = 0, k.eachCols(t.config.id, function (e, i) { + a.each(function (e) { + n.data[e] = n.data[e] || {}; + var t = f(this), a = i.field; + n.data[e][a] = t.children("td").eq(l).html() + }), l++ + }), t.reloadData({data: n.data})) + }), this + }, w.that = {}, w.config = {}, function (a, i, e, l) { + var n, o; + l.colGroup && (n = 0, a++, l.CHILD_COLS = [], o = e + (parseInt(l.rowspan) || 1), layui.each(i[o], function (e, t) { + t.parentKey ? t.parentKey === l.key && (t.PARENT_COL_INDEX = a, l.CHILD_COLS.push(t), c(a, i, o, t)) : t.PARENT_COL_INDEX || 1 <= n && n == (l.colspan || 1) || (t.PARENT_COL_INDEX = a, l.CHILD_COLS.push(t), n += parseInt(1 < t.colspan ? t.colspan : 1), c(a, i, o, t)) + })) + }); + k.eachCols = function (e, a, i) { + var e = w.config[e] || {}, l = [], n = (i = f.extend(!0, [], i || e.cols), layui.each(i, function (a, e) { + if (a) return !0; + layui.each(e, function (e, t) { + c(0, i, a, t), t.PARENT_COL_INDEX || l.push(t) + }) + }), function (e) { + layui.each(e || l, function (e, t) { + if (t.CHILD_COLS) return n(t.CHILD_COLS); + "function" == typeof a && a(e, t) + }) + }); + n() + }, k.checkStatus = function (e) { + var a = 0, i = 0, l = [], e = k.cache[e] || []; + return layui.each(e, function (e, t) { + "array" === layui.type(t) || t[k.config.disabledName] ? i++ : t[k.config.checkName] && (a++, t[k.config.disabledName] || l.push(k.clearCacheKey(t))) + }), {data: l, isAll: !!e.length && a === e.length - i} + }, k.setRowChecked = function (e, t) { + e = C(e); + e && e.setRowChecked(t) + }, k.getData = function (e) { + var a = [], e = k.cache[e] || []; + return layui.each(e, function (e, t) { + "array" !== layui.type(t) && a.push(k.clearCacheKey(t)) + }), a + }, k.resize = function (e) { + e ? l(e) && C(e).resize() : layui.each(w.that, function () { + this.resize() + }) + }, k.exportFile = function (e, t, a) { + t = t || k.clearCacheKey(k.cache[e]); + var o, d, i, r, l = (a = "object" == typeof a ? a : (l = {}, a && (l.type = a), l)).type || "csv", + c = w.that[e], n = w.config[e] || {}, s = {csv: "text/csv", xls: "application/vnd.ms-excel"}[l], + u = document.createElement("a"); + if (b.ie) return x.error("IE_NOT_SUPPORT_EXPORTS"); + if (n.tree && n.tree.view) try { + t = f.extend(!0, [], k.cache[e]), t = function y(e) { + return e.reduce(function (e, t) { + var a = t.children || []; + return delete t.children, e.concat(t, y(a)) + }, []) + }(Array.from(t)) + } catch (h) { + } + u.href = "data:" + s + ";charset=utf-8,\ufeff" + encodeURIComponent((o = [], d = [], i = [], r = {}, layui.each(t, function (i, l) { + var n = []; + "object" == typeof e ? (layui.each(e, function (e, t) { + 0 == i && o.push(t || "") + }), layui.each(layui.isArray(l) ? f.extend([], l) : k.clearCacheKey(l), function (e, t) { + n.push('"' + (t || "") + '"') + })) : k.eachCols(e, function (e, t) { + var a; + !1 === t.ignoreExport || t.field && "normal" == t.type ? t.hide && !1 !== t.ignoreExport || !0 === t.ignoreExport ? 0 == i && (r[t.field] = !0) : ((a = l[t.field]) !== undefined && null !== a || (a = ""), 0 == i && o.push(t.fieldTitle || t.title || t.field || ""), a = (a = T.call(c, { + item3: t, + content: a, + tplData: l, + text: "text", + obj: { + td: function (e) { + return c.layBody.find('tr[data-index="' + i + '"]>td').filter('[data-field="' + e + '"]') + } + } + })).replace(/"/g, '""'), n.push(a = '"' + a + '"')) : t.field && "normal" !== t.type && 0 == i && (r[t.field] = !0) + }), d.push(n.join(",")) + }), c && layui.each(c.dataTotal, function (e, t) { + r[t.field] || i.push('"' + (t.total || "") + '"') + }), o.join(",") + "\r\n" + d.join("\r\n") + "\r\n" + i.join(","))), u.download = (a.title || n.title || "table_" + (n.index || "")) + "." + l, document.body.appendChild(u), u.click(), document.body.removeChild(u) + }, k.getOptions = l, k.hideCol = function (e, l) { + var n = C(e); + n && ("boolean" === layui.type(l) ? n.eachCols(function (e, t) { + var a = t.key, i = n.col(a), t = t.parentKey; + i.hide != l && (i = i.hide = l, n.elem.find('*[data-key="' + a + '"]')[i ? "addClass" : "removeClass"](R), n.setParentCol(i, t)) + }) : (l = layui.isArray(l) ? l : [l], layui.each(l, function (e, l) { + n.eachCols(function (e, t) { + var a, i; + l.field === t.field && (a = t.key, i = n.col(a), t = t.parentKey, "hide" in l) && i.hide != l.hide && (i = i.hide = !!l.hide, n.elem.find('*[data-key="' + a + '"]')[i ? "addClass" : "removeClass"](R), n.setParentCol(i, t)) + }) + })), f("." + j).remove(), n.resize()) + }, k.reload = function (e, t, a, i) { + if (l(e)) return (e = C(e)).reload(t, a, i), w.call(e) + }, k.reloadData = function () { + var a = f.extend([], arguments), + i = (a[3] = "reloadData", new RegExp("^(" + ["elem", "id", "cols", "width", "height", "maxHeight", "toolbar", "defaultToolbar", "className", "css", "pagebar"].join("|") + ")$")); + return layui.each(a[1], function (e, t) { + i.test(e) && delete a[1][e] + }), k.reload.apply(null, a) + }, k.render = function (e) { + e = new i(e); + return w.call(e) + }, k.clearCacheKey = function (e) { + return delete (e = f.extend({}, e))[k.config.checkName], delete e[k.config.indexName], delete e[k.config.numbersName], delete e[k.config.disabledName], e + }, f(function () { + k.init() + }), n(N, k) +}); +layui.define(["table"], function (e) { + "use strict"; + var E = layui.$, x = layui.form, B = layui.table, y = layui.hint(), j = { + config: {}, on: B.on, eachCols: B.eachCols, index: B.index, set: function (e) { + var t = this; + return t.config = E.extend({}, t.config, e), t + }, resize: B.resize, getOptions: B.getOptions, hideCol: B.hideCol, renderData: B.renderData + }, i = function () { + var a = this, e = a.config, n = e.id || e.index; + return { + config: e, reload: function (e, t) { + a.reload.call(a, e, t) + }, reloadData: function (e, t) { + j.reloadData(n, e, t) + } + } + }, P = function (e) { + var t = i.that[e]; + return t || y.error(e ? "The treeTable instance with ID '" + e + "' not found" : "ID argument required"), t || null + }, F = "layui-hide", L = ".layui-table-main", q = ".layui-table-fixed-l", R = ".layui-table-fixed-r", + l = "layui-table-checked", h = "layui-table-tree", Y = "LAY_DATA_INDEX", m = "LAY_DATA_INDEX_HISTORY", + s = "LAY_PARENT_INDEX", b = "LAY_CHECKBOX_HALF", H = "LAY_EXPAND", z = "LAY_HAS_EXPANDED", + X = "LAY_ASYNC_STATUS", n = ["all", "parent", "children", "none"], t = function (e) { + var t = this; + t.index = ++j.index, t.config = E.extend(!0, {}, t.config, j.config, e), t.init(), t.render() + }, f = function (n, i, e) { + var l = B.cache[n]; + layui.each(e || l, function (e, t) { + var a = t[Y] || ""; + -1 !== a.indexOf("-") && (l[a] = t), t[i] && f(n, i, t[i]) + }) + }, d = function (l, a, e) { + var d = P(l), r = ("reloadData" !== e && (d.status = {expand: {}}), E.extend(!0, {}, d.getOptions(), a)), + n = r.tree, o = n.customName.children, i = n.customName.id, + c = (delete a.hasNumberCol, delete a.hasChecboxCol, delete a.hasRadioCol, B.eachCols(null, function (e, t) { + "numbers" === t.type ? a.hasNumberCol = !0 : "checkbox" === t.type ? a.hasChecboxCol = !0 : "radio" === t.type && (a.hasRadioCol = !0) + }, r.cols), a.parseData), u = a.done; + r.url ? e && (!c || c.mod) || (a.parseData = function () { + var e = this, t = arguments, a = t[0], + t = ("function" === layui.type(c) && (a = c.apply(e, t) || t[0]), e.response.dataName); + return n.data.isSimpleData && !n["async"].enable && (a[t] = d.flatToTree(a[t])), p(a[t], function (e) { + e[H] = H in e ? e[H] : e[i] !== undefined && d.status.expand[e[i]] + }, o), e.autoSort && e.initSort && e.initSort.type && layui.sort(a[t], e.initSort.field, "desc" === e.initSort.type, !0), d.initData(a[t]), a + }, a.parseData.mod = !0) : (a.data = a.data || [], n.data.isSimpleData && (a.data = d.flatToTree(a.data)), d.initData(a.data)), e && (!u || u.mod) || (a.done = function () { + var e, t = arguments, a = t[3], n = (a || delete d.isExpandAll, this.elem.next()), + i = (d.updateStatus(null, {LAY_HAS_EXPANDED: !1}), f(l, o), n.find('[name="layTableCheckbox"][lay-filter="layTableAllChoose"]')); + if (i.length && (e = j.checkStatus(l), i.prop({ + checked: e.isAll && e.data.length, + indeterminate: !e.isAll && e.data.length + })), !a && r.autoSort && r.initSort && r.initSort.type && j.sort(l), d.renderTreeTable(n), "function" === layui.type(u)) return u.apply(this, t) + }, a.done.mod = !0) + }; + t.prototype.init = function () { + var e = this.config, t = e.tree.data.cascade, + t = (-1 === n.indexOf(t) && (e.tree.data.cascade = "all"), B.render(E.extend({}, e, { + data: [], + url: "", + done: null + }))), a = t.config.id; + (i.that[a] = this).tableIns = t, d(a, e) + }, t.prototype.config = { + tree: { + customName: { + children: "children", + isParent: "isParent", + name: "name", + id: "id", + pid: "parentId", + icon: "icon" + }, + view: { + indent: 14, + flexIconClose: '', + flexIconOpen: '', + showIcon: !0, + icon: "", + iconClose: '', + iconOpen: '', + iconLeaf: '', + showFlexIconIfNotParent: !1, + dblClickExpand: !0, + expandAllDefault: !1 + }, + data: {isSimpleData: !1, rootPid: null, cascade: "all"}, + "async": {enable: !1, url: "", type: null, contentType: null, headers: null, where: null, autoParam: []}, + callback: {beforeExpand: null, onExpand: null} + } + }, t.prototype.getOptions = function () { + return this.tableIns ? B.getOptions(this.tableIns.config.id) : this.config + }, t.prototype.flatToTree = function (e) { + var a, n, i, t, l, d, r, o = this.getOptions(), c = o.tree, u = c.customName, o = o.id; + return e = e || B.cache[o], o = e, a = u.id, n = u.pid, i = u.children, t = c.data.rootPid, a = a || "id", n = n || "parentId", i = i || "children", r = {}, layui.each(o, function (e, t) { + l = a + t[a], r[l] = E.extend({}, t), r[l][i] = [] + }), layui.each(r, function (e, t) { + (d = a + t[n]) && r[d] && r[d][i].push(t) + }), Object.keys(r).map(function (e) { + return r[e] + }).filter(function (e) { + return t ? e[n] === t : !e[n] + }) + }, t.prototype.treeToFlat = function (e, n, i) { + var l = this, d = l.getOptions().tree.customName, r = d.children, o = d.pid, c = []; + return layui.each(e, function (e, t) { + var e = (i ? i + "-" : "") + e, a = E.extend({}, t); + a[o] = t[o] || n, c.push(a), c = c.concat(l.treeToFlat(t[r], t[d.id], e)) + }), c + }, t.prototype.getTreeNode = function (e) { + var t, a, n = this; + return e ? (a = (t = n.getOptions()).tree, t.id, a.customName, { + data: e, + dataIndex: e[Y], + getParentNode: function () { + return n.getNodeByIndex(e[s]) + } + }) : y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e") + }, t.prototype.getNodeByIndex = function (t) { + var a, e, n = this, i = n.getNodeDataByIndex(t); + return i ? ((e = n.getOptions()).tree.customName.parent, a = e.id, (e = { + data: i, + dataIndex: i[Y], + getParentNode: function () { + return n.getNodeByIndex(i[s]) + }, + update: function (e) { + return j.updateNode(a, t, e) + }, + remove: function () { + return j.removeNode(a, t) + }, + expand: function (e) { + return j.expandNode(a, E.extend({}, e, {index: t})) + }, + setChecked: function (e) { + return j.setRowChecked(a, E.extend({}, e, {index: t})) + } + }).dataIndex = t, e) : y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e") + }, t.prototype.getNodeById = function (a) { + var e = this.getOptions(), n = e.tree.customName.id, i = "", e = j.getData(e.id, !0); + if (layui.each(e, function (e, t) { + if (t[n] === a) return i = t[Y], !0 + }), i) return this.getNodeByIndex(i) + }, t.prototype.getNodeDataByIndex = function (e, t, a) { + var n = this.getOptions(), i = n.tree, n = n.id, n = B.cache[n], l = n[e]; + if ("delete" !== a && l) return E.extend(l, a), t ? E.extend({}, l) : l; + for (var d = n, r = String(e).split("-"), o = 0, c = i.customName.children; o < r.length; o++) { + if (a && o === r.length - 1) { + if ("delete" === a) return (o ? d[c] : d).splice(r[o], 1)[0]; + E.extend((o ? d[c] : d)[r[o]], a) + } + d = (o ? d[c] : d)[r[o]] + } + return t ? E.extend({}, d) : d + }, j.getNodeDataByIndex = function (e, t) { + e = P(e); + if (e) return e.getNodeDataByIndex(t, !0) + }; + t.prototype.initData = function (e, a) { + var n = this, t = n.getOptions(), i = t.tree, t = t.id, i = (e = e || n.getTableData(), i.customName), + l = i.isParent, d = i.children; + return layui.each(e, function (e, t) { + l in t || (t[l] = !(!t[d] || !t[d].length)), t[m] = t[Y], t[s] = a = a || ""; + e = t[Y] = (a ? a + "-" : "") + e; + n.initData(t[d] || [], e) + }), f(t, d, e), e + }, r = {}; + var r, V = function (e, t, a) { + return r[e] || (r[e] = layui.debounce(t, a)), r[e] + }, U = function (t, a, n, i, l) { + var e = t.trElem, d = t.tableViewElem || e.closest(".layui-table-view"), r = t.tableId || d.attr("lay-id"), + o = t.options || B.getOptions(r), e = t.dataIndex || e.attr("lay-data-index"), c = P(r), u = o.tree || {}, + s = u.customName || {}, f = s.isParent, y = c.getNodeDataByIndex(e), p = "boolean" !== layui.type(a), + x = p ? !y[H] : a, h = y[f] ? x : null; + if (l && x != y[H] && (!y[X] || "local" === y[X])) { + var m = u.callback.beforeExpand; + if ("function" === layui.type(m) && !1 === m(r, y, a)) return h + } + var m = y[z], b = d.find('tr[lay-data-index="' + e + '"]'), g = b.find(".layui-table-tree-flexIcon"), + v = (g.html(x ? u.view.flexIconOpen : u.view.flexIconClose), y[f] && g.css("visibility", "visible"), u.view.showIcon && b.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(x ? u.view.iconOpen : u.view.iconClose), y[H] = x, y[s.id]); + if (v !== undefined && (c.status.expand[v] = x), null !== h) { + v = y[s.children] || []; + if (x) if (m) { + if (!v.length) return; + b.nextAll(v.map(function (e, t, a) { + return 'tr[lay-data-index="' + e[Y] + '"]' + }).join(",")).removeClass(F), layui.each(v, function (e, t) { + t[f] && (!n || p || t[H] ? t[H] && U({ + dataIndex: t[Y], + trElem: d.find('tr[lay-data-index="' + t[Y] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, !0) : U({ + dataIndex: t[Y], + trElem: d.find('tr[lay-data-index="' + t[Y] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, a, n, i, l)) + }) + } else { + var N, I, C, D, T, k, _, O, w, S, A, m = u["async"] || {}, b = m.url || o.url; + if (m.enable && y[f] && !y[X]) return y[X] = "loading", g.html(''), N = function (e) { + y[X] = "success", y[s.children] = e, c.initData(y[s.children], y[Y]), U(t, !0, !p && n, i, l) + }, C = m.format, "function" === layui.type(C) ? C(y, o, N) : (I = E.extend({}, m.where || o.where), C = m.autoParam, layui.each(C, function (e, t) { + t = t.split("="); + I[t[0].trim()] = y[(t[1] || t[0]).trim()] + }), (C = m.contentType || o.contentType) && 0 == C.indexOf("application/json") && (I = JSON.stringify(I)), w = m.method || o.method, D = m.dataType || o.dataType, T = m.jsonpCallback || o.jsonpCallback, k = m.headers || o.headers, _ = m.parseData || o.parseData, O = m.response || o.response, E.ajax({ + type: w || "get", + url: b, + contentType: C, + data: I, + dataType: D || "json", + jsonpCallback: T, + headers: k || {}, + success: function (e) { + (e = "function" == typeof _ ? _.call(o, e) || e : e)[O.statusName] != O.statusCode ? (y[X] = "error", g.html('')) : N(e[O.dataName]) + }, + error: function (e, t) { + y[X] = "error", "function" == typeof o.error && o.error(e, t) + } + })), h; + y[z] = !0, v.length && (!o.initSort || o.url && !o.autoSort || ((m = o.initSort).type ? layui.sort(v, m.field, "desc" === m.type, !0) : layui.sort(v, B.config.indexName, null, !0)), c.initData(y[s.children], y[Y]), w = B.getTrHtml(r, v, null, null, e), S = { + trs: E(w.trs.join("")), + trs_fixed: E(w.trs_fixed.join("")), + trs_fixed_r: E(w.trs_fixed_r.join("")) + }, A = (e.split("-").length - 1 || 0) + 1, layui.each(v, function (e, t) { + S.trs.eq(e).attr({ + "data-index": t[Y], + "lay-data-index": t[Y], + "data-level": A + }), S.trs_fixed.eq(e).attr({ + "data-index": t[Y], + "lay-data-index": t[Y], + "data-level": A + }), S.trs_fixed_r.eq(e).attr({"data-index": t[Y], "lay-data-index": t[Y], "data-level": A}) + }), d.find(L).find('tbody tr[lay-data-index="' + e + '"]').after(S.trs), d.find(q).find('tbody tr[lay-data-index="' + e + '"]').after(S.trs_fixed), d.find(R).find('tbody tr[lay-data-index="' + e + '"]').after(S.trs_fixed_r), c.renderTreeTable(S.trs, A), n) && !p && layui.each(v, function (e, t) { + U({ + dataIndex: t[Y], + trElem: d.find('tr[lay-data-index="' + t[Y] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, a, n, i, l) + }) + } else c.isExpandAll = !1, (n && !p ? (layui.each(v, function (e, t) { + U({ + dataIndex: t[Y], + trElem: d.find('tr[lay-data-index="' + t[Y] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, a, n, i, l) + }), d.find(v.map(function (e, t, a) { + return 'tr[lay-data-index="' + e[Y] + '"]' + }).join(","))) : (b = c.treeToFlat(v, y[s.id], e), d.find(b.map(function (e, t, a) { + return 'tr[lay-data-index="' + e[Y] + '"]' + }).join(",")))).addClass(F); + V("resize-" + r, function () { + j.resize(r) + }, 0)(), l && "loading" !== y[X] && (C = u.callback.onExpand, "function" === layui.type(C)) && C(r, y, x) + } + return h + }, g = (j.expandNode = function (e, t) { + var a, n, i, e = P(e); + if (e) return a = (t = t || {}).index, n = t.expandFlag, i = t.inherit, t = t.callbackFlag, e = e.getOptions().elem.next(), U({trElem: e.find('tr[lay-data-index="' + a + '"]').first()}, n, i, null, t) + }, j.expandAll = function (a, e) { + if ("boolean" !== layui.type(e)) return y.error("expandAll \u7684\u5c55\u5f00\u72b6\u6001\u53c2\u6570\u53ea\u63a5\u6536true/false"); + var t = P(a); + if (t) { + t.isExpandAll = e; + var n = t.getOptions(), i = n.tree, l = n.elem.next(), d = i.customName.isParent, r = i.customName.id, + o = i.view.showFlexIconIfNotParent; + if (e) { + e = j.getData(a, !0); + if (i["async"].enable) { + var c = !0; + if (layui.each(e, function (e, t) { + if (t[d] && !t[X]) return !(c = !1) + }), !c) return void layui.each(j.getData(a), function (e, t) { + j.expandNode(a, {index: t[Y], expandFlag: !0, inherit: !0}) + }) + } + var u = !0; + if (layui.each(e, function (e, t) { + if (t[d] && !t[z]) return !(u = !1) + }), u) t.updateStatus(null, function (e) { + (e[d] || o) && (e[H] = !0, e[r] !== undefined) && (t.status.expand[e[r]] = !0) + }), l.find('tbody tr[data-level!="0"]').removeClass(F), l.find(".layui-table-tree-flexIcon").html(i.view.flexIconOpen), i.view.showIcon && l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconOpen); else { + if (t.updateStatus(null, function (e) { + (e[d] || o) && (e[H] = !0, e[z] = !0, e[r] !== undefined) && (t.status.expand[e[r]] = !0) + }), n.initSort && n.initSort.type && n.autoSort) return j.sort(a); + var s, n = B.getTrHtml(a, e), f = { + trs: E(n.trs.join("")), + trs_fixed: E(n.trs_fixed.join("")), + trs_fixed_r: E(n.trs_fixed_r.join("")) + }; + layui.each(e, function (e, t) { + var a = t[Y].split("-").length - 1; + s = { + "data-index": t[Y], + "lay-data-index": t[Y], + "data-level": a + }, f.trs.eq(e).attr(s), f.trs_fixed.eq(e).attr(s), f.trs_fixed_r.eq(e).attr(s) + }), layui.each(["main", "fixed-l", "fixed-r"], function (e, t) { + l.find(".layui-table-" + t + " tbody").html(f[["trs", "trs_fixed", "trs_fixed_r"][e]]) + }), t.renderTreeTable(l, 0, !1) + } + } else t.updateStatus(null, function (e) { + (e[d] || o) && (e[H] = !1, e[r] !== undefined) && (t.status.expand[e[r]] = !1) + }), l.find('.layui-table-box tbody tr[data-level!="0"]').addClass(F), l.find(".layui-table-tree-flexIcon").html(i.view.flexIconClose), i.view.showIcon && l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconClose); + j.resize(a) + } + }, t.prototype.renderTreeTable = function (e, t, a) { + var n = this, i = n.getOptions(), l = i.elem.next(), d = (l.hasClass(h) || l.addClass(h), i.id), + r = i.tree || {}, o = (r.data, r.view || {}), c = r.customName || {}, u = c.isParent, + s = (l.attr("lay-filter"), n), + f = ((t = t || 0) || (l.find(".layui-table-body tr:not([data-level])").attr("data-level", t), layui.each(B.cache[d], function (e, t) { + l.find('.layui-table-main tbody tr[data-level="0"]:eq(' + e + ")").attr("lay-data-index", t[Y]), l.find('.layui-table-fixed-l tbody tr[data-level="0"]:eq(' + e + ")").attr("lay-data-index", t[Y]), l.find('.layui-table-fixed-r tbody tr[data-level="0"]:eq(' + e + ")").attr("lay-data-index", t[Y]) + })), null), y = c.name, p = o.indent || 14; + if (layui.each(e.find('td[data-field="' + y + '"]'), function (e, t) { + var a, n, i = (t = E(t)).closest("tr"), t = t.children(".layui-table-cell"); + t.hasClass("layui-table-tree-item") || (n = i.attr("lay-data-index")) && (i = l.find('tr[lay-data-index="' + n + '"]'), (a = s.getNodeDataByIndex(n))[H] && a[u] && ((f = f || {})[n] = !0), a[b] && i.find('input[type="checkbox"][name="layTableCheckbox"]').prop("indeterminate", !0), n = t.html(), (t = i.find('td[data-field="' + y + '"]>div.layui-table-cell')).addClass("layui-table-tree-item"), t.html(['
                ', a[H] ? o.flexIconOpen : o.flexIconClose, "
                ", o.showIcon ? '
                ' + (a[c.icon] || o.icon || (a[u] ? a[H] ? o.iconOpen : o.iconClose : o.iconLeaf) || "") + "
                " : "", n].join("")).find(".layui-table-tree-flexIcon").on("click", function (e) { + layui.stope(e), U({trElem: i}, null, null, null, !0) + })) + }), !t && r.view.expandAllDefault && n.isExpandAll === undefined) return j.expandAll(d, !0); + (!1 !== a && f ? (layui.each(f, function (e, t) { + e = l.find('tr[lay-data-index="' + e + '"]'); + e.find(".layui-table-tree-flexIcon").html(o.flexIconOpen), U({trElem: e.first()}, !0) + }), V("renderTreeTable2-" + d, function () { + x.render(E('.layui-table-tree[lay-id="' + d + '"]')) + }, 0)) : V("renderTreeTable-" + d, function () { + i.hasNumberCol && g(n), x.render(E('.layui-table-tree[lay-id="' + d + '"]')) + }, 0))() + }, function (a) { + var e = a.getOptions(), t = e.elem.next(), n = 0, i = t.find(".layui-table-main tbody tr"), + l = t.find(".layui-table-fixed-l tbody tr"), d = t.find(".layui-table-fixed-r tbody tr"); + layui.each(a.treeToFlat(B.cache[e.id]), function (e, t) { + t.LAY_HIDE || (a.getNodeDataByIndex(t[Y]).LAY_NUM = ++n, i.eq(e).find(".laytable-cell-numbers").html(n), l.eq(e).find(".laytable-cell-numbers").html(n), d.eq(e).find(".laytable-cell-numbers").html(n)) + }) + }), p = (t.prototype.render = function (e) { + var t = this; + t.tableIns = B["reloadData" === e ? "reloadData" : "reload"](t.tableIns.config.id, E.extend(!0, {}, t.config)), t.config = t.tableIns.config + }, t.prototype.reload = function (e, t, a) { + var n = this; + e = e || {}, delete n.haveInit, layui.each(e, function (e, t) { + "array" === layui.type(t) && delete n.config[e] + }), d(n.getOptions().id, e, a || !0), n.config = E.extend(t, {}, n.config, e), n.render(a) + }, j.reloadData = function () { + var e = E.extend(!0, [], arguments); + return e[3] = "reloadData", j.reload.apply(null, e) + }, function (e, a, n, i) { + var l = []; + return layui.each(e, function (e, t) { + "function" === layui.type(a) ? a(t) : E.extend(t, a), l.push(E.extend({}, t)), i || (l = l.concat(p(t[n], a, n, i))) + }), l + }), o = (t.prototype.updateStatus = function (e, t, a) { + var n = this.getOptions(), i = n.tree; + return e = e || B.cache[n.id], p(e, t, i.customName.children, a) + }, t.prototype.getTableData = function () { + var e = this.getOptions(); + return B.cache[e.id] + }, j.updateStatus = function (e, t, a) { + var e = P(e), n = e.getOptions(); + return a = a || (n.url ? B.cache[n.id] : n.data), e.updateStatus(a, t) + }, j.sort = function (e) { + var t = P(e); + t && t.getOptions().autoSort && (t.initData(), j.renderData(e)) + }, function (n) { + var t = n.config.id, i = P(t), a = n.data = j.getNodeDataByIndex(t, n.index), l = a[Y], + d = (n.dataIndex = l, n.update); + n.update = function () { + var e = arguments, t = (E.extend(i.getNodeDataByIndex(l), e[0]), d.apply(this, e)), + a = n.config.tree.customName.name; + return a in e[0] && n.tr.find('td[data-field="' + a + '"]').children("div.layui-table-cell").removeClass("layui-table-tree-item"), i.renderTreeTable(n.tr, n.tr.attr("data-level"), !1), t + }, n.del = function () { + j.removeNode(t, a) + }, n.setRowChecked = function (e) { + j.setRowChecked(t, {index: a, checked: e}) + } + }), u = (j.updateNode = function (e, a, t) { + var n, i, l, d, r, o = P(e); + o && ((d = o.getOptions()).tree, d = (n = d.elem.next()).find('tr[lay-data-index="' + a + '"]'), i = d.attr("data-index"), l = d.attr("data-level"), t) && (d = o.getNodeDataByIndex(a, !1, t), r = B.getTrHtml(e, [d]), layui.each(["main", "fixed-l", "fixed-r"], function (e, t) { + n.find(".layui-table-" + t + ' tbody tr[lay-data-index="' + a + '"]').replaceWith(E(r[["trs", "trs_fixed", "trs_fixed_r"][e]].join("")).attr({ + "data-index": i, + "lay-data-index": a, + "data-level": l + })) + }), o.renderTreeTable(n.find('tr[lay-data-index="' + a + '"]'), l)) + }, j.removeNode = function (e, t) { + var a, n, i, l, d, r = P(e); + r && (d = (a = r.getOptions()).tree, n = a.elem.next(), i = [], t = r.getNodeDataByIndex("string" === layui.type(t) ? t : t[Y], !1, "delete"), l = r.getNodeDataByIndex(t[s]), r.updateCheckStatus(l), l = r.treeToFlat([t], t[d.customName.pid], t[s]), layui.each(l, function (e, t) { + i.push('tr[lay-data-index="' + t[Y] + '"]') + }), n.find(i.join(",")).remove(), d = r.initData(), layui.each(r.treeToFlat(d), function (e, t) { + t[m] && t[m] !== t[Y] && n.find('tr[lay-data-index="' + t[m] + '"]').attr({ + "data-index": t[Y], + "lay-data-index": t[Y] + }) + }), layui.each(B.cache[e], function (e, t) { + n.find('tr[data-level="0"][lay-data-index="' + t[Y] + '"]').attr("data-index", e) + }), a.hasNumberCol && g(r), j.resize(e)) + }, j.addNodes = function (e, t) { + var a = P(e); + if (a) { + var n = a.getOptions(), i = n.tree, l = n.elem.next(), d = B.config.checkName, + r = (t = t || {}).parentIndex, o = t.index, c = t.data, t = t.focus, + u = (r = "number" === layui.type(r) ? r.toString() : r) ? a.getNodeDataByIndex(r) : null, + o = "number" === layui.type(o) ? o : -1, c = E.extend(!0, [], layui.isArray(c) ? c : [c]); + layui.each(c, function (e, t) { + d in t || !u || (t[d] = u[d]) + }), a.getTableData(); + if (u) { + var s = i.customName.isParent, f = i.customName.children; + u[s] = !0; + var y = (y = u[f]) ? (p = y.splice(-1 === o ? y.length : o), u[f] = y.concat(c, p)) : u[f] = c, + f = (a.updateStatus(y, function (e) { + (e[s] || i.view.showFlexIconIfNotParent) && (e[z] = !1) + }), a.treeToFlat(y)); + l.find(f.map(function (e) { + return 'tr[lay-data-index="' + e[Y] + '"]' + }).join(",")).remove(), a.initData(), u[z] = !1, u[X] = "local", U({trElem: l.find('tr[lay-data-index="' + r + '"]')}, !0) + } else { + var p = B.cache[e].splice(-1 === o ? B.cache[e].length : o); + if (B.cache[e] = B.cache[e].concat(c, p), n.url || (n.page ? (y = n.page, n.data.splice.apply(n.data, [y.limit * (y.curr - 1), y.limit].concat(B.cache[e]))) : n.data = B.cache[e]), a.initData(), l.find(".layui-none").length) return B.renderData(e), c; + var x, f = B.getTrHtml(e, c), h = { + trs: E(f.trs.join("")), + trs_fixed: E(f.trs_fixed.join("")), + trs_fixed_r: E(f.trs_fixed_r.join("")) + }, r = (layui.each(c, function (e, t) { + x = { + "data-index": t[Y], + "lay-data-index": t[Y], + "data-level": "0" + }, h.trs.eq(e).attr(x), h.trs_fixed.eq(e).attr(x), h.trs_fixed_r.eq(e).attr(x) + }), parseInt(c[0][Y]) - 1), y = l.find(L), n = l.find(q), f = l.find(R); + -1 == r ? (y.find('tr[data-level="0"][data-index="0"]').before(h.trs), n.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed), f.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed_r)) : -1 === o ? (y.find("tbody").append(h.trs), n.find("tbody").append(h.trs_fixed), f.find("tbody").append(h.trs_fixed_r)) : (r = p[0][m], y.find('tr[data-level="0"][data-index="' + r + '"]').before(h.trs), n.find('tr[data-level="0"][data-index="' + r + '"]').before(h.trs_fixed), f.find('tr[data-level="0"][data-index="' + r + '"]').before(h.trs_fixed_r)), layui.each(B.cache[e], function (e, t) { + l.find('tr[data-level="0"][lay-data-index="' + t[Y] + '"]').attr("data-index", e) + }), a.renderTreeTable(l.find(c.map(function (e, t, a) { + return 'tr[lay-data-index="' + e[Y] + '"]' + }).join(","))) + } + return a.updateCheckStatus(u), j.resize(e), t && l.find(L).find('tr[lay-data-index="' + c[0][Y] + '"]').get(0).scrollIntoViewIfNeeded(), c + } + }, j.checkStatus = function (e, n) { + var i, t, a, l = P(e); + if (l) return l = l.getOptions().tree, i = B.config.checkName, t = j.getData(e, !0).filter(function (e, t, a) { + return e[i] || n && e[b] + }), a = !0, layui.each("all" === l.data.cascade ? B.cache[e] : j.getData(e, !0), function (e, t) { + if (!t[i]) return !(a = !1) + }), {data: t, isAll: a} + }, j.on("sort", function (e) { + var e = e.config, t = e.elem.next(), e = e.id; + t.hasClass(h) && j.sort(e) + }), j.on("row", function (e) { + e.config.elem.next().hasClass(h) && o(e) + }), j.on("rowDouble", function (e) { + var t = e.config, a = t.elem.next(); + t.id; + a.hasClass(h) && (o(e), (t.tree || {}).view.dblClickExpand) && U({trElem: e.tr.first()}, null, null, null, !0) + }), j.on("rowContextmenu", function (e) { + var t = e.config, a = t.elem.next(); + t.id; + a.hasClass(h) && o(e) + }), j.on("tool", function (e) { + var t = e.config, a = t.elem.next(); + t.id; + a.hasClass(h) && o(e) + }), j.on("edit", function (e) { + var t = e.config, a = t.elem.next(); + t.id; + a.hasClass(h) && (o(e), e.field === t.tree.customName.name) && ((a = {})[e.field] = e.value, e.update(a)) + }), j.on("radio", function (e) { + var t = e.config, a = t.elem.next(), t = t.id; + a.hasClass(h) && (a = P(t), o(e), u.call(a, e.tr, e.checked)) + }), t.prototype.setRowCheckedClass = function (e, t) { + var a = this.getOptions(), n = (e.data("index"), a.elem.next()); + e[t ? "addClass" : "removeClass"](l), e.each(function () { + var e = E(this).data("index"); + n.find('.layui-table-fixed-r tbody tr[data-index="' + e + '"]')[t ? "addClass" : "removeClass"](l) + }) + }, t.prototype.updateCheckStatus = function (e, t) { + var a, n, i, l, d, r, o, c = this, u = c.getOptions(); + return !!u.hasChecboxCol && (a = u.tree, n = u.id, i = u.elem.next(), l = B.config.checkName, "all" !== (d = a.data.cascade) && "parent" !== d || !e || (d = c.updateParentCheckStatus(e, "boolean" === layui.type(t) ? t : null), layui.each(d, function (e, t) { + var a = i.find('tr[lay-data-index="' + t[Y] + '"] input[name="layTableCheckbox"]:not(:disabled)'), + n = t[l]; + c.setRowCheckedClass(a.closest("tr"), n), x.render(a.prop({checked: n, indeterminate: t[b]})) + })), o = !(r = !0), e = (e = "all" === a.data.cascade ? B.cache[n] : j.getData(n, !0)).filter(function (e) { + return !e[u.disabledName] + }), layui.each(e, function (e, t) { + if ((t[l] || t[b]) && (o = !0), t[l] || (r = !1), o && !r) return !0 + }), o = o && !r, x.render(i.find('input[name="layTableCheckbox"][lay-filter="layTableAllChoose"]').prop({ + checked: r, + indeterminate: o + })), r) + }, t.prototype.updateParentCheckStatus = function (a, n) { + var i, e = this.getOptions(), t = e.tree, e = e.id, l = B.config.checkName, t = t.customName.children, d = []; + return !(a[b] = !1) === n ? a[t].length ? layui.each(a[t], function (e, t) { + if (!t[l]) return n = !1, a[b] = !0 + }) : n = !1 : !1 === n ? layui.each(a[t], function (e, t) { + if (t[l] || t[b]) return a[b] = !0 + }) : (n = !1, i = 0, layui.each(a[t], function (e, t) { + t[l] && i++ + }), n = a[t].length ? a[t].length === i : a[l], a[b] = !n && 0 < i), a[l] = n, d.push(E.extend({}, a)), d = a[s] ? d.concat(this.updateParentCheckStatus(B.cache[e][a[s]], n)) : d + }, function (e, t, a) { + var n = this, i = n.getOptions(), l = i.tree, d = i.id, r = i.elem.next(), + o = (e.length ? e : r).find(".laytable-cell-radio, .laytable-cell-checkbox").children("input").last(), + i = "radio" === o.attr("type"); + if (a) { + a = function () { + var e = function (e) { + layui.stope(e) + }; + o.parent().on("click", e), o.next().click(), o.parent().off("click", e) + }; + i ? t && !o.prop("checked") && a() : "boolean" === layui.type(t) && o.prop("checked") === t || a() + } else { + var c, a = n.getNodeDataByIndex(e.attr("data-index")), u = B.config.checkName; + if (!i) return t = "boolean" === layui.type(t) ? t : !a[u], i = n.updateStatus(a ? [a] : B.cache[d], function (e) { + e[B.config.disabledName] || (e[u] = t, e[b] = !1) + }, a && -1 !== ["parent", "none"].indexOf(l.data.cascade)), d = r.find(i.map(function (e) { + return 'tr[lay-data-index="' + e[Y] + '"] input[name="layTableCheckbox"]:not(:disabled)' + }).join(",")), n.setRowCheckedClass(d.closest("tr"), t), x.render(d.prop({ + checked: t, + indeterminate: !1 + })), a && a[s] && (c = n.getNodeDataByIndex(a[s])), n.updateCheckStatus(c, t); + a && (n.updateStatus(null, function (e) { + var t; + e[u] && (t = r.find('tr[lay-data-index="' + e[Y] + '"] input[type="radio"][lay-type="layTableRadio"]'), e[u] = !1, n.setRowCheckedClass(t.closest("tr"), !1), x.render(t.prop("checked", !1))) + }), a[u] = t, n.setRowCheckedClass(e, t), n.setRowCheckedClass(e.siblings(), !1), x.render(e.find('input[type="radio"][lay-type="layTableRadio"]').prop("checked", t))) + } + }); + j.on("checkbox", function (e) { + var t = e.config, a = t.elem.next(), t = t.id; + a.hasClass(h) && (a = P(t), t = e.checked, o(e), e.isAll = u.call(a, e.tr, t)) + }), j.setRowChecked = function (a, e) { + var t, n, i, l, d, r, o, c = P(a); + c && (t = c.getOptions().elem.next(), i = (e = e || {}).index, n = e.checked, e = e.callbackFlag, i = "string" === layui.type(i) ? i : i[Y], r = c.getNodeDataByIndex(i)) && (l = function (e) { + o.push(e), t.find('tr[lay-data-index="' + e + '"]').length || (e = c.getNodeDataByIndex(e)[s]) && l(e) + }, (d = t.find('tr[lay-data-index="' + i + '"]')).length || (r = r[s], o = [], l(r), layui.each(o.reverse(), function (e, t) { + j.expandNode(a, {index: t, expandFlag: !0}) + }), d = t.find('tr[lay-data-index="' + i + '"]')), u.call(c, d, n, e)) + }, j.checkAllNodes = function (e, t) { + var a, e = P(e); + e && (a = e.getOptions().elem.next(), u.call(e, a.find('tr[data-index="NONE"]'), !!t)) + }, j.getData = function (e, t) { + var a, n = P(e); + if (n) return a = [], layui.each(E.extend(!0, [], B.cache[e] || []), function (e, t) { + a.push(t) + }), t ? n.treeToFlat(a) : a + }, j.reloadAsyncNode = function (a, e) { + var t, n, i = P(a); + i && (t = i.getOptions().tree)["async"] && t["async"].enable && (n = i.getNodeDataByIndex(e)) && (n[z] = !1, n[H] = !1, n[X] = !1, layui.each(i.treeToFlat(n[t.customName.children]).reverse(), function (e, t) { + j.removeNode(a, t[Y]) + }), j.expandNode(a, {index: e, expandFlag: !0, callbackFlag: !0})) + }, j.getNodeById = function (e, t) { + e = P(e); + if (e) return e.getNodeById(t) + }, j.getNodesByFilter = function (e, t, a) { + var n, i, l, d = P(e); + if (d) return i = d.getOptions(), n = (a = a || {}).isSingle, a = (a = a.parentNode) && a.data, i = d.treeToFlat(a ? a[i.tree.customName.children] || [] : B.cache[e]).filter(t), l = [], layui.each(i, function (e, t) { + if (l.push(d.getNodeByIndex(t[Y])), n) return !0 + }), l + }, i.that = {}, j.reload = function (e, t, a, n) { + e = P(e); + if (e) return e.reload(t, a, n), i.call(e) + }, j.render = function (e) { + e = new t(e); + return i.call(e) + }, e("treeTable", j) +}); +layui.define(["form", "util"], function (e) { + "use strict"; + var p = layui.$, i = layui.form, y = layui.layer, f = layui.util, a = "tree", t = { + config: {customName: {id: "id", title: "title", children: "children"}}, + index: layui[a] ? layui[a].index + 1e4 : 0, + set: function (e) { + var i = this; + return i.config = p.extend({}, i.config, e), i + }, + on: function (e, i) { + return layui.onevent.call(this, a, e, i) + } + }, n = function () { + var i = this, e = i.config, a = e.id || i.index; + return n.that[a] = i, { + config: n.config[a] = e, reload: function (e) { + i.reload.call(i, e) + }, getChecked: function () { + return i.getChecked.call(i) + }, setChecked: function (e) { + return i.setChecked.call(i, e) + } + } + }, m = "layui-hide", u = "layui-disabled", k = "layui-tree-set", C = "layui-tree-iconClick", + v = "layui-icon-addition", x = "layui-icon-subtraction", b = "layui-tree-entry", g = "layui-tree-main", + w = "layui-tree-txt", N = "layui-tree-pack", F = "layui-tree-spread", T = "layui-tree-setLineShort", + L = "layui-tree-showLine", S = "layui-tree-lineExtend", l = function (e) { + var i = this; + i.index = ++t.index, i.config = p.extend({}, i.config, t.config, e), i.render() + }; + l.prototype.config = { + data: [], + showCheckbox: !1, + showLine: !0, + accordion: !1, + onlyIconControl: !1, + isJump: !1, + edit: !1, + text: {defaultNodeName: "\u672a\u547d\u540d", none: "\u65e0\u6570\u636e"} + }, l.prototype.reload = function (e) { + var a = this; + layui.each(e, function (e, i) { + "array" === layui.type(i) && delete a.config[e] + }), a.config = p.extend(!0, {}, a.config, e), a.render() + }, l.prototype.render = function () { + var e = this, i = e.config, + a = (i.customName = p.extend({}, t.config.customName, i.customName), e.checkids = [], p('
                ')), + n = (e.tree(a), i.elem = p(i.elem)); + if (n[0]) { + if (e.key = i.id || e.index, e.elem = a, e.elemNone = p('
                ' + i.text.none + "
                "), n.html(e.elem), 0 == e.elem.find(".layui-tree-set").length) return e.elem.append(e.elemNone); + i.showCheckbox && e.renderForm("checkbox"), e.elem.find(".layui-tree-set").each(function () { + var e = p(this); + e.parent(".layui-tree-pack")[0] || e.addClass("layui-tree-setHide"), !e.next()[0] && e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend") && e.addClass(T), e.next()[0] || e.parents(".layui-tree-set").eq(0).next()[0] || e.addClass(T) + }), e.events() + } + }, l.prototype.renderForm = function (e) { + i.render(e, "LAY-tree-" + this.index) + }, l.prototype.tree = function (r, e) { + var d = this, s = d.config, o = s.customName, e = e || s.data; + layui.each(e, function (e, i) { + var a, n, t = i[o.children] && 0 < i[o.children].length, + l = p('
                "), + c = p(['
                ', '
                ', '
                ', s.showLine ? t ? '' : '' : '', s.showCheckbox ? '' : "", s.isJump && i.href ? '' + (i[o.title] || i.label || s.text.defaultNodeName) + "" : '' + (i[o.title] || i.label || s.text.defaultNodeName) + "", "
                ", s.edit ? (a = { + add: '', + update: '', + del: '' + }, n = ['
                '], !0 === s.edit && (s.edit = ["update", "del"]), "object" == typeof s.edit ? (layui.each(s.edit, function (e, i) { + n.push(a[i] || "") + }), n.join("") + "
                ") : void 0) : "", "
                "].join("")); + t && (c.append(l), d.tree(l, i[o.children])), r.append(c), c.prev("." + k)[0] && c.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"), t || c.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"), d.spread(c, i), s.showCheckbox && (i.checked && d.checkids.push(i[o.id]), d.checkClick(c, i)), s.edit && d.operate(c, i) + }) + }, l.prototype.spread = function (n, t) { + var l = this, c = l.config, e = n.children("." + b), i = e.children("." + g), + a = i.find('input[same="layuiTreeCheck"]'), r = e.find("." + C), e = e.find("." + w), + d = c.onlyIconControl ? r : i, s = ""; + d.on("click", function (e) { + var i = n.children("." + N), + a = (d.children(".layui-icon")[0] ? d : d.find(".layui-tree-icon")).children(".layui-icon"); + i[0] ? n.hasClass(F) ? (n.removeClass(F), i.slideUp(200), a.removeClass(x).addClass(v), l.updateFieldValue(t, "spread", !1)) : (n.addClass(F), i.slideDown(200), a.addClass(x).removeClass(v), l.updateFieldValue(t, "spread", !0), c.accordion && ((i = n.siblings("." + k)).removeClass(F), i.children("." + N).slideUp(200), i.find(".layui-tree-icon").children(".layui-icon").removeClass(x).addClass(v))) : s = "normal" + }), e.on("click", function () { + p(this).hasClass(u) || (s = n.hasClass(F) ? c.onlyIconControl ? "open" : "close" : c.onlyIconControl ? "close" : "open", a[0] && l.updateFieldValue(t, "checked", a.prop("checked")), c.click && c.click({ + elem: n, + state: s, + data: t + })) + }) + }, l.prototype.updateFieldValue = function (e, i, a) { + i in e && (e[i] = a) + }, l.prototype.setCheckbox = function (e, i, a) { + var t, n = this, l = n.config.customName, c = a.prop("checked"); + a.prop("disabled") || ("object" != typeof i[l.children] && !e.find("." + N)[0] || e.find("." + N).find('input[same="layuiTreeCheck"]').each(function (e) { + this.disabled || ((e = i[l.children][e]) && n.updateFieldValue(e, "checked", c), n.updateFieldValue(this, "checked", c)) + }), (t = function (e) { + var i, a, n; + e.parents("." + k)[0] && (a = (e = e.parent("." + N)).parent(), n = e.prev().find('input[same="layuiTreeCheck"]'), c ? n.prop("checked", c) : (e.find('input[same="layuiTreeCheck"]').each(function () { + this.checked && (i = !0) + }), i || n.prop("checked", !1)), t(a)) + })(e), n.renderForm("checkbox")) + }, l.prototype.checkClick = function (a, n) { + var t = this, l = t.config; + a.children("." + b).children("." + g).on("click", 'input[same="layuiTreeCheck"]+', function (e) { + layui.stope(e); + var e = p(this).prev(), i = e.prop("checked"); + e.prop("disabled") || (t.setCheckbox(a, n, e), t.updateFieldValue(n, "checked", i), l.oncheck && l.oncheck({ + elem: a, + checked: i, + data: n + })) + }) + }, l.prototype.operate = function (r, d) { + var s = this, o = s.config, u = o.customName, e = r.children("." + b), h = e.children("." + g); + e.children(".layui-tree-btnGroup").on("click", ".layui-icon", function (e) { + layui.stope(e); + var i, e = p(this).data("type"), n = r.children("." + N), t = {data: d, type: e, elem: r}; + if ("add" == e) { + n[0] || (o.showLine ? (h.find("." + C).addClass("layui-tree-icon"), h.find("." + C).children(".layui-icon").addClass(v).removeClass("layui-icon-file")) : h.find(".layui-tree-iconArrow").removeClass(m), r.append('
                ')); + var a, l = o.operate && o.operate(t), c = {}; + if (c[u.title] = o.text.defaultNodeName, c[u.id] = l, s.tree(r.children("." + N), [c]), o.showLine && (n[0] ? (n.hasClass(S) || n.addClass(S), r.find("." + N).each(function () { + p(this).children("." + k).last().addClass(T) + }), (n.children("." + k).last().prev().hasClass(T) ? n.children("." + k).last().prev() : n.children("." + k).last()).removeClass(T), !r.parent("." + N)[0] && r.next()[0] && n.children("." + k).last().removeClass(T)) : (l = r.siblings("." + k), a = 1, c = r.parent("." + N), layui.each(l, function (e, i) { + p(i).children("." + N)[0] || (a = 0) + }), (1 == a ? (l.children("." + N).addClass(L), l.children("." + N).children("." + k).removeClass(T), r.children("." + N).addClass(L), c.removeClass(S), c.children("." + k).last().children("." + N).children("." + k).last()) : r.children("." + N).children("." + k)).addClass(T))), !o.showCheckbox) return; + h.find('input[same="layuiTreeCheck"]')[0].checked && (r.children("." + N).children("." + k).last().find('input[same="layuiTreeCheck"]')[0].checked = !0), s.renderForm("checkbox") + } else "update" == e ? (l = h.children("." + w).html(), h.children("." + w).html(""), h.append(''), h.children(".layui-tree-editInput").val(f.unescape(l)).focus(), i = function (e) { + var i = e.val().trim() || o.text.defaultNodeName; + e.remove(), h.children("." + w).html(i), t.data[u.title] = i, o.operate && o.operate(t) + }, h.children(".layui-tree-editInput").blur(function () { + i(p(this)) + }), h.children(".layui-tree-editInput").on("keydown", function (e) { + 13 === e.keyCode && (e.preventDefault(), i(p(this))) + })) : y.confirm('\u786e\u8ba4\u5220\u9664\u8be5\u8282\u70b9 "' + (d[u.title] || "") + '" \u5417\uff1f', function (e) { + var l, a, i; + o.operate && o.operate(t), t.status = "remove", y.close(e), r.prev("." + k)[0] || r.next("." + k)[0] || r.parent("." + N)[0] ? (r.siblings("." + k).children("." + b)[0] ? (o.showCheckbox && (l = function (e) { + var i, a, n, t; + e.parents("." + k)[0] && (i = e.siblings("." + k).children("." + b), a = (e = e.parent("." + N).prev()).find('input[same="layuiTreeCheck"]')[0], n = 1, (t = 0) == a.checked) && (i.each(function (e, i) { + i = p(i).find('input[same="layuiTreeCheck"]')[0]; + 0 != i.checked || i.disabled || (n = 0), i.disabled || (t = 1) + }), 1 == n) && 1 == t && (a.checked = !0, s.renderForm("checkbox"), l(e.parent("." + k))) + })(r), o.showLine && (e = r.siblings("." + k), a = 1, i = r.parent("." + N), layui.each(e, function (e, i) { + p(i).children("." + N)[0] || (a = 0) + }), 1 == a ? (n[0] || (i.removeClass(S), e.children("." + N).addClass(L), e.children("." + N).children("." + k).removeClass(T)), (r.next()[0] ? i.children("." + k).last() : r.prev()).children("." + N).children("." + k).last().addClass(T), r.next()[0] || r.parents("." + k)[1] || r.parents("." + k).eq(0).next()[0] || r.prev("." + k).addClass(T)) : !r.next()[0] && r.hasClass(T) && r.prev().addClass(T))) : (e = r.parent("." + N).prev(), o.showLine ? (e.find("." + C).removeClass("layui-tree-icon"), e.find("." + C).children(".layui-icon").removeClass(x).addClass("layui-icon-file"), (i = e.parents("." + N).eq(0)).addClass(S), i.children("." + k).each(function () { + p(this).children("." + N).children("." + k).last().addClass(T) + })) : e.find(".layui-tree-iconArrow").addClass(m), r.parents("." + k).eq(0).removeClass(F), r.parent("." + N).remove()), r.remove()) : (r.remove(), s.elem.append(s.elemNone)) + }) + }) + }, l.prototype.events = function () { + var i = this, t = i.config; + i.elem.find(".layui-tree-checkedFirst"); + i.setChecked(i.checkids), i.elem.find(".layui-tree-search").on("keyup", function () { + var e = p(this), a = e.val(), e = e.nextAll(), n = []; + e.find("." + w).each(function () { + var i, e = p(this).parents("." + b); + -1 != p(this).html().indexOf(a) && (n.push(p(this).parent()), (i = function (e) { + e.addClass("layui-tree-searchShow"), e.parent("." + N)[0] && i(e.parent("." + N).parent("." + k)) + })(e.parent("." + k))) + }), e.find("." + b).each(function () { + var e = p(this).parent("." + k); + e.hasClass("layui-tree-searchShow") || e.addClass(m) + }), 0 == e.find(".layui-tree-searchShow").length && i.elem.append(i.elemNone), t.onsearch && t.onsearch({elem: n}) + }), i.elem.find(".layui-tree-search").on("keydown", function () { + p(this).nextAll().find("." + b).each(function () { + p(this).parent("." + k).removeClass("layui-tree-searchShow " + m) + }), p(".layui-tree-emptyText")[0] && p(".layui-tree-emptyText").remove() + }) + }, l.prototype.getChecked = function () { + var t = this, e = t.config, l = e.customName, i = [], a = [], + c = (t.elem.find(".layui-form-checked").each(function () { + i.push(p(this).prev()[0].value) + }), function (e, n) { + layui.each(e, function (e, a) { + layui.each(i, function (e, i) { + if (a[l.id] == i) return t.updateFieldValue(a, "checked", !0), delete (i = p.extend({}, a))[l.children], n.push(i), a[l.children] && (i[l.children] = [], c(a[l.children], i[l.children])), !0 + }) + }) + }); + return c(p.extend({}, e.data), a), a + }, l.prototype.setChecked = function (l) { + this.config; + this.elem.find("." + k).each(function (e, i) { + var a = p(this).data("id"), n = p(i).children("." + b).find('input[same="layuiTreeCheck"]'), t = n.next(); + if ("number" == typeof l) { + if (a.toString() == l.toString()) return n[0].checked || t.click(), !1 + } else "object" == typeof l && layui.each(l, function (e, i) { + if (i.toString() == a.toString() && !n[0].checked) return t.click(), !0 + }) + }) + }, n.that = {}, n.config = {}, t.reload = function (e, i) { + e = n.that[e]; + return e.reload(i), n.call(e) + }, t.getChecked = function (e) { + return n.that[e].getChecked() + }, t.setChecked = function (e, i) { + return n.that[e].setChecked(i) + }, t.render = function (e) { + e = new l(e); + return n.call(e) + }, e(a, t) +}); +layui.define(["laytpl", "form"], function (e) { + "use strict"; + var d = layui.$, n = layui.laytpl, t = layui.form, a = "transfer", i = { + config: {}, index: layui[a] ? layui[a].index + 1e4 : 0, set: function (e) { + var t = this; + return t.config = d.extend({}, t.config, e), t + }, on: function (e, t) { + return layui.onevent.call(this, a, e, t) + } + }, l = function () { + var t = this, e = t.config, a = e.id || t.index; + return l.that[a] = t, { + config: l.config[a] = e, reload: function (e) { + t.reload.call(t, e) + }, getData: function () { + return t.getData.call(t) + } + } + }, s = "layui-hide", u = "layui-btn-disabled", c = "layui-none", r = "layui-transfer-box", + h = "layui-transfer-header", o = "layui-transfer-search", f = "layui-transfer-data", y = function (e) { + return ['
                ', '
                ', '", "
                ", "{{# if(d.data.showSearch){ }}", '", "{{# } }}", '
                  ', "
                  "].join("") + }, p = ['
                  ', y({ + index: 0, + checkAllName: "layTransferLeftCheckAll" + }), '
                  ', '", '", "
                  ", y({ + index: 1, + checkAllName: "layTransferRightCheckAll" + }), "
                  "].join(""), v = function (e) { + var t = this; + t.index = ++i.index, t.config = d.extend({}, t.config, i.config, e), t.render() + }; + v.prototype.config = { + title: ["\u5217\u8868\u4e00", "\u5217\u8868\u4e8c"], + width: 200, + height: 360, + data: [], + value: [], + showSearch: !1, + id: "", + text: {none: "\u65e0\u6570\u636e", searchNone: "\u65e0\u5339\u914d\u6570\u636e"} + }, v.prototype.reload = function (e) { + var t = this; + t.config = d.extend({}, t.config, e), t.render() + }, v.prototype.render = function () { + var e = this, t = e.config, a = e.elem = d(n(p, {open: "{{", close: "}}"}).render({data: t, index: e.index})), + i = t.elem = d(t.elem); + i[0] && (t.data = t.data || [], t.value = t.value || [], t.id = "id" in t ? t.id : elem.attr("id") || e.index, e.key = t.id, i.html(e.elem), e.layBox = e.elem.find("." + r), e.layHeader = e.elem.find("." + h), e.laySearch = e.elem.find("." + o), e.layData = a.find("." + f), e.layBtn = a.find(".layui-transfer-active .layui-btn"), e.layBox.css({ + width: t.width, + height: t.height + }), e.layData.css({height: (i = t.height - e.layHeader.outerHeight(), t.showSearch && (i -= e.laySearch.outerHeight()), i - 2)}), e.renderData(), e.events()) + }, v.prototype.renderData = function () { + var e = this, t = e.config, + l = [{checkName: "layTransferLeftCheck", views: []}, {checkName: "layTransferRightCheck", views: []}]; + e.parseData(function (a) { + var i = a.selected ? 1 : 0, + n = ["
                • ", '', "
                • "].join(""); + i ? layui.each(t.value, function (e, t) { + t == a.value && a.selected && (l[i].views[e] = n) + }) : l[i].views.push(n), delete a.selected + }), e.layData.eq(0).html(l[0].views.join("")), e.layData.eq(1).html(l[1].views.join("")), e.renderCheckBtn() + }, v.prototype.renderForm = function (e) { + t.render(e, "LAY-transfer-" + this.index) + }, v.prototype.renderCheckBtn = function (c) { + var r = this, o = r.config; + c = c || {}, r.layBox.each(function (e) { + var t = d(this), a = t.find("." + f), t = t.find("." + h).find('input[type="checkbox"]'), + i = a.find('input[type="checkbox"]'), n = 0, l = !1; + i.each(function () { + var e = d(this).data("hide"); + (this.checked || this.disabled || e) && n++, this.checked && !e && (l = !0) + }), t.prop("checked", l && n === i.length), r.layBtn.eq(e)[l ? "removeClass" : "addClass"](u), c.stopNone || (i = a.children("li:not(." + s + ")").length, r.noneView(a, i ? "" : o.text.none)) + }), r.renderForm("checkbox") + }, v.prototype.noneView = function (e, t) { + var a = d('

                  ' + (t || "") + "

                  "); + e.find("." + c)[0] && e.find("." + c).remove(), t.replace(/\s/g, "") && e.append(a) + }, v.prototype.setValue = function () { + var e = this.config, t = []; + return this.layBox.eq(1).find("." + f + ' input[type="checkbox"]').each(function () { + d(this).data("hide") || t.push(this.value) + }), e.value = t, this + }, v.prototype.parseData = function (t) { + var i = this.config, n = []; + return layui.each(i.data, function (e, a) { + a = ("function" == typeof i.parseData ? i.parseData(a) : a) || a, n.push(a = d.extend({}, a)), layui.each(i.value, function (e, t) { + t == a.value && (a.selected = !0) + }), t && t(a) + }), i.data = n, this + }, v.prototype.getData = function (e) { + var t = this.config, i = []; + return this.setValue(), layui.each(e || t.value, function (e, a) { + layui.each(t.data, function (e, t) { + delete t.selected, a == t.value && i.push(t) + }) + }), i + }, v.prototype.transfer = function (e, t) { + var a, i = this, n = i.config, l = i.layBox.eq(e), c = [], + t = (t ? ((a = (t = t).find('input[type="checkbox"]'))[0].checked = !1, l.siblings("." + r).find("." + f).append(t.clone()), t.remove(), c.push(a[0].value), i.setValue()) : l.each(function (e) { + d(this).find("." + f).children("li").each(function () { + var e = d(this), t = e.find('input[type="checkbox"]'), a = t.data("hide"); + t[0].checked && !a && (t[0].checked = !1, l.siblings("." + r).find("." + f).append(e.clone()), e.remove(), c.push(t[0].value)), i.setValue() + }) + }), i.renderCheckBtn(), l.siblings("." + r).find("." + o + " input")); + "" !== t.val() && t.trigger("keyup"), n.onchange && n.onchange(i.getData(c), e) + }, v.prototype.events = function () { + var n = this, l = n.config; + n.elem.on("click", 'input[lay-filter="layTransferCheckbox"]+', function () { + var e = d(this).prev(), t = e[0].checked, a = e.parents("." + r).eq(0).find("." + f); + e[0].disabled || ("all" === e.attr("lay-type") && a.find('input[type="checkbox"]').each(function () { + this.disabled || (this.checked = t) + }), setTimeout(function () { + n.renderCheckBtn({stopNone: !0}) + }, 0)) + }), n.elem.on("dblclick", "." + f + ">li", function (e) { + var t = d(this), a = t.children('input[type="checkbox"]'), i = t.parent().parent().data("index"); + a[0].disabled || !1 !== ("function" == typeof l.dblclick ? l.dblclick({ + elem: t, + data: n.getData([a[0].value])[0], + index: i + }) : null) && n.transfer(i, t) + }), n.layBtn.on("click", function () { + var e = d(this), t = e.data("index"); + e.hasClass(u) || n.transfer(t) + }), n.laySearch.find("input").on("keyup", function () { + var i = this.value, e = d(this).parents("." + o).eq(0).siblings("." + f), t = e.children("li"), + t = (t.each(function () { + var e = d(this), t = e.find('input[type="checkbox"]'), a = t[0].title, + a = ("cs" !== l.showSearch && (a = a.toLowerCase(), i = i.toLowerCase()), -1 !== a.indexOf(i)); + e[a ? "removeClass" : "addClass"](s), t.data("hide", !a) + }), n.renderCheckBtn(), t.length === e.children("li." + s).length); + n.noneView(e, t ? l.text.searchNone : "") + }) + }, l.that = {}, l.config = {}, i.reload = function (e, t) { + e = l.that[e]; + return e.reload(t), l.call(e) + }, i.getData = function (e) { + return l.that[e].getData() + }, i.render = function (e) { + e = new v(e); + return l.call(e) + }, e(a, i) +}); +layui.define(["jquery", "lay"], function (e) { + "use strict"; + var a = layui.$, l = layui.lay, t = (layui.hint(), layui.device(), { + config: {}, set: function (e) { + var i = this; + return i.config = a.extend({}, i.config, e), i + }, on: function (e, i) { + return layui.onevent.call(this, d, e, i) + } + }), d = "carousel", r = "layui-this", s = "layui-carousel-left", u = "layui-carousel-right", + c = "layui-carousel-prev", h = "layui-carousel-next", o = "layui-carousel-arrow", m = "layui-carousel-ind", + i = function (e) { + var i = this; + i.config = a.extend({}, i.config, t.config, e), i.render() + }; + i.prototype.config = { + width: "600px", + height: "280px", + full: !1, + arrow: "hover", + indicator: "inside", + autoplay: !0, + interval: 3e3, + anim: "", + trigger: "click", + index: 0 + }, i.prototype.render = function () { + var e = this, i = e.config, n = a(i.elem); + if (1 < n.length) return layui.each(n, function () { + t.render(a.extend({}, i, {elem: this})) + }), e; + a.extend(i, l.options(n[0])), i.elem = a(i.elem), i.elem[0] && (e.elemItem = i.elem.find(">*[carousel-item]>*"), i.index < 0 && (i.index = 0), i.index >= e.elemItem.length && (i.index = e.elemItem.length - 1), i.interval < 800 && (i.interval = 800), i.full ? i.elem.css({ + position: "fixed", + width: "100%", + height: "100%", + zIndex: 9999 + }) : i.elem.css({ + width: i.width, + height: i.height + }), i.elem.attr("lay-anim", i.anim), e.elemItem.eq(i.index).addClass(r), e.elemItem.length <= 1 || (e.indicator(), e.arrow(), e.autoplay(), e.events())) + }, i.prototype.reload = function (e) { + var i = this; + clearInterval(i.timer), i.config = a.extend({}, i.config, e), i.render() + }, i.prototype.prevIndex = function () { + var e = this.config.index - 1; + return e = e < 0 ? this.elemItem.length - 1 : e + }, i.prototype.nextIndex = function () { + var e = this.config.index + 1; + return e = e >= this.elemItem.length ? 0 : e + }, i.prototype.addIndex = function (e) { + var i = this.config; + i.index = i.index + (e = e || 1), i.index >= this.elemItem.length && (i.index = 0) + }, i.prototype.subIndex = function (e) { + var i = this.config; + i.index = i.index - (e = e || 1), i.index < 0 && (i.index = this.elemItem.length - 1) + }, i.prototype.autoplay = function () { + var e = this, i = e.config; + i.autoplay && (clearInterval(e.timer), e.timer = setInterval(function () { + e.slide() + }, i.interval)) + }, i.prototype.arrow = function () { + var i = this, e = i.config, + n = a(['", '"].join("")); + e.elem.attr("lay-arrow", e.arrow), e.elem.find("." + o)[0] && e.elem.find("." + o).remove(), e.elem.append(n), n.on("click", function () { + var e = a(this).attr("lay-type"); + i.slide(e) + }) + }, i.prototype["goto"] = function (e) { + var i = this, n = i.config; + e > n.index ? i.slide("add", e - n.index) : e < n.index && i.slide("sub", n.index - e) + }, i.prototype.indicator = function () { + var i, e = this, n = e.config, + t = e.elemInd = a(['
                    ', (i = [], layui.each(e.elemItem, function (e) { + i.push("") + }), i.join("")), "
                  "].join("")); + n.elem.attr("lay-indicator", n.indicator), n.elem.find("." + m)[0] && n.elem.find("." + m).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 () { + e["goto"](a(this).index()) + }) + }, i.prototype.slide = function (e, i) { + var n = this, t = n.elemItem, a = n.config, o = a.index, l = a.elem.attr("lay-filter"); + n.haveSlide || ("sub" === e ? (n.subIndex(i), t.eq(a.index).addClass(c), setTimeout(function () { + t.eq(o).addClass(u), t.eq(a.index).addClass(u) + }, 50)) : (n.addIndex(i), t.eq(a.index).addClass(h), setTimeout(function () { + t.eq(o).addClass(s), t.eq(a.index).addClass(s) + }, 50)), setTimeout(function () { + t.removeClass(r + " " + c + " " + h + " " + s + " " + u), t.eq(a.index).addClass(r), n.haveSlide = !1 + }, 350), n.elemInd.find("li").eq(a.index).addClass(r).siblings().removeClass(r), n.haveSlide = !0, e = { + index: a.index, + prevIndex: o, + item: t.eq(a.index) + }, "function" == typeof a.change && a.change(e), layui.event.call(this, d, "change(" + l + ")", e)) + }, i.prototype.events = function () { + var t, a, o = this, e = o.config; + e.elem.data("haveEvents") || (e.elem.on("mouseenter touchstart", function () { + "always" !== o.config.autoplay && clearInterval(o.timer) + }).on("mouseleave touchend", function () { + "always" !== o.config.autoplay && o.autoplay() + }), t = e.elem, a = "updown" === e.anim, l.touchSwipe(t, { + onTouchEnd: function (e, i) { + var n = Date.now() - i.timeStart, i = a ? i.distanceY : i.distanceX; + (.25 < Math.abs(i / n) || Math.abs(i) > t[a ? "height" : "width"]() / 3) && o.slide(0 < i ? "" : "sub") + } + }), e.elem.data("haveEvents", !0)) + }, t.render = function (e) { + return new i(e) + }, e(d, t) +}); +layui.define(["jquery", "lay"], function (e) { + "use strict"; + var u = layui.jquery, r = layui.lay, c = { + config: {}, index: layui.rate ? layui.rate.index + 1e4 : 0, set: function (e) { + var a = this; + return a.config = u.extend({}, a.config, e), a + }, on: function (e, a) { + return layui.onevent.call(this, l, e, a) + } + }, l = "rate", h = "layui-icon-rate", f = "layui-icon-rate-solid", o = "layui-icon-rate-half", + s = "layui-icon-rate-solid layui-icon-rate-half", v = "layui-icon-rate layui-icon-rate-half", a = function (e) { + var a = this; + a.index = ++c.index, a.config = u.extend({}, a.config, c.config, e), a.render() + }; + a.prototype.config = { + length: 5, + text: !1, + readonly: !1, + half: !1, + value: 0, + theme: "" + }, a.prototype.render = function () { + var e = this, a = e.config, l = u(a.elem); + if (1 < l.length) return layui.each(l, function () { + c.render(u.extend({}, a, {elem: this})) + }), e; + u.extend(a, r.options(l[0])); + for (var t = a.theme ? 'style="color: ' + a.theme + ';"' : "", i = (a.elem = u(a.elem), a.value > a.length && (a.value = a.length), parseInt(a.value) === a.value || a.half || (a.value = Math.ceil(a.value) - a.value < .5 ? Math.ceil(a.value) : Math.floor(a.value)), '
                    "), n = 1; n <= a.length; n++) { + var o = '
                  • "; + a.half && parseInt(a.value) !== a.value && n == Math.ceil(a.value) ? i = i + '
                  • " : i += o + } + i += "
                  " + (a.text ? '' + a.value + "\u661f" : "") + ""; + var l = a.elem, s = l.next(".layui-rate"); + s[0] && s.remove(), e.elemTemp = u(i), a.span = e.elemTemp.next("span"), a.setText && a.setText(a.value), l.html(e.elemTemp), l.addClass("layui-inline"), a.readonly || e.action() + }, a.prototype.setvalue = function (e) { + this.config.value = e, this.render() + }, a.prototype.action = function () { + var n = this.config, t = this.elemTemp, i = t.find("i").width(), l = t.children("li"); + l.each(function (e) { + var a = e + 1, l = u(this); + l.on("click", function (e) { + n.value = a, n.half && e.pageX - u(this).offset().left <= i / 2 && (n.value = n.value - .5), n.text && t.next("span").text(n.value + "\u661f"), n.choose && n.choose(n.value), n.setText && n.setText(n.value) + }), l.on("mousemove", function (e) { + t.find("i").each(function () { + u(this).addClass(h).removeClass(s) + }), t.find("i:lt(" + a + ")").each(function () { + u(this).addClass(f).removeClass(v) + }), n.half && e.pageX - u(this).offset().left <= i / 2 && l.children("i").addClass(o).removeClass(f) + }), l.on("mouseleave", function () { + t.find("i").each(function () { + u(this).addClass(h).removeClass(s) + }), t.find("i:lt(" + Math.floor(n.value) + ")").each(function () { + u(this).addClass(f).removeClass(v) + }), n.half && parseInt(n.value) !== n.value && t.children("li:eq(" + Math.floor(n.value) + ")").children("i").addClass(o).removeClass("layui-icon-rate-solid layui-icon-rate") + }) + }), r.touchSwipe(t, { + onTouchMove: function (e, a) { + var i; + Date.now() - a.timeStart <= 200 || (a = e.touches[0].pageX, e = t.width() / n.length, a = (a - t.offset().left) / e, (i = (i = (e = a % 1) <= .5 && n.half ? .5 + (a - e) : Math.ceil(a)) > n.length ? n.length : i) < 0 && (i = 0), l.each(function (e) { + var a = u(this).children("i"), l = Math.ceil(i) - e == 1, t = Math.ceil(i) > e, e = i - e == .5; + t ? (a.addClass(f).removeClass(v), n.half && e && a.addClass(o).removeClass(f)) : a.addClass(h).removeClass(s), a.toggleClass("layui-rate-hover", l) + }), n.value = i, n.text && t.next("span").text(n.value + "\u661f"), n.setText && n.setText(n.value)) + }, onTouchEnd: function (e, a) { + Date.now() - a.timeStart <= 200 || (t.find("i").removeClass("layui-rate-hover"), n.choose && n.choose(n.value), n.setText && n.setText(n.value)) + } + }) + }, a.prototype.events = function () { + }, c.render = function (e) { + e = new a(e); + return function () { + var a = this; + return { + setvalue: function (e) { + a.setvalue.call(a, e) + }, config: a.config + } + }.call(e) + }, e(l, c) +}); +layui.define("jquery", function (l) { + "use strict"; + var g = layui.$, e = function (l) { + }; + e.prototype.load = function (l) { + var t, i, o, n, e, r, a, c, m, s, u, f, y, d = this, p = 0, h = g((l = l || {}).elem); + if (h[0]) return e = g(l.scrollElem || document), r = l.mb || 50, a = !("isAuto" in l) || l.isAuto, c = l.end || "\u6ca1\u6709\u66f4\u591a\u4e86", m = l.scrollElem && l.scrollElem !== document, u = g('"), h.find(".layui-flow-more")[0] || h.append(u), f = function (l, e) { + l = g(l), u.before(l), (e = 0 == e || null) ? u.html(c) : u.find("a").html(s), i = e, t = null, o && o() + }, (y = function () { + t = !0, u.find("a").html(''), "function" == typeof l.done && l.done(++p, f) + })(), u.find("a").on("click", function () { + g(this); + i || t || y() + }), l.isLazyimg && (o = d.lazyimg({ + elem: l.elem + " img", + scrollElem: l.scrollElem + })), a && e.on("scroll", function () { + var e = g(this), o = e.scrollTop(); + n && clearTimeout(n), !i && h.width() && (n = setTimeout(function () { + var l = (m ? e : g(window)).height(); + (m ? e.prop("scrollHeight") : document.documentElement.scrollHeight) - o - l <= r && (t || y()) + }, 100)) + }), d + }, e.prototype.lazyimg = function (l) { + var e, c = this, m = 0, s = g((l = l || {}).scrollElem || document), u = l.elem || "img", + f = l.scrollElem && l.scrollElem !== document, y = function (e, l) { + var o, t = s.scrollTop(), l = t + l, i = f ? e.offset().top - s.offset().top + t : e.offset().top; + t <= i && i <= l && e.attr("lay-src") && (o = e.attr("lay-src"), layui.img(o, function () { + var l = c.lazyimg.elem.eq(m); + e.attr("src", o).removeAttr("lay-src"), l[0] && n(l), m++ + }, function () { + c.lazyimg.elem.eq(m); + e.removeAttr("lay-src") + })) + }, n = function (l, e) { + var o = (f ? e || s : g(window)).height(), t = s.scrollTop(), i = t + o; + if (c.lazyimg.elem = g(u), l) y(l, o); else for (var n = 0; n < c.lazyimg.elem.length; n++) { + var r = c.lazyimg.elem.eq(n), a = f ? r.offset().top - s.offset().top + t : r.offset().top; + if (y(r, o), m = n, i < a) break + } + }; + return n(), s.on("scroll", function () { + var l = g(this); + e && clearTimeout(e), e = setTimeout(function () { + n(null, l) + }, 50) + }), n + }, l("flow", new e) +}); +layui.define(["lay", "util", "element", "form"], function (e) { + "use strict"; + var x = layui.$, D = layui.util, S = layui.element, I = layui.form, N = layui.layer, A = (layui.hint(), { + ELEM_VIEW: "layui-code-view", + ELEM_TAB: "layui-tab", + ELEM_HEADER: "layui-code-header", + ELEM_FULL: "layui-code-full", + ELEM_PREVIEW: "layui-code-preview", + ELEM_ITEM: "layui-code-item", + ELEM_SHOW: "layui-show", + ELEM_LINE: "layui-code-line", + ELEM_LINE_NUM: "layui-code-line-number", + ELEM_LN_MODE: "layui-code-ln-mode", + CDDE_DATA_CLASS: "LayuiCodeDataClass", + LINE_RAW_WIDTH: 45 + }), T = { + elem: "", + about: "", + ln: !0, + header: !1, + encode: !0, + copy: !0, + text: {code: D.escape(""), preview: "Preview"}, + wordWrap: !0, + lang: "text", + highlighter: !1, + langMarker: !1 + }, W = layui.code ? layui.code.index + 1e4 : 0, R = function (e) { + return String(e).replace(/\s+$/, "").replace(/^\n|\n$/, "") + }; + e("code", function (l, e) { + var o, i, t, a, n, d, c, s, r, u, y, p, E, f, h, v, m, L, _, M, C, g = { + config: l = x.extend(!0, {}, T, l), reload: function (e) { + layui.code(this.updateOptions(e)) + }, updateOptions: function (e) { + return delete (e = e || {}).elem, x.extend(!0, l, e) + }, reloadCode: function (e) { + layui.code(this.updateOptions(e), "reloadCode") + } + }, w = x(l.elem); + return 1 < w.length ? layui.each(l.obverse ? w : w.get().reverse(), function () { + layui.code(x.extend({}, l, {elem: this}), e) + }) : (o = l.elem = x(l.elem))[0] && (x.extend(!0, l, lay.options(o[0]), (i = {}, layui.each(["title", "height", "encode", "skin", "about"], function (e, t) { + var a = o.attr("lay-" + t); + "string" == typeof a && (i[t] = a) + }), i)), l.encode = (l.encode || l.preview) && !l.codeRender, l.code = l.code || (t = [], o.children("textarea").each(function () { + t.push(R(this.value)) + }), 0 === t.length && t.push(R(o.html())), t.join("")), w = function (e) { + "function" == typeof l.codeRender && (e = l.codeRender(String(e), l)); + var t = String(e).split(/\r?\n/g); + return { + lines: t, html: e = x.map(t, function (e, t) { + return ['
                  ', l.ln ? ['
                  ', D.digit(t + 1) + ".", "
                  "].join("") : "", '
                  ', e || " ", "
                  ", "
                  "].join("") + }) + } + }, a = l.code, n = function (e) { + return "function" == typeof l.codeParse ? l.codeParse(e, l) : e + }, "reloadCode" === e ? o.children(".layui-code-wrap").html(w(n(a)).html) : (d = layui.code.index = ++W, o.attr("lay-code-index", d), (M = A.CDDE_DATA_CLASS in o.data()) && o.attr("class", o.data(A.CDDE_DATA_CLASS) || ""), M || o.data(A.CDDE_DATA_CLASS, o.attr("class")), c = { + copy: { + className: "file-b", + title: ["\u590d\u5236\u4ee3\u7801"], + event: function (e) { + var t = D.unescape(n(l.code)); + lay.clipboard.writeText({ + text: t, done: function () { + N.msg("\u5df2\u590d\u5236", {icon: 1}) + }, error: function () { + N.msg("\u590d\u5236\u5931\u8d25", {icon: 2}) + } + }), "function" == typeof l.onCopy && l.onCopy(t) + } + } + }, function b() { + var e = o.parent("." + A.ELEM_PREVIEW), t = e.children("." + A.ELEM_TAB), + a = e.children("." + A.ELEM_ITEM + "-preview"); + return t.remove(), a.remove(), e[0] && o.unwrap(), b + }(), l.preview && (M = "LAY-CODE-DF-" + d, f = l.layout || ["code", "preview"], s = "iframe" === l.preview, E = x('
                  '), C = x('
                  '), r = x('
                  '), _ = x('
                  '), u = x('
                  '), l.id && E.attr("id", l.id), E.addClass(l.className), C.attr("lay-filter", M), layui.each(f, function (e, t) { + var a = x('
                • '); + 0 === e && a.addClass("layui-this"), a.html(l.text[t]), r.append(a) + }), x.extend(c, { + full: { + className: "screen-full", + title: ["\u6700\u5927\u5316\u663e\u793a", "\u8fd8\u539f\u663e\u793a"], + event: function (e) { + var e = e.elem, t = e.closest("." + A.ELEM_PREVIEW), a = "layui-icon-" + this.className, + i = "layui-icon-screen-restore", l = this.title, o = x("html,body"), n = "layui-scrollbar-hide"; + e.hasClass(a) ? (t.addClass(A.ELEM_FULL), e.removeClass(a).addClass(i), e.attr("title", l[1]), o.addClass(n)) : (t.removeClass(A.ELEM_FULL), e.removeClass(i).addClass(a), e.attr("title", l[0]), o.removeClass(n)) + } + }, window: { + className: "release", title: ["\u5728\u65b0\u7a97\u53e3\u9884\u89c8"], event: function (e) { + D.openWin({content: n(l.code)}) + } + } + }), l.copy && ("array" === layui.type(l.tools) ? -1 === l.tools.indexOf("copy") && l.tools.unshift("copy") : l.tools = ["copy"]), u.on("click", ">i", function () { + var e = x(this), t = e.data("type"), + e = {elem: e, type: t, options: l, rawCode: l.code, finalCode: D.unescape(n(l.code))}; + c[t] && "function" == typeof c[t].event && c[t].event(e), "function" == typeof l.toolsEvent && l.toolsEvent(e) + }), l.addTools && l.tools && (l.tools = [].concat(l.tools, l.addTools)), layui.each(l.tools, function (e, t) { + var a = "object" == typeof t, i = a ? t : c[t] || {className: t, title: [t]}, l = i.className || i.type, + o = i.title || [""], a = a ? i.type || l : t; + a && (c[a] || ((t = {})[a] = i, x.extend(c, t)), u.append('')) + }), o.addClass(A.ELEM_ITEM).wrap(E), C.append(r), l.tools && C.append(u), o.before(C), s && _.html(''), y = function (e) { + var t = e.children("iframe")[0]; + s && t ? t.srcdoc = n(l.code) : e.html(l.code), setTimeout(function () { + "function" == typeof l.done && l.done({ + container: e, options: l, render: function () { + I.render(e.find(".layui-form")), S.render() + } + }) + }, 3) + }, "preview" === f[0] ? (_.addClass(A.ELEM_SHOW), o.before(_), y(_)) : o.addClass(A.ELEM_SHOW).after(_), l.previewStyle = [l.style, l.previewStyle].join(""), _.attr("style", l.previewStyle), S.on("tab(" + M + ")", function (e) { + var t = x(this), a = x(e.elem).closest("." + A.ELEM_PREVIEW).find("." + A.ELEM_ITEM), e = a.eq(e.index); + a.removeClass(A.ELEM_SHOW), e.addClass(A.ELEM_SHOW), "preview" === t.attr("lay-id") && y(e), L() + })), p = x(''), o.addClass((E = ["layui-code-view layui-border-box"], l.wordWrap || E.push("layui-code-nowrap"), E.join(" "))), (C = l.theme || l.skin) && (o.removeClass("layui-code-theme-dark layui-code-theme-light"), o.addClass("layui-code-theme-" + C)), l.highlighter && o.addClass([l.highlighter, "language-" + l.lang, "layui-code-hl"].join(" ")), f = w(l.encode ? D.escape(n(a)) : a), h = f.lines, o.html(p.html(f.html)), l.ln && o.append('
                  '), l.height && p.css("max-height", l.height), l.codeStyle = [l.style, l.codeStyle].join(""), l.codeStyle && p.attr("style", function (e, t) { + return (t || "") + l.codeStyle + }), v = [{ + selector: ">.layui-code-wrap>.layui-code-line{}", setValue: function (e, t) { + e.style["padding-left"] = t + "px" + } + }, { + selector: ">.layui-code-wrap>.layui-code-line>.layui-code-line-number{}", setValue: function (e, t) { + e.style.width = t + "px" + } + }, { + selector: ">.layui-code-ln-side{}", setValue: function (e, t) { + e.style.width = t + "px" + } + }], m = lay.style({ + target: o[0], id: "DF-code-" + d, text: x.map(x.map(v, function (e) { + return e.selector + }), function (e, t) { + return ['.layui-code-view[lay-code-index="' + d + '"]', e].join(" ") + }).join("") + }), L = function b() { + var e, i; + return l.ln && (e = Math.floor(h.length / 100), i = p.children("." + A.ELEM_LINE).last().children("." + A.ELEM_LINE_NUM).outerWidth(), o.addClass(A.ELEM_LN_MODE), e) && A.LINE_RAW_WIDTH < i && lay.getStyleRules(m, function (e, t) { + try { + v[t].setValue(e, i) + } catch (a) { + } + }), b + }(), l.header && ((_ = x('
                  ')).html(l.title || l.text.code), o.prepend(_)), M = x('
                  '), l.copy && !l.preview && ((C = x(['', '', ""].join(""))).on("click", function () { + c.copy.event() + }), M.append(C)), l.langMarker && M.append('' + l.lang + ""), l.about && M.append(l.about), o.append(M), l.preview || setTimeout(function () { + "function" == typeof l.done && l.done({}) + }, 3), l.elem.length === 1 + d && "function" == typeof l.allDone && l.allDone())), g + }) +}), layui["layui.all"] || layui.addcss("modules/code.css?v=6", "skincodecss"); \ No newline at end of file diff --git a/src/main/resources/static/js/layuiModules/dtree.js b/src/main/resources/static/js/layuiModules/dtree.js new file mode 100644 index 0000000..a05b22a --- /dev/null +++ b/src/main/resources/static/js/layuiModules/dtree.js @@ -0,0 +1,4947 @@ +/** + *@Name dtree 树形组件 + *@Author 智慧的小西瓜 + *@DOCS http://www.wisdomelon.com/DTreeHelper/ + *@License https://www.layui.com/ + *@LASTTIME 2019/10/24 + *@VERSION v2.5.6 + */ +layui.define(['jquery','layer','form'], function(exports) { + var $ = layui.$, + layer = layui.layer, + form = layui.form; + + // 树的公共定义样式汇总 + var LI_NAV_CHILD = "dtree-nav-ul-sid", LI_NAV_ITEM = "dtree-nav-item", + LI_DIV_ITEM = "dtree-nav-div", DTREEFONTSPECIAL="dtreefont-special", NONETITLE="dtree-none-text", + LI_DIV_MENUBAR = "dtree-menubar", + LI_DIV_TOOLBAR = "dtree-toolbar", TOOLBAR_TOOL = "dtree-toolbar-tool", TOOLBAR_TOOL_EM = "dtree-toolbar-fixed", + LI_DIV_CHECKBAR = "dtree-nav-checkbox-div", + LI_CLICK_CHECKBAR = "d-click-checkbar", //绑定点击复选框时需要用到 + LI_DIV_TEXT_CLASS = "t-click", UL_ROOT="dtree", + LI_NAV_FIRST_LINE = "dtree-nav-first-line", LI_NAV_LINE = "dtree-nav-line", LI_NAV_LAST_LINE = "dtree-nav-last-line"; + + + // 树的公共指定 + var NAV_THIS = "dtree-nav-this", //当前节点 + NAV_SHOW = "dtree-nav-show", //显示子节点 + NAV_HIDE = "dtree-nav-hide", //隐藏节点 + NAV_DIS = "dtree-disabled", //禁用节点 + ICON_HIDE = "dtree-icon-hide", //隐藏图标 + $BODY = $("body"), //body选择器 + $WIN = $(window), //window窗口 + $DOC = $(document), //当前文档 + MOD_NAME = "dtree", //模块名称 + VERSION = "v2.5.6", //版本 + OPTIONS = {}, //全局属性配置 + DTrees = {}; //当前被实例化的树的集合 + + // 树的自定义图标 + var DTREEFONT = "dtreefont", //默认使用图标字体 + LI_DIV_CHECKBAR_ON = "dtree-icon-fuxuankuangxuanzhong", //复选框选中图标 + LI_DIV_CHECKBAR_OUT = "dtree-icon-fuxuankuang", //复选框未选中图标 + LI_DIV_CHECKBAR_NOALL = "dtree-icon-fuxuankuang-banxuan", //复选框半选图标 + LI_DIV_MENUBAR_DOWN = "dtree-icon-move-down", //menubar的展开全部的图标 + LI_DIV_MENUBAR_UP = "dtree-icon-move-up", //menubar的收缩全部的图标 + LI_DIV_MENUBAR_REFRESH = "dtree-icon-refresh", //menubar的刷新图标 + LI_DIV_MENUBAR_CHECKALL = "dtree-icon-roundcheckfill", //menubar的全选图标 + LI_DIV_MENUBAR_UNCHECKALL = "dtree-icon-roundclosefill", //menubar的全不选图标 + LI_DIV_MENUBAR_INVERTALL = "dtree-icon-roundcheck", //menubar的反选图标 + LI_DIV_MENUBAR_DELETE = "dtree-icon-delete1", //menubar的删除图标 + LI_DIV_MENUBAR_SEARCH = "dtree-icon-search_list_light", //menubar的搜索图标 + LI_DIV_TOOLBAR_PULLDOWN = "dtree-icon-pulldown", //toolbar的展开图标 + LI_DIV_TOOLBAR_PULLUP = "dtree-icon-pullup", //toolbar的收缩图标 + LI_DIV_TOOLBAR_ADD = "dtree-icon-roundadd", //toolbar的新增图标 + LI_DIV_TOOLBAR_EDIT = "dtree-icon-bianji", //toolbar的编辑图标 + LI_DIV_TOOLBAR_DEL = "dtree-icon-roundclose"; //toolbar的删除图标 + + // 树的非叶子节点图标集合 + var nodeIconArray = { + "-1": {"open": "dtree-icon-null-open", "close": "dtree-icon-null-close"}, //未指定 + "0" : {"open": "dtree-icon-wenjianjiazhankai", "close": "dtree-icon-weibiaoti5"}, //文件夹(二级图标默认样式) + "1" : {"open": "dtree-icon-jian", "close": "dtree-icon-jia"}, //+-图标(一级图标默认样式) + "2" : {"open": "dtree-icon-xiangxia1", "close": "dtree-icon-xiangyou"} //箭头图标 + }; + + // 树的叶子节点图标集合 + var leafIconArray = { + "-1": "dtree-icon-null", //未指定 + "0" : "dtree-icon-weibiaoti5", //文件夹 + "1" : "dtree-icon-yonghu", //人员 + "2" : "dtree-icon-fenzhijigou", //机构 + "3" : "dtree-icon-fenguangbaobiao", //报表 + "4" : "dtree-icon-xinxipilu", //信息 + "5" : "dtree-icon-shuye1", //叶子(二级图标默认样式) + "6" : "dtree-icon-caidan_xunzhang", //勋章 + "7" : "dtree-icon-normal-file", //文件 + "8" : "dtree-icon-dian", //小圆点(一级图标默认样式) + "9" : "dtree-icon-set-sm", //齿轮 + "10" : "dtree-icon-rate" //星星 + }; + + // 树的自定义样式 + var DTREE = "dtree-", //自定义样式前缀 + ITEMTHIS = "-item-this", //自定义样式当前行选中后缀 + ITEM = "-item", //自定义样式当前行后缀 + DFONT = "-dtreefont", //自定义样式图标样式后缀 + FICON = "-ficon", //自定义样式一级图标样式后缀 + ICON = "-icon", //自定义样式二级图标样式后缀 + CBOX = "-checkbox", //自定义样式复选框样式后缀 + CHS = "-choose"; //自定义样式复选框选中样式后缀 + + // 树自定义操作事件名称集合 绑定dtree-click的事件 + var eventName = { + checkNodeClick: "checkNodeClick", //点击复选框 + itemNodeClick: "itemNodeClick" //点击子节点div + }; + + // 树默认toolbar提供的功能集合 绑定dtree-tool的事件 + var defaultTool = { + pulldown: "pulldown", //点击展开当前节点下的全部节点 + pullup: "pullup", //点击收缩当前节点下的全部节点 + addTool: "addToolbar", //点击toolbar新增 + editTool: "editToolbar", //点击toolbar编辑 + delTool: "delToolbar" //点击toolbar删除 + }; + + // 树默认menubar提供的功能集合 绑定dtree-menu的事件 + var defaultMenu = { + moveDown: "moveDown", //menubar展开全部节点 + moveUp: "moveUp", //menubar收缩全部节点 + refresh: "refresh", //menubar刷新树 + checkAll: "checkAll", //menubar全选 + unCheckAll: "unCheckAll", //menubar全不选 + invertAll: "invertAll", //menubar反选 + remove: "remove", //menubar删除选中节点 + searchNode: "searchNode" //menubar查询节点 + }; + + // 树的公共事件 + var event = { + getElemId: function(options){ // 根据传入的参数获取ID + var elem = options.elem || ""; + var obj = options.obj || $(elem); + + if (obj.length == 0) { //页面中未找到绑定id + return ""; + } else { + return $(obj)[0].id; + } + }, + escape: function(html){ + if(typeof html !== 'string') return ''; + return html.replace(entityReg.escape, function(match){return entityMap.escape[match];}); + }, + unescape: function(str){ + if(typeof str !== 'string') return ''; + return str.replace(entityReg.unescape, function(match){return entityMap.unescape[match];}); + }, + cloneObj: function (obj, filter) { //深复制对象方法 + var newObj = {}; + if (obj instanceof Array) { + newObj = []; + } + var str = ""; + if(typeof filter !== 'undefined') {str = filter.join(",");} + for (var key in obj) { + if(str.indexOf(key) == -1){ + var val = obj[key]; + newObj[key] = typeof val === 'object' ? event.cloneObj(val, typeof filter !== undefined ? filter : []): val; + } + + } + return newObj; + }, + trimToDot: function(str){ + return str.replace(/ /g, "."); + } + }; + + // 特殊符号转义 + var keys = Object.keys || function(obj) { + obj = Object(obj); + var arr = []; + for(var a in obj) arr.push(a); + return arr; + }; + var invert = function(obj){ + obj = Object(obj); + var result = {}; + for(var a in obj) result[obj[a]] = a; + return result; + }; + var entityMap = { + escape: { + "&" : "&", + "<" : "<", + ">" : ">", + "'" : "&quo;" + } + }; + entityMap.unescape = invert(entityMap.escape); + var entityReg = { + escape: RegExp('[' + keys(entityMap.escape).join('') + ']', 'g'), + unescape: RegExp('(' + keys(entityMap.unescape).join('|') + ')', 'g') + }; + + //异步加载接口 + var AjaxHelper = { + request : function(config) { + var data = config.data ? config.data : {}; + var async = (typeof (config.async) === "boolean") ? config.async : true; + $.ajax({ + type : config.type ? config.type : "POST", + headers : config.headers, + url : config.url, + dataType : config.dataType ? config.dataType : "json", + data : data, + async : async, + contentType : config.contentType, + xhrFields: {withCredentials: config.withCredentials}, + success : config.success, + error : function(XMLHttpRequest, textStatus, errorThrown) { + if (typeof (config.error) === "function") { + config.error(XMLHttpRequest, textStatus, errorThrown); + } else { + layer.msg("异步加载失败: " + textStatus,{icon:5, shift:6}); + } + }, + statusCode : { + 404 : function() { + layer.msg('未找到指定请求,请检查访问路径!',{icon:5, shift:6}); + }, + 500 : function() { + layer.msg('系统错误!',{icon:5, shift:6}); + } + }, + complete : function(XMLHttpRequest, textStatus) { + if (typeof (config.complete) === "function") { + config.complete(XMLHttpRequest, textStatus); + } + } + }); + }, + serialize: function(param){ //json序列化 key=value&key1=value1 + var p = "?"; + for (var key in param) { + p += key + "=" + param[key] + "&"; + } + p = p.substring(0, p.length-1); + return p; + } + }; + + // 树类 + var DTree = function(options){ + var _this = this; + /** 默认赋值**/ + this.formatter = { // 数据过滤 + title: false // 文字,默认不开启 + }; + this.response = { // 树返回的json格式 + statusName: "code", //返回标识 + statusCode: 200, //返回码 + message: "message", //返回信息 + rootName: "data", //根节点名称 + treeId: "id", //节点ID + parentId: "parentId", //父节点ID + title: "title", //节点名称 + ficonClass: "ficonClass", //自定义一级图标 + iconClass: "iconClass", //自定义二级图标 + childName: "children", //子节点名称 + last: "last", //是否最后一级节点 +// level: "level", //层级 + spread: "spread", //展开 + disabled: "disabled", //禁用 + hide: "hide", //隐藏 + checkArr: "checkArr", //复选框列表 + checked: "checked", //是否选中 + type: "type", //复选框标记 + basicData: "basicData" //表示用户自定义需要存储在树节点中的数据 + }; + this.defaultRequest = { // 树的默认发起请求参数格式,最后会将value作为参数名称传递 + nodeId: "nodeId", //节点ID + parentId: "parentId", //父节点ID + context: "context", //节点内容 + leaf: "leaf", //是否叶子节点 + level: "level", //层级 + spread: "spread", //节点展开状态 + dataType: "dataType", //节点标记 + checked: "checked", //节点复选框选中状态 + initchecked: "initchecked", //节点复选框初始状态 + basicData: "basicData", //用户自定义的记录节点数据 + recordData: "recordData", //当前data数据(排除basicData和children字段) + }; + this.toolbarFun = { + addTreeNode: function(param, $div) { //添加树节点后调用的函数,用于用户自定义,如未指定则树不会发生变化 + return ; + }, + editTreeNode: function(param, $div) { //编辑树节点后调用的函数,用于用户自定义,如未指定则树不会发生变化 + return ; + }, + editTreeLoad: function(param){ // 编辑树的数据回显,用于打开编辑时,回填数据 + return ; + }, + delTreeNode: function(param, $div){ //删除树后调用的函数,用于用户自定义,如未指定则树不会发生变化 + return ; + }, + loadToolbarBefore: function(buttons, param, $div){ // 右键菜单加载前的函数 + return buttons; + } + }; + this.toolbarStyle = { + title: "节点", + area: ["60%","80%"] + }; + this.menubarFun = { + remove: function(checkbarNodes){ //删除复选框选中节点,需要用户自定义,如未指定则树只是页面上做了修改 + return true; + } + }; + this.menubarTips = { + toolbar: [], + group: [defaultMenu.moveDown, defaultMenu.moveUp, defaultMenu.refresh, defaultMenu.checkAll, defaultMenu.unCheckAll, defaultMenu.invertAll, defaultMenu.remove, defaultMenu.searchNode], + freedom: [] + }; + this.checkbarFun = { + chooseBefore: function($i, node){ // 复选框点击前回调 + return true; + }, + chooseDone: function(checkbarNodesParam) { //复选框点击事件完毕后,返回该树关于复选框操作的全部信息,用于用户自定义,如未指定则树只是页面上做了修改 + return ; + } + }; + this.iframeDefaultRequest = { //iframe的默认参数,目的是与加载树的参数不一样 + nodeId: "nodeId", //节点ID + parentId: "parentId", //父节点ID + context: "context", //节点内容 + leaf: "leaf", //是否叶子节点 + level: "level", //层级 + spread: "spread", //节点展开状态 + dataType: "dataType", //节点标记 + checked: "checked", //节点复选框选中状态 + initchecked: "initchecked", //节点复选框初始状态 + basicData: "basicData", //用户自定义的记录节点数据 + recordData: "recordData", //当前data数据(排除basicData和children字段) + }; + + this.iframeFun = { + iframeDone: function(iframeParam){ //iframe加载完毕后,用于用户自定义事件 + return ; + } + }; + this.style = { //树最终使用的样式集合 + item: "", //每一项div的样式 + itemThis: "", //选中div的样式 + dfont: "", //一级图标的样式 + icon: "", //二级图标的样式 + cbox: "", //复选框的样式 + chs: "" //复选框选中的样式 + }; + this.usefontStyle = { //树最终使用的图标集合 + fnode:{ //一级节点 + node:{ //非叶子节点 + open:"", //节点展开 + close:"" //节点关闭 + }, + leaf:"" //叶子节点 + }, + snode:{ //二级节点 + node:{ //非叶子节点 + open:"", //节点展开 + close:"" //节点关闭 + }, + leaf:"" //叶子节点 + }, + checkbox:{ //复选框 + on:"", //复选框选中 + out:"", //未选中 + noall:"" //半选 + }, + menubar:{ //菜单栏 + movedown:"", //全部展开 + moveup:"", //全部收缩 + refresh:"", //刷新 + checkAll:"", //全选 + unCheckAll:"", //全不选 + invertAll:"", //反选 + remove:"", //删除 + search:"" //搜索 + }, + menubarExt:"", //扩展菜单栏 + toolbar:{ //工具栏 + menubar:{ //依附在菜单栏的工具栏 + movedown:"", //全部展开 + moveup:"", //全部收缩 + refresh:"", //刷新 + checkAll:"", //全选 + unCheckAll:"", //全不选 + invertAll:"", //反选 + remove:"", //删除 + search:"" //搜索 + }, + menubarExt:"", //依附在菜单栏的扩展菜单栏 + pulldown:"", //展开 + pullup:"", //收缩 + add:"", //添加 + edit:"", //编辑 + del:"" //删除 + }, + toolbarExt:"" //扩展工具栏 + } + + /** 数据绑定**/ + this.node = { // 树节点选中时,包含当前节点的全部信息 + nodeId: "", //节点ID + parentId: "", //父节点ID + context: "", //节点内容 + leaf: "", //是否叶子节点 + level: "", //层级 + spread: "", //节点展开状态 + dataType: "", //节点标记 + checked: "", //节点复选框选中状态 + initchecked: "", //节点复选框初始状态 + basicData: "", //用户自定义的记录节点数据 + recordData: "", //当前data数据(排除basicData和children字段) + }; + + this.toolbarMenu = {}; // 工具栏右键菜单绑定的所有元素 + this.checkbarNode = []; // 复选框标记的全部节点数据 + this.errData = []; // 记录在渲染节点时有问题的数据 + this.checkArrLen = 0; //添加节点的时判断复选框个数 + this.temp = []; // 临时变量 + this.bak = ""; // 临时变量 + this.setting(options); + }; + + /******************** 初始参数加载 ********************/ + // 设置基本参数值 + DTree.prototype.setting = function(options) { + this.options = options || {}; + + /** 绑定元素参数(必填,2个参数项必填一个)**/ + this.elem = this.options.elem || OPTIONS.elem || ""; //树绑定的元素ID:#elem + if(typeof this.options.obj === 'undefined'){ + if(this.elem) { + if($(this.elem).length > 0) { + this.obj = $(this.elem); + } + } + } else { + this.obj = this.options.obj || OPTIONS.obj || this.obj; //树绑定的jquery元素,用于当元素是延迟加载出来的话,可以用这个找到 + this.elem = "#" + this.obj[0].id; + } + + /** 基本参数**/ + this.scroll = this.options.scroll || OPTIONS.scroll || this.elem; //树的上级div容器,让树可以显示滚动条的div容器的ID + this.accordion = (typeof (this.options.accordion) === "boolean") ? this.options.accordion : (typeof (OPTIONS.accordion) === "boolean") ? OPTIONS.accordion : false; //手风琴加载, 默认false + if(this.accordion) { + this.initLevel = 1; //默认展开节点 1节 + } else { + this.initLevel = this.options.initLevel || OPTIONS.initLevel || 2; //默认展开节点 2节 + } + this.type = this.options.type || OPTIONS.type || "load"; //树的加载方式 all,全量树, load,增量树,默认load + this.cache = (typeof (this.options.cache) === "boolean") ? this.options.cache : (typeof (OPTIONS.cache) === "boolean") ? OPTIONS.cache : true; //数据缓存,默认true + this.record = this.options.record || OPTIONS.record || false; //开启数据记录模式,默认false + this.load = (typeof (this.options.load) === "boolean") ? this.options.load : (typeof (OPTIONS.load) === "boolean") ? OPTIONS.load : true; //开启加载动画,默认true + this.none = this.options.none || OPTIONS.nont || "无数据"; //初始加载无记录时显示文字 + this.tempHeight = this.options.height || OPTIONS.height; //临时转换高度变量 + if(this.tempHeight) { // 设置高度 + if(/^full-\d+$/.test(this.tempHeight)) { + this.fullHeightGap = this.tempHeight.split('-')[1]; + this.height = $WIN.height() - this.fullHeightGap; //设置高度 + } else { + this.fullHeightGap = this.tempHeight; + this.height = this.tempHeight; + } + } else { + this.fullHeightGap = ""; + this.height = ""; + } + this.width = this.options.width || OPTIONS.width || "260"; //宽度 + this.obj.css("width", this.width); + + /** 样式相关参数**/ + this.iconfont = this.options.iconfont || OPTIONS.iconfont || DTREEFONT; //默认图标字体 dtreefont + this.iconfontStyle = this.options.iconfontStyle || OPTIONS.iconfontStyle || {}; //用于自定义树的每个关键部位使用的图标 + this.nodeIconArray = $.extend(nodeIconArray, this.options.nodeIconArray || OPTIONS.nodeIconArray) || nodeIconArray; //用户自定义非叶子节点图标集合,node + this.leafIconArray = $.extend(leafIconArray, this.options.leafIconArray || OPTIONS.leafIconArray) || leafIconArray; //用户自定义叶子节点图标集合,leaf + this.skin = this.options.skin || OPTIONS.skin || "theme"; // 自定义样式 + if(this.skin == "layui"){ // layui主题 + this.line = (typeof (this.options.line) === "boolean") ? this.options.line : (typeof (OPTIONS.line) === "boolean") ? OPTIONS.line : true; //开启树线,默认开启 + this.ficon = this.options.ficon || OPTIONS.ficon || "7"; //一级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标。默认'7' + this.fnodeIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? (this.ficon == "-1" ? "-1" : "1") : this.ficon[0]; //一级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示一级图标,默认'1' + this.fleafIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? this.ficon : this.ficon[1]; //一级图标中的leaf节点图标 + this.icon = this.options.icon || OPTIONS.icon || "-1"; //二级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标。默认'-1' + this.nodeIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? (this.icon == "-1" ? "-1" : "-1") : this.icon[0]; //二级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'-1' + this.leafIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? this.icon : this.icon[1]; //二级图标中的leaf节点图标 + } else if(this.skin == "laySimple"){ // laySimple主题 + this.line = this.options.line || OPTIONS.line || false; //开启树线,默认不开启 + this.ficon = this.options.ficon || OPTIONS.ficon || ["2","-1"]; //一级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标。默认'-1' + this.fnodeIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? (this.ficon == "-1" ? "-1" : "2") : this.ficon[0]; //一级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示一级图标,默认'2' + this.fleafIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? this.ficon : this.ficon[1]; // 一级图标中的leaf节点图标 + this.icon = this.options.icon || OPTIONS.icon || "-1"; //二级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标。默认'-1' + this.nodeIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? (this.icon == "-1" ? "-1" : "-1") : this.icon[0]; //二级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'-1' + this.leafIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? this.icon : this.icon[1]; //二级图标中的leaf节点图标 + } else { // 默认主题 或者自定义主题 + this.line = this.options.line || OPTIONS.line || false; //开启树线,默认不开启 + this.ficon = this.options.ficon || OPTIONS.ficon || "8"; //一级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标。默认'8' + this.fnodeIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? (this.ficon == "-1" ? "-1" : "1") : this.ficon[0]; //一级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示一级图标,默认'1' + this.fleafIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? this.ficon : this.ficon[1]; // 一级图标中的leaf节点图标 + this.icon = this.options.icon || OPTIONS.icon || "5"; //二级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标。默认'5' + this.nodeIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? (this.icon == "-1" ? "-1" : "0") : this.icon[0]; //二级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'0' + this.leafIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? this.icon : this.icon[1]; //二级图标中的leaf节点图标 + } + + /** 数据加载参数**/ + this.url = this.options.url || OPTIONS.url || ""; //请求地址 + this.async = (typeof (this.options.async) === "boolean") ? this.options.async : (typeof (OPTIONS.async) === "boolean") ? OPTIONS.async : true; //异步同步加载,默认异步加载 + this.headers = this.options.headers || OPTIONS.headers || {}; //ajax header属性 + this.method = this.options.method || OPTIONS.method || "post"; //请求类型 + this.dataType = this.options.dataType || OPTIONS.dataType || "json"; //参数类型 + this.contentType = this.options.contentType || OPTIONS.contentType || "application/x-www-form-urlencoded"; //发送信息至服务器时内容编码类型 + this.defaultRequest = $.extend(this.defaultRequest, this.options.defaultRequest || OPTIONS.defaultRequest) || this.defaultRequest; //默认请求参数 + this.filterRequest = this.options.filterRequest || OPTIONS.filterRequest || []; //过滤请求参数 + this.request = this.options.request || OPTIONS.request || {}; //用户自定义请求参数 + this.response = $.extend(this.response, this.options.response || OPTIONS.response) || this.response; //返回json格式 + this.data = this.options.data || OPTIONS.data || null; //初始化指定该参数,则不会访问异步接口 + this.dataFormat = this.options.dataFormat || OPTIONS.dataFormat || "levelRelationship"; //用于用户配置的data数据格式,list:列表, levelRelationship:层级关系,默认 + this.dataStyle = this.options.dataStyle || OPTIONS.dataStyle || "defaultStyle"; //用于用户配置layui通用的json数据风格,layuiStyle:layui风格,defaultStyle:默认风格 + this.errDataShow = this.options.errDataShow || OPTIONS.errDataShow || false; //是否在递归数据出现错误后,显示错误信息,默认false + this.withCredentials = this.options.withCredentials || OPTIONS.withCredentials || false; //是否允许跨域请求,默认false + this.success = this.options.success || OPTIONS.success || function(data, obj){}; //树加载完毕后执行解析树之前的回调 + this.done = this.options.done || OPTIONS.done || function(data, obj){}; //树加载完毕后的回调 + this.formatter = $.extend(this.formatter, this.options.formatter || OPTIONS.formatter) || this.formatter; //数据过滤 + this.error = this.options.error || OPTIONS.error || function(XMLHttpRequest, textStatus, errorThrown){}; // 异步加载异常回调 + this.complete = this.options.complete || OPTIONS.complete || function(XMLHttpRequest, textStatus){}; // 异步加载完成回调 + + /** 复选框参数**/ + this.checkbar = this.options.checkbar || OPTIONS.checkbar || false; //是否开启复选框模式 + this.checkbarLoad = this.options.checkbarLoad || OPTIONS.checkbarLoad || "node"; //复选框作用范围,node:所有节点, leaf:最后一级;默认所有节点 + this.checkbarType = this.options.checkbarType || OPTIONS.checkbarType || "all"; //复选框选中形式 all:子集选中父级也选中, no-all:子集选中父级半选中,子集全选父级选中,p-casc:父级选中子集全选,子集无法改变父级选中状态, self:没有任何级联关系,only:只能选中一个复选框。 默认all + this.checkbarData = this.options.checkbarData || OPTIONS.checkbarData || "choose"; //复选框记录数据类型形式, change表示记录变更数据,choose表示记录选中数据,all记录全部数据,halfChoose记录选中和半选中的数据,默认choose + this.checkbarFun = $.extend(this.checkbarFun, this.options.checkbarFun || OPTIONS.checkbarFun) || this.checkbarFun; //checkbar事件加载 + + /** 菜单栏参数**/ + this.menubar = this.options.menubar || OPTIONS.menubar || false; //是否打开菜单栏 + this.menubarTips = $.extend(this.menubarTips, this.options.menubarTips || OPTIONS.menubarTips) || this.menubarTips; //菜单栏吸附, toolbar:依附在工具栏,group:依附在按钮组,freedom,自由 + this.menubarFun = $.extend(this.menubarFun, this.options.menubarFun || OPTIONS.menubarFun) || this.menubarFun; //menubar事件加载 + + /** 工具栏参数**/ + this.toolbar = this.options.toolbar || OPTIONS.toolbar || false; //是否开启可编辑模式 + this.toolbarWay = this.options.toolbarWay || OPTIONS.toolbarWay || "contextmenu"; //工具栏显示方式,contextmenu:右键,follow:跟随节点,fixed:固定在节点右侧 + this.toolbarStyle = $.extend(this.toolbarStyle, this.options.toolbarStyle || OPTIONS.toolbarStyle) || this.toolbarStyle; //toolbar的自定义风格,标题,弹框大小 + this.toolbarLoad = this.options.toolbarLoad || OPTIONS.toolbarLoad || "node"; //toolbar作用范围:node:所有节点,noleaf:非最后一级节点,leaf:最后一级 + this.toolbarShow = this.options.toolbarShow || OPTIONS.toolbarShow || ["add","edit","delete"]; //toolbar三个按钮自定义加载 + this.toolbarBtn = this.options.toolbarBtn || OPTIONS.toolbarBtn || null; //toolbar增删改中内容的自定义加载 + this.toolbarExt = this.options.toolbarExt || OPTIONS.toolbarExt || []; //toolbar按钮扩展 + this.toolbarFun = $.extend(this.toolbarFun, this.options.toolbarFun || OPTIONS.toolbarFun) || this.toolbarFun; //toolbar事件加载 + + /** iframe模式参数**/ + this.useIframe = this.options.useIframe || OPTIONS.useIframe || false; //是否加载iframe 默认false, + this.iframeElem = this.options.iframeElem || OPTIONS.iframeElem || ""; //iframe的ID + this.iframeUrl = this.options.iframeUrl || OPTIONS.iframeUrl || ""; //树关联的iframe地址 + this.iframeLoad = this.options.iframeLoad || OPTIONS.iframeLoad || "leaf"; //点击哪一层加载frame: node:所有节点, leaf:默认,最后一级 + this.iframeDefaultRequest = $.extend(this.iframeDefaultRequest, this.options.iframeDefaultRequest || OPTIONS.iframeDefaultRequest) || this.iframeDefaultRequest; //iframe的默认传递参数 + this.iframeRequest = $.extend(this.iframeRequest, this.options.iframeRequest) || $.extend(this.iframeRequest, OPTIONS.iframeRequest) || this.iframeRequest; //iframe的自定义参数 + this.iframeFun = $.extend(this.iframeFun, this.options.iframeFun) || $.extend(this.iframeFun, OPTIONS.iframeFun) || this.iframeFun; //iframe事件加载 + + /** 下拉树模式参数**/ + this.select = this.options.select || false; + if(this.select) { + // 重置下拉树 + this.selectSetting(); + } + + /** 调用确认最终主题方法*/ + this.ensureTheme(); + }; + + // 设置基本参数值 + DTree.prototype.reloadSetting = function(options) { + this.options = $.extend(this.options, options) || this.options; + + /** 绑定元素参数**/ + this.elem = this.options.elem || this.elem; //树绑定的元素ID:#elem + if(typeof this.options.obj === 'undefined'){ + if(this.elem) { + if($(this.elem).length > 0) { + this.obj = $(this.elem); + } + } + } else { + this.obj = this.options.obj || this.obj; //树绑定的jquery元素,用于当元素是延迟加载出来的话,可以用这个找到 + this.elem = "#" + this.obj[0].id; + } + + /** 基本参数**/ + this.scroll = this.options.scroll || this.scroll; //树的上级div容器,让树可以显示滚动条的div容器 + this.accordion = (typeof (this.options.accordion) === "boolean") ? this.options.accordion : this.accordion; //开启手风琴加载 + if(this.accordion) { + this.initLevel = 1; //默认展开节点 1节 + } else { + this.initLevel = this.options.initLevel || this.initLevel; //默认展开节点 2节 + } + this.type = this.options.type || this.type; //树的加载方式 all,全量树, load,增量树,默认load + this.cache = (typeof (this.options.cache) === "boolean") ? this.options.cache : this.cache; //开启数据缓存 + this.record = (typeof (this.options.record) === "boolean") ? this.options.record : this.record; //开启数据记录模式 + this.load = (typeof (this.options.load) === "boolean") ? this.options.load : this.load; //开启加载动画 + this.none = this.options.none || this.none; //初始节点加载无数据时显示文字 + this.tempHeight = this.options.height || this.height; //临时转换高度变量 + if(this.tempHeight) { //设置高度 + if(/^full-\d+$/.test(this.tempHeight)) { + this.fullHeightGap = this.tempHeight.split('-')[1]; + this.height = $WIN.height() - this.fullHeightGap; + } else { + this.fullHeightGap = this.tempHeight; + this.height = this.tempHeight; + } + } + this.width = this.options.width || this.width; //宽度 + this.obj.css("width", this.width); + + /** 样式相关参数**/ + this.line = (typeof (this.options.line) === "boolean") ? this.options.line : this.line; //开启树线,默认不开启 + this.iconfont = this.options.iconfont || this.iconfont; //默认图标字体 dtreefont + this.iconfontStyle = this.options.iconfontStyle || this.iconfontStyle; //用于自定义树的每个关键部位使用的图标 + this.nodeIconArray = $.extend(nodeIconArray, this.options.nodeIconArray) || this.nodeIconArray; //用户自定义非叶子节点图标集合,node + this.leafIconArray = $.extend(leafIconArray, this.options.leafIconArray) || this.leafIconArray; //用户自定义叶子节点图标集合,leaf + this.skin = this.options.skin || this.skin; //自定义样式 + if(this.skin == "layui"){ //layui主题 + this.line = (typeof (this.options.line) === "boolean") ? this.options.line : true; //开启树线,默认开启 + this.ficon = this.options.ficon || this.ficon; //一级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标。默认'7' + this.fnodeIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? (this.ficon == "-1" ? "-1" : "1") : this.ficon[0]; //一级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'1' + this.fleafIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? this.ficon : this.ficon[1]; //一级图标中的leaf节点图标 + this.icon = this.options.icon || this.icon; //二级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标。默认'-1' + this.nodeIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? (this.icon == "-1" ? "-1" : "-1") : this.icon[0]; //二级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'-1' + this.leafIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? this.icon : this.icon[1]; //二级图标中的leaf节点图标 + } else if(this.skin == "laySimple"){ //laySimple主题 + this.line = (typeof (this.options.line) === "boolean") ? this.options.line : false; //开启树线,默认不开启 + this.ficon = this.options.ficon || this.ficon; //一级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标。默认'-1' + this.fnodeIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? (this.ficon == "-1" ? "-1" : "2") : this.ficon[0]; //一级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'2' + this.fleafIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? this.ficon : this.ficon[1];//一级图标中的leaf节点图标 + this.icon = this.options.icon || this.icon; //二级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标。默认'-1' + this.nodeIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? (this.icon == "-1" ? "-1" : "-1") : this.icon[0]; //二级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'-1' + this.leafIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? this.icon : this.icon[1]; //二级图标中的leaf节点图标 + } else { // 默认主题 或者自定义主题 + this.line = (typeof (this.options.line) === "boolean") ? this.options.line : false; //开启树线,默认不开启 + this.ficon = this.options.ficon || this.ficon; //一级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标。默认'8' + this.fnodeIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? (this.ficon == "-1" ? "-1" : "1") : this.ficon[0]; //一级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'1' + this.fleafIcon = (typeof this.ficon === 'string' || typeof this.ficon === 'number') ? this.ficon : this.ficon[1]; // 一级图标中的leaf节点图标 + this.icon = this.options.icon || this.icon; //二级图标样式,0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标。默认'5' + this.nodeIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? (this.icon == "-1" ? "-1" : "0") : this.icon[0]; //二级图标中的node节点图标。0:文件夹,1:+、-,2:三角形, -1:不显示二级图标,默认'0' + this.leafIcon = (typeof this.icon === 'string' || typeof this.icon === 'number') ? this.icon : this.icon[1]; //二级图标中的leaf节点图标 + } + + /** 数据加载参数**/ + this.url = this.options.url || this.url; //请求地址 + this.async = (typeof (this.options.async) === "boolean") ? this.options.async : this.async; //异步同步加载,默认异步加载 + this.headers = this.options.headers || this.headers; //ajax header属性 + this.method = this.options.method || this.method; //请求类型 + this.dataType = this.options.dataType || this.dataType; //参数类型 + this.contentType = this.options.contentType || this.contentType; //发送信息至服务器时内容编码类型 + this.defaultRequest = $.extend(this.defaultRequest, this.options.defaultRequest) || this.defaultRequest; //默认请求参数 + this.filterRequest = this.options.filterRequest || this.filterRequest; //过滤请求参数 + this.request = this.options.request || this.request; //用户自定义请求参数 + this.response = $.extend(this.response, this.options.response) || this.response; //返回json格式 + this.data = this.options.data || this.data; //初始化指定该参数,则不会访问异步接口 + this.dataFormat = this.options.dataFormat || this.dataFormat; //用于用户配置的data数据格式,list:列表, levelRelationship:层级关系,默认 + this.dataStyle = this.options.dataStyle || this.dataStyle; //用于用户配置layui通用的json数据风格,layuiStyle:layui风格,defaultStyle:默认风格 + this.errDataShow = (typeof (this.options.errDataShow) === "boolean") ? this.options.errDataShow : this.errDataShow; //是否在使用list模式递归数据出现错误时,显示错误信息 + this.withCredentials = (typeof (this.options.withCredentials) === "boolean") ? this.options.withCredentials : this.withCredentials; //是否允许跨域请求 + this.success = this.options.success || this.success; //树加载完毕后执行解析树之前的回调 + this.done = this.options.done || this.done; //树加载完毕后的回调 + this.formatter = $.extend(this.formatter, this.options.formatter)|| this.formatter; //数据过滤 + this.error = this.options.error || this.error; //异步加载异常回调 + this.complete = this.options.complete || this.complete; //异步加载完成回调 + + /** 复选框参数**/ + this.checkbar = this.options.checkbar || this.checkbar; //是否开启复选框模式 + this.checkbarLoad = this.options.checkbarLoad || this.checkbarLoad; //复选框作用范围,node:所有节点, leaf:最后一级;默认所有节点 + this.checkbarType = this.options.checkbarType || this.checkbarType; //复选框选中形式 all:子集选中父级也选中, no-all:子集选中父级半选中,子集全选父级选中,p-casc:父级选中子集全选,子集无法改变父级选中状态, self:没有任何级联关系,only:只能选中一个复选框。 默认all + this.checkbarData = this.options.checkbarData || this.checkbarData; //复选框记录数据类型形式, change表示记录变更数据,choose表示记录选中数据,all记录全部数据,halfChoose记录选中和半选中的数据,默认choose + this.checkbarFun = $.extend(this.checkbarFun, this.options.checkbarFun)|| this.checkbarFun; //checkbar事件加载 + + /** 菜单栏参数**/ + this.menubar = this.options.menubar || this.menubar; //是否打开菜单栏 + this.menubarTips = $.extend(this.menubarTips, this.options.menubarTips) || this.menubarTips; //菜单栏吸附, toolbar:依附在工具栏,group:依附在按钮组,freedom,自由 + this.menubarFun = $.extend(this.menubarFun, this.options.menubarFun) || this.menubarFun; //menubar事件加载 + + /** 工具栏参数**/ + this.toolbar = this.options.toolbar || this.toolbar; //是否开启工具栏 + this.toolbarWay = this.options.toolbarWay || this.toolbarWay; //工具栏显示方式,contextmenu:右键,follow:跟随节点,fixed:固定在节点右侧 + this.toolbarStyle = $.extend(this.toolbarStyle, this.options.toolbarStyle) || this.toolbarStyle; //toolbar的自定义风格,标题,弹框大小 + this.toolbarLoad = this.options.toolbarLoad || this.toolbarLoad; //toolbar作用范围:node:所有节点,noleaf:非最后一级节点,leaf:最后一级 + this.toolbarShow = this.options.toolbarShow || this.toolbarShow; //toolbar三个按钮 + this.toolbarBtn = this.options.toolbarBtn || this.toolbarBtn; //toolbar增删改中内容的自定义加载 + this.toolbarExt = this.options.toolbarExt || this.toolbarExt; //toolbar按钮扩展 + this.toolbarFun = $.extend(this.toolbarFun, this.options.toolbarFun) || this.toolbarFun; //toolbar事件加载 + + /** iframe模式参数**/ + this.useIframe = this.options.useIframe || this.useIframe;//是否加载iframe 默认false + this.iframeElem = this.options.iframeElem || this.iframeElem; //iframe的ID + this.iframeUrl = this.options.iframeUrl || this.iframeUrl; //树关联的iframe地址 + this.iframeLoad = this.options.iframeLoad || this.iframeLoad; //点击哪一层加载frame: node:所有节点, leaf:默认,最后一级 + this.iframeDefaultRequest = $.extend(this.iframeDefaultRequest, this.options.iframeDefaultRequest) || this.iframeDefaultRequest; //iframe的默认传递参数 + this.iframeRequest = $.extend(this.iframeRequest, this.options.iframeRequest) || this.iframeRequest; //iframe的自定义参数 + this.iframeFun = $.extend(this.iframeFun, this.options.iframeFun) || this.iframeFun; //iframe事件加载 + + /** 下拉树模式参数**/ + if(this.select) { + // 重置下拉树 + this.reloadSelectSetting(); + } + + /** 调用确认最终主题方法*/ + this.ensureTheme(); + + }; + + // 设置下拉树的基本参数值 + DTree.prototype.selectSetting = function() { + /** select模式参数*/ + this.select = true; //配置成select模式 + + this.selectInitVal = this.obj.attr("data-value") || this.options.selectInitVal || ""; //输入框的值 + this.selectTreeDiv = this.obj[0].id + "_tree_div"; // 上级DIV节点 + this.selectCardDiv = this.obj[0].id + "_select_card_div"; // 上级layui卡片节点 + this.selectDiv = this.obj[0].id + "_select_div"; // 模拟的select节点 + this.selectTipsName = this.obj[0].id + "_select_input"; // select的提示输入框名称 + this.selectTips = this.options.selectTips || "请选择"; // 输入框的提示语 + this.selectInputName = this.options.selectInputName || {nodeId: this.obj[0].id + "_select_nodeId"}; // select表单中的元素 + + // 调取下拉树的特殊处理页面元素标识 + this.renderSelectDom(); + } + + // 重新设置下拉树的基本参数值 + DTree.prototype.reloadSelectSetting = function() { + + this.selectInitVal = this.obj.attr("data-value") || this.options.selectInitVal || this.selectInitVal; //输入框的值 + this.selectTips = this.options.selectTips || this.selectTips; // 输入框的提示语 + this.selectInputName = $.extend(this.selectInputName, this.options.selectInputName) || this.selectInputName; // select表单中的元素 + + // 调取下拉树的特殊处理页面元素标识 + this.reloadSelectDom(); + } + + /******************** 下拉树设置区域 ********************/ + // 渲染下拉树的Dom结构 + DTree.prototype.renderSelectDom = function() { + var _this = this; + var rootId = _this.obj[0].id; + + // 设置自定义表单隐藏域 + var selectInputName = _this.selectInputName; + var selectInput = []; + for(var key in selectInputName) { + selectInput.push(''); + } + + // 设置html + var prevHtml = ['
                  ', + '
                  ', selectInput.join(""), + '', + '', + '
                  '].join(''); + + _this.obj.before(prevHtml); + + _this.obj.wrap('
                  ').wrap('
                  ').wrap('
                  '); + + } + + // 重新渲染下拉树的Dom结构 + DTree.prototype.reloadSelectDom = function() { + var _this = this; + var rootId = _this.obj[0].id; + + // 设置自定义表单隐藏域 + var selectInputName = _this.selectInputName; + var selectInput = []; + for(var key in selectInputName) { + selectInput.push(''); + } + + $("div[dtree-id='"+rootId+"'][dtree-select='"+_this.selectDiv+"']").find("div.layui-select-title").html(""); + + // 设置html + var prevHtml = [selectInput.join(""), + '', + ''].join(''); + + $("div[dtree-id='"+rootId+"'][dtree-select='"+_this.selectDiv+"']").find("div.layui-select-title").html(prevHtml); + + } + + // 设置输入框的值 + DTree.prototype.selectVal = function(param) { + var _this = this; + var rootId = _this.obj[0].id; + var selectInputName = _this.selectInputName; + var selectTipsNameValue = ""; + var selectValues = {}; + + // 如果开启了复选框,则此方法用来取值 + if(_this.checkbar) { + $("div[dtree-select='" + _this.selectDiv + "']").find("input[dtree-id='" + rootId + "']").each(function(){ + var name = $(this).attr("name"); + var val = $(this).val(); + selectValues[name] = val; + }); + } else { + if(typeof param === 'undefined') { // 不传,则为当前树中记录的ID + param = _this.getNowParam(); + } + if(typeof param === 'string') { // 传递ID,则查询树节点ID对应的值 + param = _this.getParam(param); + } + + selectTipsNameValue = param["context"]; + for(var key in selectInputName) { + selectValues[selectInputName[key]] = param[key]; + $("div[dtree-select='" + _this.selectDiv + "']").find("input[dtree-id='" + rootId + "'][name='"+selectInputName[key]+"']").val(param[key] || ""); + } + + if(param["nodeId"] && !param["context"]) { + selectTipsNameValue = _this.getParam(param["nodeId"]); + } + + // 返显提示输入框值 + $("div[dtree-select='" + _this.selectDiv + "']").find("input[dtree-id='" + rootId + "'][name='"+_this.selectTipsName+"']").val(selectTipsNameValue || ""); + + } + + + // 返回隐藏域中的值 + return selectValues; + } + + // 设置复选框模式中的下拉树的值 + DTree.prototype.selectCheckboxVal = function() { + var _this = this; + var rootId = _this.obj[0].id; + var selectInputName = _this.selectInputName; + + // 获取全部复选框选中节点 + var param = _this.getCheckbarJsonArrParam(); + + selectTipsNameValue = param["context"]; + var selectValues = {}; + for(var key in selectInputName) { + var value = param[key].join(","); + selectValues[selectInputName[key]] = value; + $("div[dtree-select='" + _this.selectDiv + "']").find("input[dtree-id='" + rootId + "'][name='"+selectInputName[key]+"']").val(value); + } + + $("div[dtree-select='" + _this.selectDiv + "']").find("input[dtree-id='" + rootId + "'][name='"+_this.selectTipsName+"']").val(selectTipsNameValue); + + // 返回隐藏域中的值 + return selectValues; + } + + // 重置下拉树的值 + DTree.prototype.selectResetVal = function() { + var _this = this; + var rootId = _this.obj[0].id; + // 表单清空 + $("input[dtree-id='"+rootId+"']").val(""); + // 节点重置 + _this.cancelNavThis(); + if(_this.checkbar) { + // 复选框重置 + _this.cancelCheckedNode(); + } + } + + + /******************** 字体及图标区域 ********************/ + // 确认最终主题 + DTree.prototype.ensureTheme = function(){ + var _this = this; + + // 确认style + this.style.item = DTREE + this.skin + ITEM; + this.style.itemThis = DTREE + this.skin + ITEMTHIS; + this.style.dfont = DTREE + this.skin + DFONT; + this.style.ficon = DTREE + this.skin + FICON; + this.style.icon = DTREE + this.skin + ICON; + this.style.cbox = DTREE + this.skin + CBOX; + this.style.chs = DTREE + this.skin + CHS; + + // 确认usefontStyle + var iconfont = this.iconfont; + var iconfonts = []; + if(typeof iconfont === 'string') { + iconfonts.push(iconfont); + } else { + iconfonts = iconfont; + } + + var iconfontStyle = this.iconfontStyle; + var iconfontStyles = []; + if(iconfontStyle.length == undefined) { + iconfontStyles.push(iconfontStyle); + } else { + iconfontStyles = iconfontStyle; + } + + for(var i=0; i 0) { + $lis.each(function(){ + _this.showLineLi($(this)); + }); + } else { + _this.obj.find("li[data-id]").each(function(){ + _this.showLineLi($(this)); + }); + } + } + } + + // 真正显示树线的方法 + DTree.prototype.showLineLi = function($li){ + var _this = this; + var $div = $li.children("div"), + $nextLi = $li.next("li"), + $ul = $li.parent("ul"); + if($ul[0].id == _this.obj[0].id) { + // 根节点下的节点 + $li.removeClass(LI_NAV_LINE); + $li.removeClass(LI_NAV_LAST_LINE); + $li.addClass(LI_NAV_FIRST_LINE); + } else { + // 非根节点下的节点 + var $pnextLi = $ul.parent("li").next("li"); + if($pnextLi.length == 0) { + if($nextLi.length == 0){ + $li.removeClass(LI_NAV_LINE); + $li.removeClass(LI_NAV_FIRST_LINE); + $li.addClass(LI_NAV_LAST_LINE); + } else { + $li.removeClass(LI_NAV_FIRST_LINE); + $li.removeClass(LI_NAV_LAST_LINE); + $li.addClass(LI_NAV_LINE); + } + }else { + var $pnextdiv = $pnextLi.children("div"); + if($nextLi.length == 0 && $div.children("cite").attr("data-leaf") == "leaf" && $pnextdiv.children("cite").attr("data-leaf") == "leaf") { + $li.removeClass(LI_NAV_FIRST_LINE); + $li.removeClass(LI_NAV_LINE); + $li.addClass(LI_NAV_LAST_LINE); + } else { + $li.removeClass(LI_NAV_FIRST_LINE); + $li.removeClass(LI_NAV_LAST_LINE); + $li.addClass(LI_NAV_LINE); + } + } + } + } + + /******************** 初始化数据区域 ********************/ + // 设置高度 + DTree.prototype.autoHeight = function(){ + var _this = this; + var height = _this.height; + if(height != "") { + if(_this.elem == _this.scroll){ + _this.obj.parent().css("height", height + "px"); + } else { + var $toolbarDiv = _this.obj.closest(_this.scroll); + $toolbarDiv.css("height", height + "px"); + } + } + }; + + // 重载树 + DTree.prototype.reload = function(options){ + var _this = this; + _this.reloadSetting(options); + _this.init(); + }; + + // 初始化树 + DTree.prototype.init = function(){ + var _this = this; + if (typeof _this !== "object") { + //_this.obj.html(_this.getNoneDom().errText("树组件未成功加载,请检查配置")); + layer.msg("树组件未成功加载,请检查配置", {icon:5}); + return ; + } + + // 设置组件高度 + _this.autoHeight(); + + if(_this.data) { + if(typeof _this.data.length === 'undefined'){ + //_this.obj.html(_this.getNoneDom().errText("数据解析异常,data数据格式不正确")); + layer.msg("数据解析异常,data数据格式不正确", {icon:5}); + return ; + } + + if(_this.data.length == 0) { + _this.obj.html(_this.getNoneDom().text()); + return ; + } + + //先将ul中的元素清空 + _this.obj.html(""); + + setTimeout(function () { + // 加载完毕后执行树解析前的回调 + _this.success(_this.data, _this.obj); + + // 第一次解析树 + if (_this.dataFormat == 'list'){ + //1.识别根节点ul中的data-id标签,判断顶级父节点 + var pid = _this.obj.attr("data-id"); + //2.构建一个存放节点的树组 + var rootListData = _this.queryListTreeByPid(pid, _this.data); + _this.loadListTree(rootListData, _this.data, 1); + } else { + _this.loadTree(_this.data, 1); + } + + // 显示树线 + _this.showLine(); + + // 这种情况下需要一开始就将toolbar显示在页面上 + if(_this.toolbar && _this.toolbarWay != 'contextmenu') { + _this.setToolbarDom().setToolbarPlace(_this.toolbarMenu); + } + + // 判断是否存在错误数据,并是否打印错误数据 + _this.msgErrData(); + + // 设置复选框的初始值 + if(_this.select){ + _this.selectVal(_this.selectInitVal); + } + + // 保存树副本 + _this.bak = _this.obj.html(); + + // 加载完毕后的回调 + _this.done(_this.data, _this.obj); + }, 100); + } else { + if (!_this.url) { + //_this.obj.html(_this.getNoneDom().errText("数据请求异常,url参数未指定")); + layer.msg("数据请求异常,url参数未指定", {icon:5}); + return ; + } + + //先将ul中的元素清空 + _this.obj.html(""); + + var index = _this.load ? layer.load(1) : ""; + + AjaxHelper.request({ + async: _this.async, + headers: _this.headers, + type: _this.method, + url: _this.url, + dataType: _this.dataType, + contentType: _this.contentType, + withCredentials: _this.withCredentials, + data: _this.getFilterRequestParam(_this.getRequestParam()), + success: function(result) { + if (typeof result === 'string') { + result = $.parseJSON(result); + } + + // 加载完毕后执行树解析前的回调 + _this.success(result, _this.obj); + + var code = ""; + if (_this.dataStyle == 'layuiStyle'){ + code = result[_this.response.statusName]; + } else { + code = result.status[_this.response.statusName]; + } + + if (code == _this.response.statusCode) { + var d = result[_this.response.rootName]; + + if(typeof d.length === 'undefined'){ + _this.obj.html(_this.getNoneDom().errText("数据解析异常,url回调后的数据格式不正确")); + //layer.msg("数据解析异常,url回调后的数据格式不正确", {icon:5}); + return ; + } + + if(d.length == 0) { + _this.obj.html(_this.getNoneDom().text()); + return ; + } + + // 第一次解析树 + if (_this.dataFormat == 'list'){ + //1.识别根节点ul中的data-id标签,判断顶级父节点 + var pid = _this.obj.attr("data-id"); + //2.构建一个存放节点的树组 + var rootListData = _this.queryListTreeByPid(pid, d); + _this.loadListTree(rootListData, d, 1); + } else { + _this.loadTree(d, 1); + } + + // 显示树线 + _this.showLine(); + + // 这种情况下需要一开始就将toolbar显示在页面上 + if(_this.toolbar && _this.toolbarWay != 'contextmenu') { + _this.setToolbarDom().setToolbarPlace(_this.toolbarMenu); + } + + // 判断是否存在错误数据,并是否打印错误数据 + _this.msgErrData(); + + // 设置复选框的初始值 + if(_this.select){ + _this.selectVal(_this.selectInitVal); + } + + // 保存树副本 + _this.bak = _this.obj.html(); + + // 加载完毕后的回调 + _this.done(result, _this.obj); + } else { + // 如果打印不出任何信息说明是在这里,用了错误的数据格式, 或返回码不正确 + if (_this.dataStyle == 'layuiStyle'){ + _this.obj.html(_this.getNoneDom().errText(result[_this.response.message])); + _this.error(null, code, result[_this.response.message]); + //layer.msg(result[_this.response.message], {icon:2}); + } else { + _this.obj.html(_this.getNoneDom().errText(result.status[_this.response.message])); + _this.error(null, code, result.status[_this.response.message]); + //layer.msg(result.status[_this.response.message], {icon:2}); + } + } + }, + error: function(XMLHttpRequest, textStatus, errorThrown){// 异步加载异常回调 + _this.obj.html(_this.getNoneDom().errText(textStatus + ": " + errorThrown)); + _this.error(XMLHttpRequest, textStatus, errorThrown); + }, + complete: function(XMLHttpRequest, textStatus){// 异步加载完成回调 + if(_this.load){layer.close(index);} + _this.complete(XMLHttpRequest, textStatus); + } + }); + } + }; + + // 加载子节点 + DTree.prototype.getChild = function($div, data) { + var _this = this, $ul = $div.next("ul"); + + _this.setNodeParam($div); + + if(typeof data !== 'undefined') { + if(typeof data.length === 'undefined'){ + //_this.obj.html(_this.getNoneDom().errText("数据解析异常,data数据格式不正确")); + layer.msg("数据解析异常,data数据格式不正确", {icon:5}); + return ; + } + + //先将ul中的元素清空 + $ul.html(""); + + // 解析树 + if (_this.dataFormat == 'list'){ + var pid = _this.node.nodeId; + var level = parseInt(_this.node.level)+1; + + var listData = _this.queryListTreeByPid(pid, data); + _this.loadListTree(listData, _this.data, level); + } else { + _this.loadTree(data, level); + } + + // 显示树线 + _this.showLine(); + + // 这种情况下需要一开始就将toolbar显示在页面上 + if(_this.toolbar && _this.toolbarWay != 'contextmenu') { + _this.setToolbarDom().setToolbarPlace(_this.toolbarMenu); + } + + // 判断是否存在错误数据,并是否打印错误数据 + _this.msgErrData(); + + // 保存树副本 + _this.bak = _this.obj.html(); + + } else { + if (!_this.url) { + //_this.obj.html(_this.getNoneDom().errText("数据请求异常,url参数未指定")); + layer.msg("数据请求异常,url参数未指定", {icon:5}); + return ; + } + + $ul.html(""); + var index = _this.load ? layer.load(1) : ""; + AjaxHelper.request({ + async: _this.async, + headers: _this.headers, + type: _this.method, + url: _this.url, + dataType: _this.dataType, + withCredentials: _this.withCredentials, + data: _this.getFilterRequestParam(_this.getRequestParam()), + success: function(result) { + if (typeof result === 'string') { + result = $.parseJSON(result); + } + var code = ""; + if (_this.dataStyle == 'layuiStyle'){ + code = result[_this.response.statusName]; + } else { + code = result.status[_this.response.statusName]; + } + + if (code == _this.response.statusCode) { + // 解析树 + var pid = _this.node.nodeId; + var level = parseInt(_this.node.level)+1; + if (_this.dataFormat == 'list'){ + var pListData = _this.queryListTreeByPid(pid, result[_this.response.rootName]); + _this.loadListTree(pListData, result[_this.response.rootName], level, $ul); + } else { + _this.loadTree(result[_this.response.rootName], level, $ul); + } + + // 显示树线 + _this.showLine(); + + // 这种情况下需要一开始就将toolbar显示在页面上 + if(_this.toolbar && _this.toolbarWay != 'contextmenu') { + _this.setToolbarDom().setToolbarPlace(_this.toolbarMenu); + } + + // 判断是否存在错误数据,并是否打印错误数据 + _this.msgErrData(); + + $ul.addClass(NAV_SHOW); + + // 保存树副本 + _this.bak = _this.obj.html(); + } else { + if (_this.dataStyle == 'layuiStyle'){ + _this.obj.html(_this.getNoneDom().errText(result[_this.response.message])); + _this.error(null, code, result[_this.response.message]); + //layer.msg(result[_this.response.message], {icon:2}); + } else { + _this.obj.html(_this.getNoneDom().errText(result.status[_this.response.message])); + _this.error(null, code, result.status[_this.response.message]); + //layer.msg(result.status[_this.response.message], {icon:2}); + } + } + }, + error: function(XMLHttpRequest, textStatus, errorThrown){// 异步加载异常回调 + _this.obj.html(_this.getNoneDom().errText(textStatus + ": " + errorThrown)); + _this.error(XMLHttpRequest, textStatus, errorThrown); + }, + complete: function(XMLHttpRequest, textStatus){// 异步加载完成回调 + if(_this.load){layer.close(index);} + _this.complete(XMLHttpRequest, textStatus); + } + }); + } + }; + + // 初始化树或者拼接树 + DTree.prototype.loadListTree = function(pListData, listData, level, $ul){ + var _this = this; + $ul = $ul || _this.getNodeDom().nowOrRootUl(); //当前选中的节点或根节点 + if (pListData.length > 0){ + for (var i = 0; i < pListData.length; i++) { + // 1.获取已知节点的全部数据 + var data = pListData[i]; + if(typeof data !== "object") continue; + var parseData = _this.parseData(data); + var childListData = _this.queryListTreeByPid(parseData.treeId(), listData); // 根据已知数据的id判断该条数据是否还有子数据 + + // 3. 页面元素加载数据 + $ul.append(_this.getLiItemDom(parseData.treeId(), parseData.parentId(), parseData.title(), parseData.fmtTitle(), parseData.last(childListData.length), parseData.ficonClass(), parseData.iconClass(), parseData.checkArr(), level, parseData.spread(level), parseData.disabled(), parseData.hide(), parseData.basicData(), parseData.recordData(), ($ul.hasClass(UL_ROOT) ? "root" : "item"))); + // 4.有子数据的元素加载子节点 + if(childListData.length > 0){ + var cLevel = parseInt(level)+1; + _this.loadListTree(childListData, listData, cLevel, _this.obj.find("ul[data-id='"+parseData.treeId()+"']")); + } + } + } + }; + + // 根据父ID查找list数据中匹配的元素 + DTree.prototype.queryListTreeByPid = function(pid, listData){ + var _this = this; + var rootListData = []; + if (listData) { + for (var i = 0; i < listData.length; i++) { + var data = listData[i]; + if(typeof data !== "object") continue; + if(pid == "null" || pid == null){ + if(data[_this.response.parentId] == null) { rootListData.push(data); } + } else { + if (data[_this.response.parentId] == pid){ + if (data[_this.response.treeId] == pid){ + _this.errData.push(data); + } else { + rootListData.push(data); + } + } + } + } + } + return rootListData; + }; + + // 初始化树或者拼接树 + DTree.prototype.loadTree = function(root, level, $ul){ + var _this = this; + if (root) { + $ul = $ul || _this.getNodeDom().nowOrRootUl(); //当前选中的节点或根节点 + for (var i = 0; i < root.length; i++) { // 遍历跟节点或追加的跟节点 + var data = root[i]; + if(typeof data !== "object") continue; + if(data[_this.response.treeId] == data[_this.response.parentId]) { _this.errData.push(data); } + var parseData = _this.parseData(data); + var children = parseData.children(); + $ul.append(_this.getLiItemDom(parseData.treeId(), parseData.parentId(), parseData.title(), parseData.fmtTitle(), parseData.last(children.length), parseData.ficonClass(), parseData.iconClass(), parseData.checkArr(), level, parseData.spread(level), parseData.disabled(), parseData.hide(), parseData.basicData(), parseData.recordData(), ($ul.hasClass(UL_ROOT) ? "root" : "item"))); + if (children.length != 0) { + var cLevel = parseInt(level)+1; + _this.loadTree(children, cLevel, _this.obj.find("ul[data-id='"+parseData.treeId()+"']")); + } + } + } + }; + + // 判断在数据加载时是否存在错误数据,并是否打印错误数据 + DTree.prototype.msgErrData = function() { + var _this = this; + if(_this.errData.length > 0 && _this.errDataShow) { + var title = ""; + for(var i=0; i<_this.errData.length; i++) { + var edata = _this.errData[i]; + title += "数据:【"+edata[_this.response.title]+"】中节点id和上级id值一致! \n"; + } + layer.msg(title, {icon:2,time:5000}); + } + // 显示之后,将错误数据制空 + _this.errData = []; + }; + + // 解析data数据 + DTree.prototype.parseData = function(data) { + var _this = this; + + return { + treeId: function(){ + return data[_this.response.treeId]; + }, + parentId: function(){ + return data[_this.response.parentId]; + }, + fmtTitle: function(){ + if(typeof _this.formatter.title === 'function'){ + var ftitle = _this.formatter.title(data); + var tt = data[_this.response.title]; + tt = (ftitle == "" || ftitle == undefined || ftitle == null) ? tt : ftitle; + return tt || ""; + } + return data[_this.response.title]; + }, + title: function(){ + return data[_this.response.title]; + }, + level: function(){ + return data[_this.response.level] || ""; + }, + ficonClass: function(){ + return data[_this.response.ficonClass] || ""; + }, + iconClass: function(){ + return data[_this.response.iconClass] || ""; + }, + last: function(len){ + return ((len == 0) ? + ((typeof (data[_this.response.last]) === "boolean") ? data[_this.response.last] : true) : + ((typeof (data[_this.response.last]) === "boolean") ? data[_this.response.last] : false)); + }, + spread: function(level){ + return ((level < _this.initLevel) ? + ((typeof (data[_this.response.spread]) === "boolean") ? data[_this.response.spread] : true) : + ((typeof (data[_this.response.spread]) === "boolean") ? data[_this.response.spread] : false)); + }, + disabled: function(){ + return (typeof (data[_this.response.disabled]) === "boolean") ? data[_this.response.disabled] : false; + }, + hide: function(){ + return (typeof (data[_this.response.hide]) === "boolean") ? data[_this.response.hide] : false; + }, + checkArr: function(){ + var checkArr = []; + var checkArrData = data[_this.response.checkArr]; + if(typeof checkArrData === 'string'){ + if(checkArrData.indexOf("{") > -1 && checkArrData.indexOf("}") > -1){ + checkArrData = JSON.parse(checkArrData); + } else { + checkArrData = {"type":"0","checked":checkArrData}; + } + } + if(typeof checkArrData === 'object'){ + if(typeof checkArrData.length === 'undefined'){ + checkArr.push(checkArrData); + } else { + checkArr = checkArrData; + } + } + + if(checkArr.length > 0 && checkArr.length > _this.checkArrLen){ + _this.checkArrLen = checkArr.length; // 获取复选框个数 + } + return checkArr; + + }, + children: function(){ + return data[_this.response.childName] || []; + }, + basicData: function(){ + return event.escape(JSON.stringify(data[_this.response.basicData])) || JSON.stringify({}); + }, + recordData: function(){ + var recordData = _this.record ? event.cloneObj(data, [_this.response.treeId, + _this.response.parentId, + _this.response.title, + _this.response.iconClass, + _this.response.childName, + _this.response.last, + _this.response.spread, + _this.response.disabled, + _this.response.hide, + _this.response.checkArr, + _this.response.checked, + _this.response.type, + _this.response.basicData]) : {}; + + return event.escape(JSON.stringify(recordData)); + }, + data: function(){ + return data; + } + } + + }; + + //当无节点数据时显示dom + DTree.prototype.getNoneDom = function(){ + var _this = this, + rootId = _this.obj[0].id, + noneTitle = _this.none; + + return { + text: function(){ + return "
                  "+noneTitle+"
                  "; + }, + errText: function(errInfo){ + return "
                  "+errInfo+"
                  "; + } + } + }; + + //新增节点的dom值 + DTree.prototype.getDom = function(treeId, parentId, title, fmtTitle, last, ficonClass, iconClass, checkArr, level, spread, disabled, hide) { + var _this = this, + rootId = _this.obj[0].id, + toolbar = _this.toolbar, + checkbar = _this.checkbar; + + return { + fnode: function() { // + - 图标 + // 获取图标的变量 + var fnodeIcon = _this.fnodeIcon, + fleafIcon = _this.fleafIcon; + + var fleafIconLeaf = _this.usefontStyle.fnode.leaf, + fnodeIconOpen = _this.usefontStyle.fnode.node.open, + fnodeIconClose = _this.usefontStyle.fnode.node.close; + + if(ficonClass){ + var iconfont = _this.iconfont; + if(typeof iconfont === 'string') { + fleafIconLeaf = iconfont + " " + ficonClass; + fnodeIconOpen = iconfont + " " + ficonClass; + fnodeIconClose = iconfont + " " + ficonClass; + } else { + fleafIconLeaf = iconfont[0] + " " + ficonClass; + fnodeIconOpen = iconfont[0] + " " + ficonClass; + fnodeIconClose = iconfont[0] + " " + ficonClass; + } + } + + if(fnodeIcon != "-1" && fleafIcon != "-1"){ // 都加载 + return last ? "" : + (spread ? "" : ""); + } + + if(fnodeIcon != "-1" && fleafIcon == "-1"){ // 加载node 隐藏leaf + return last ? "" : + (spread ? "" : ""); + } + + if(fnodeIcon == "-1" && fleafIcon != "-1"){ // 隐藏node 加载leaf + return last ? "" : + (spread ? "" : ""); + } + + if(fnodeIcon == "-1" && fleafIcon == "-1"){ // 都隐藏 + return last ? "" : + (spread ? "" : ""); + } + }, + node: function() { // 二级图标样式 + // 获取图标的变量 + var nodeIcon = _this.nodeIcon, + leafIcon = _this.leafIcon; + + var sleafIconLeaf = _this.usefontStyle.snode.leaf, + snodeIconOpen = _this.usefontStyle.snode.node.open, + snodeIconClose = _this.usefontStyle.snode.node.close; + if(iconClass){ + var iconfont = _this.iconfont; + if(typeof iconfont === 'string') { + sleafIconLeaf = iconfont + " " + iconClass; + snodeIconOpen = iconfont + " " + iconClass; + snodeIconClose = iconfont + " " + iconClass; + } else { + sleafIconLeaf = iconfont[0] + " " + iconClass; + snodeIconOpen = iconfont[0] + " " + iconClass; + snodeIconClose = iconfont[0] + " " + iconClass; + } + } + + if(nodeIcon != "-1" && leafIcon != "-1"){ // 都加载 + return last ? "" : + (spread ? "" : ""); + } + + if(nodeIcon != "-1" && leafIcon == "-1"){ // 加载node 隐藏leaf + return last ? "" : + (spread ? "" : ""); + } + + if(nodeIcon == "-1" && leafIcon != "-1"){ // 隐藏node 加载leaf + return last ? "" : + (spread ? "" : ""); + } + + if(nodeIcon == "-1" && leafIcon == "-1"){ // 都隐藏 + return last ? "" : + (spread ? "" : ""); + } + }, + checkbox: function() { // 复选框 + var flag = false; + if(_this.checkbarLoad == "node"){if (checkbar) {flag = true;}} else {if (last) {if (checkbar) {flag = true;}}} + + if(flag){ + var result = "
                  "; + if(checkArr && checkArr.length > 0){ + + for (var i = 0; i < checkArr.length; i++) { + var checkData = checkArr[i]; + var checked = checkData.checked; + var CHOOSE_CLASS = _this.usefontStyle.checkbox.out; + if (checked == "2") { //半选择 + CHOOSE_CLASS = _this.usefontStyle.checkbox.noall + " " + _this.style.chs; + } else if (checked == "1") { //选择 + CHOOSE_CLASS = _this.usefontStyle.checkbox.on + " " + _this.style.chs; + } else { //未选择或者无值 + CHOOSE_CLASS = _this.usefontStyle.checkbox.out; + } + var disClass = ""; + if(disabled){disClass = NAV_DIS;} + result += ""; + } + } + result += "
                  "; + return result; + } + + return ""; + }, + text: function() { // 文字显示 + var disClass = ""; + if(disabled){disClass = NAV_DIS;} + return ""+fmtTitle+""; + }, + ul: function() { //子节点ul + return last ? "
                    " : + (spread ? "
                      " : "
                        "); + } + }; + }; + + //替换节点的dom值,或指定值 + DTree.prototype.replaceDom = function($div, treeId, last, spread, disabled, hide) { + var _this = this, + rootId = _this.obj[0].id, + toolbar = _this.toolbar, + checkbar = _this.checkbar; + + return { + fnode: function(ficonClass) { // + - 图标 + var fnode = ""; + + // 获取图标的变量 + var fnodeIcon = _this.fnodeIcon, + fleafIcon = _this.fleafIcon; + + var fleafIconLeaf = _this.usefontStyle.fnode.leaf, + fnodeIconOpen = _this.usefontStyle.fnode.node.open, + fnodeIconClose = _this.usefontStyle.fnode.node.close; + + if(ficonClass){ + var iconfont = _this.iconfont; + if(typeof iconfont === 'string') { + fleafIconLeaf = iconfont + " " + ficonClass; + fnodeIconOpen = iconfont + " " + ficonClass; + fnodeIconClose = iconfont + " " + ficonClass; + } else { + fleafIconLeaf = iconfont[0] + " " + ficonClass; + fnodeIconOpen = iconfont[0] + " " + ficonClass; + fnodeIconClose = iconfont[0] + " " + ficonClass; + } + } + + if(fnodeIcon != "-1" && leafIcon != "-1"){ // 都加载 + fnode = last ? "" : + (spread ? "" : ""); + }else if(nodeIcon != "-1" && leafIcon == "-1"){ // 加载node 隐藏leaf + fnode = last ? "" : + (spread ? "" : ""); + }else if(nodeIcon == "-1" && leafIcon != "-1"){ // 隐藏node 加载leaf + fnode = last ? "" : + (spread ? "" : ""); + }else if(nodeIcon == "-1" && leafIcon == "-1"){ // 都隐藏 + fnode = last ? "" : + (spread ? "" : ""); + } + if(fnode != ""){_this.getNodeDom($div).fnode().replaceWith($(fnode));} + }, + node: function(iconClass) { // 二级图标样式 + var snode = ""; + + // 获取图标的变量 + var nodeIcon = _this.nodeIcon, + leafIcon = _this.leafIcon; + + var sleafIconLeaf = _this.usefontStyle.snode.leaf, + snodeIconOpen = _this.usefontStyle.snode.node.open, + snodeIconClose = _this.usefontStyle.snode.node.close; + if(iconClass){ + var iconfont = _this.iconfont; + if(typeof iconfont === 'string') { + sleafIconLeaf = iconfont + " " + iconClass; + snodeIconOpen = iconfont + " " + iconClass; + snodeIconClose = iconfont + " " + iconClass; + } else { + sleafIconLeaf = iconfont[0] + " " + iconClass; + snodeIconOpen = iconfont[0] + " " + iconClass; + snodeIconClose = iconfont[0] + " " + iconClass; + } + } + + if(nodeIcon != "-1" && leafIcon != "-1"){ // 都加载 + snode = last ? "" : + (spread ? "" : ""); + }else if(nodeIcon != "-1" && leafIcon == "-1"){ // 加载node 隐藏leaf + snode = last ? "" : + (spread ? "" : ""); + }else if(nodeIcon == "-1" && leafIcon != "-1"){ // 隐藏node 加载leaf + snode = last ? "" : + (spread ? "" : ""); + }else if(nodeIcon == "-1" && leafIcon == "-1"){ // 都隐藏 + snode = last ? "" : + (spread ? "" : ""); + } + if(snode != ""){_this.getNodeDom($div).snode().replaceWith($(snode));} + }, + checkbox: function(checkArr) { // 复选框 + var flag = false; + if(_this.checkbarLoad == "node"){if (checkbar) {flag = true;}} else {if (last) {if (checkbar) {flag = true;}}} + + if(flag){ + var result = "
                        "; + if(checkArr && checkArr.length > 0){ + + for (var i = 0; i < checkArr.length; i++) { + var checkData = checkArr[i]; + var checked = checkData.checked; + var CHOOSE_CLASS = _this.usefontStyle.checkbox.out; + if (checked == "2") { //半选择 + CHOOSE_CLASS = _this.usefontStyle.checkbox.noall + " " + _this.style.chs; + } else if (checked == "1") { //选择 + CHOOSE_CLASS = _this.usefontStyle.checkbox.on + " " + _this.style.chs; + } else { //未选择或者无值 + CHOOSE_CLASS = _this.usefontStyle.checkbox.out; + } + var disClass = ""; + if(disabled){disClass = NAV_DIS;} + result += ""; + } + } + result += "
                        "; + _this.getNodeDom($div).snode().next("div").replaceWith($(result)); + } + }, + text: function(title) { // 文字显示 + var disClass = ""; + if(disabled){disClass = NAV_DIS;} + var cite = ""+title+"" + _this.getNodeDom($div).cite().replaceWith($(cite)); + }, + ul: function() { //子节点ul + var ul = last ? "
                          " : + (spread ? "
                            " : "
                              "); + _this.getNodeDom($div).nextUl().replaceWith($(ul)); + }, + div: function(){ + $div.attr("data-id", treeId); + }, + basicData: function(basicData){ + basicData = (basicData == "{}") ? "" : basicData; + $div.attr("data-basic", basicData); + }, + recordData: function(recordData){ + recordData = (recordData == "{}") ? "" : recordData; + $div.attr("data-record", recordData); + }, + p_li: function(pId){ + var $li = $div.parent("li"); + $li.attr("data-id", treeId); + if(pId) { + $li.attr("data-pid", pId); + } + return $li; + } + }; + + }; + + // 获取拼接好的li + DTree.prototype.getLiItemDom = function(treeId, parentId, title, fmtTitle, last, ficonClass, iconClass, checkArr, level, spread, disabled, hide, basicData, recordData, flag) { + var _this = this, + rootId = _this.obj[0].id; + + var dom = _this.getDom(treeId, parentId, title, fmtTitle, last, ficonClass, iconClass, checkArr, level, spread, disabled, hide); + basicData = (basicData == "{}") ? "" : basicData; + recordData = (recordData == "{}") ? "" : recordData; + var div = "
                              " + + div , + dom.fnode(), + dom.node(), + dom.checkbox(), + dom.text(), + "
                              ", dom.ul(), "
                            • "].join(""); + + return li; + }; + + // 初始化节点,用于数据回显 + DTree.prototype.dataInit = function(chooseId){ + var _this = this; + var $div = _this.obj.find("div[data-id='"+chooseId+"']"); + _this.getNodeDom($div).parentLi().find("."+NAV_THIS).removeClass(NAV_THIS); + _this.getNodeDom($div).parentLi().find("."+_this.style.itemThis).removeClass(_this.style.itemThis); + $div.addClass(NAV_THIS); + $div.addClass(_this.style.itemThis); + _this.setNodeParam($div); + // 将该节点的父节点全部展开 + var $li_parents = $div.parents("."+LI_NAV_ITEM); + $li_parents.children("ul").addClass(NAV_SHOW); + $li_parents.children("."+LI_DIV_ITEM).children("i[data-spread]."+event.trimToDot(_this.usefontStyle.fnode.node.close)).addClass(_this.usefontStyle.fnode.node.open); + $li_parents.children("."+LI_DIV_ITEM).children("i[data-spread]."+event.trimToDot(_this.usefontStyle.fnode.node.close)).removeClass(_this.usefontStyle.fnode.node.close); + $li_parents.children("."+LI_DIV_ITEM).children("i[data-spread]."+event.trimToDot(_this.usefontStyle.snode.node.close)).addClass(_this.usefontStyle.snode.node.open); + $li_parents.children("."+LI_DIV_ITEM).children("i[data-spread]."+event.trimToDot(_this.usefontStyle.snode.node.close)).removeClass(_this.usefontStyle.snode.node.close); + return _this.getNowParam(); + }; + + // 基于备份的Html数据回滚 + DTree.prototype.rollbackHtml = function(chooseId){ + var _this = this; + if(_this.bak) { + _this.obj.html(_this.bak); + // 取消全部选中状态 + _this.cancelNavThis(); + if(_this.checkbar) { + _this.cancelCheckedNode(); + _this.chooseDataInit(chooseId); + } else { + _this.dataInit(chooseId); + } + + _this.bak = _this.obj.html(); + } + }; + + + /******************** 基础事件区域 ********************/ + // 数据格式化 + DTree.prototype.escape = function(html){ + return event.escape(html); + }; + + // 格式化数据转回正常数据 + DTree.prototype.unescape = function(str){ + return event.unescape(str); + }; + + // 取消选中div + DTree.prototype.cancelNavThis = function(){ + var _this = this; + _this.obj.find("div[data-id]").parent().find("."+NAV_THIS).removeClass(NAV_THIS); + _this.obj.find("div[data-id]").parent().find("."+_this.style.itemThis).removeClass(_this.style.itemThis); + } + + // 选中div + DTree.prototype.navThis = function(id){ + var _this = this; + var $div = (typeof id === 'object') ? id : (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']").length == 0) ? null : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']"); + if($div != null) { + _this.cancelNavThis(); + $div.addClass(NAV_THIS); + $div.addClass(_this.style.itemThis); + } + } + + // 手风琴模式操作其他节点 + DTree.prototype.accordionUL = function($ul) { + var _this = this; + if(_this.accordion) { + $ul.closest("li[data-index]").siblings("li[data-index]").children("ul[data-id]").removeClass(NAV_SHOW); + var $divs = $ul.closest("li[data-index]").siblings("li[data-index]").children("ul[data-id]").prev("div"); + if($divs.length && $divs.length > 0) { + for (var i=0; i<$divs.length; i++) { + var $div = $($divs[i]); + var $i_spread = _this.getNodeDom($div).fnode(), + $i_node = _this.getNodeDom($div).snode(); + if($i_spread.attr("data-spread") != 'last'){ + _this.operateIcon($i_spread, $i_node).close(); + } + } + } + + } + }; + + // 展开或隐藏节点 作用点: div + DTree.prototype.clickSpread = function($div) { + var _this = this; + var $i_spread = _this.getNodeDom($div).fnode(), + $i_node = _this.getNodeDom($div).snode(), + $cite = _this.getNodeDom($div).cite(), + spread = $i_spread.attr("data-spread"), + $ul = $div.next("ul"); + + if ($ul.length > 0) { + if (spread == "close") { + if (_this.type=="load") { //增加加载 + if (_this.cache) { //开启缓存 + if ($ul.html()) { + $ul.addClass(NAV_SHOW); + _this.accordionUL($ul); + } else { //加载节点 + _this.getChild($div); + _this.accordionUL($ul); + } + }else { //每次取新的数据 + $ul.html(""); + _this.getChild($div); + _this.accordionUL($ul); + } + } else { // 全量加载 + $ul.addClass(NAV_SHOW); + _this.accordionUL($ul); + } + _this.operateIcon($i_spread, $i_node).open(); + } else if (spread == "open") { + $ul.removeClass(NAV_SHOW); + _this.operateIcon($i_spread, $i_node).close(); + } + } + }; + + // 设置节点为disabled + DTree.prototype.setDisabledNodes = function(disabledIds){ + var _this = this; + var disabledId = disabledIds.split(","); + for (var i=0; i 0) { + _this.getChild($div, data); + } else { + var parseData = _this.parseData(data); + + if(parseData.treeId()){ + var level = parseInt($div.parent("li").attr("data-index"))+1; + $ul.append(_this.getLiItemDom(parseData.treeId(), parseData.parentId(), parseData.title(), parseData.fmtTitle(), parseData.last(0), parseData.ficonClass(), parseData.iconClass(), parseData.checkArr(), level, parseData.spread(), parseData.disabled(), parseData.hide(), parseData.basicData(), parseData.recordData(), "item")); + + // 建造完毕后,选中该DIV + $thisDiv = $ul.find("div[data-id='"+parseData.treeId()+"']"); + _this.setNodeParam($thisDiv); + + _this.showLine($ul.find("li")); + } else { + layer.msg("添加失败,节点ID为undefined!",{icon:5}); + // 重新赋值 + _this.setNodeParam($div); + } + } + } else { + _this.getChild($div); + } + } + + // 局部刷新树--编辑当前节点选中节点时 + DTree.prototype.partialRefreshEdit = function($div, data){ + var _this = this; + $ul = $div.next("ul"), + $p_li = $div.parent("li"); + + if(data) { + if(typeof data === 'object') { + var parseData = _this.parseData(data); + + if(parseData.treeId()){ + var replaceDom = _this.replaceDom($div, parseData.treeId(), parseData.last(0), parseData.spread(), parseData.disabled(), parseData.hide()); + replaceDom.div(); + replaceDom.node(parseData.iconClass()); + replaceDom.checkbox(parseData.checkArr()); + replaceDom.text(parseData.title()); + replaceDom.ul(); + replaceDom.basicData(parseData.basicData()); + replaceDom.recordData(parseData.recordData()); + + var parentId = parseData.parentId(); + var oldParentId = $p_li.attr("data-pid"); + if(parentId && parentId != oldParentId) { + // 变更了父节点 + $p_li = replaceDom.p_li(parentId); + + // 根据parentId找到下挂节点的ul + var $goto_div = _this.getNodeDom(parentId).div(), + $goto_ul = _this.getNodeDom(parentId).nextUl(); + // 判断父级ul中是否还存在li,如果不存在,则需要修改节点的样式 + if($goto_ul.children("li").length == 0){ + var $icon_i = $goto_div.find("i[data-spread]"); + _this.operateIcon($icon_i.eq(0), $icon_i.eq(1)).openWithLeaf(); + $goto_ul.addClass(NAV_SHOW); + } + $goto_ul.append($p_li); + } else { + replaceDom.p_li(); + } + _this.setNodeParam($div); + } else { + layer.msg("编辑失败,节点ID为undefined!",{icon:5}); + // 重新赋值 + _this.setNodeParam($div); + } + } else { + _this.getNodeDom($div).cite().html(data); + } + } + } + + // 局部刷新树--当前节点选中被删除时 + DTree.prototype.partialRefreshDel = function($div){ + var _this = this; + $p_li = $div.parent("li"); + $p_ul = _this.getNodeDom($div).parentUl(); + $p_div = _this.getNodeDom($div).parentDiv(); + + $p_li.remove(); + _this.showLine($p_ul.find("li")); + // 判断父级ul中是否还存在li,如果不存在,则需要修改节点的样式 + if($p_ul.children("li").length == 0){ + var $icon_i = $p_div.find("i[data-spread]"); + _this.operateIcon($icon_i.eq(0), $icon_i.eq(1)).closeWithLeaf(); + } + _this.initNodeParam(); + } + + /******************** 复选框区域 ********************/ + // 初始化复选框的值 + DTree.prototype.chooseDataInit = function(chooseIds){ + var _this = this; + var chooseId = chooseIds.split(","); + for (var i=0; i."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($child_li_i).noCheck(); + + // 处理父级节点的选中状态 + for (var i = 1, item = $parent_li; i < item.length; i++) { + var flag = item.eq(i).find(">."+LI_NAV_CHILD+" ."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"'][data-checked='1']").length; + if (flag == 0) { + //把父级去掉选中 + var $item_i = item.eq(i).find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($item_i).noCheck(); + } + } + } else { + // 处理当前节点的选中状态 + _this.checkStatus($i).check(); + + // 处理子级节点的选中状态 + var $child_li_i = $child_li.find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($child_li_i).check(); + + // 处理父级节点的选中状态 + for (var i = 1, item = $parent_li; i < item.length; i++) { + var $item_i = item.eq(i).find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + //把父级选中 + _this.checkStatus($item_i).check(); + } + } + }; + + //实现复选框点击, no-all 子集选中父级半选中,子集全选父级选中 + DTree.prototype.checkAllOrNoallOrNot = function($i) { + var _this = this; + //$i 当前点击的checkbox + var $div = $i.closest("."+LI_DIV_ITEM), + dataPar = $i.attr("data-par"), + dataType = $i.attr("data-type"), + $li = $i.closest(dataPar), //当前checkbox的上级li节点 + $parent_li = $i.parents(dataPar), //当前checkbox的所有父级li节点 + $child_li = $li.find(dataPar); //当前checkbox的上级li节点下的所有子级li节点 + + if ($i.attr("data-checked") == "1") { //当前复选框为选中状态,点击后变为未选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).noCheck(); + + // 处理子级节点的选中状态 + var $child_li_i = $child_li.find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($child_li_i).noCheck(); + + // 处理父级节点的选中状态 + for (var i = 1, item = $parent_li; i < item.length; i++) { + var flag = item.eq(i).find(">."+LI_NAV_CHILD+" ."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"'][data-checked='1']").length; + var $item_i = item.eq(i).find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + if (flag == 0) { + //把父级去掉选中 + _this.checkStatus($item_i).noCheck(); + } else { + //把父级半选 + _this.checkStatus($item_i).noallCheck(); + } + } + } else { //当前复选框为未选中状态,点击后变为选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).check(); + + // 处理子级节点的选中状态 + var $child_li_i = $child_li.find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($child_li_i).check(); + + // 处理父级节点的选中状态 + for (var i = 1, item = $parent_li; i < item.length; i++) { + var flag1 = item.eq(i).find(">."+LI_NAV_CHILD+" ."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"'][data-checked='1']").length; + var flag2 = item.eq(i).find(">."+LI_NAV_CHILD+" ."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']").length; + var $item_i = item.eq(i).find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + if (flag1 != flag2) { + // 父级复选框半选 + _this.checkStatus($item_i).noallCheck(); + } else { + // 父级复选框全选 + _this.checkStatus($item_i).check(); + } + } + } + }; + + //实现复选框点击,p-casc:父级选中子集全选,子集无法改变父级选中状态 + DTree.prototype.checkAllOrPcascOrNot = function($i) { + var _this = this; + //$i 当前点击的checkbox + var $div = $i.closest("."+LI_DIV_ITEM), + dataPar = $i.attr("data-par"), + dataType = $i.attr("data-type"), + $li = $i.closest(dataPar), //当前checkbox的上级li节点 + $parent_li = $i.parents(dataPar), //当前checkbox的所有父级li节点 + $child_li = $li.find(dataPar); //当前checkbox的上级li节点下的所有子级li节点 + + if ($i.attr("data-checked") == "1") { //当前复选框为选中状态,点击后变为未选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).noCheck(); + + // 处理子级节点的选中状态 + var $child_li_i = $child_li.find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($child_li_i).noCheck(); + + } else { //当前复选框为未选中状态,点击后变为选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).check(); + + // 处理子级节点的选中状态 + var $child_li_i = $child_li.find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + _this.checkStatus($child_li_i).check(); + } + }; + + //实现复选框点击,self:各自选中互不影响 + DTree.prototype.checkOrNot = function($i) { + var _this = this; + //$i 当前点击的checkbox + var $div = $i.closest("."+LI_DIV_ITEM), + dataPar = $i.attr("data-par"), + dataType = $i.attr("data-type"), + $li = $i.closest(dataPar), //当前checkbox的上级li节点 + $parent_li = $i.parents(dataPar), //当前checkbox的所有父级li节点 + $child_li = $li.find(dataPar); //当前checkbox的上级li节点下的所有子级li节点 + + if ($i.attr("data-checked") == "1") { //当前复选框为选中状态,点击后变为未选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).noCheck(); + } else { //当前复选框为未选中状态,点击后变为选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).check(); + } + }; + + //实现复选框点击,only:只能选中1个复选框 + DTree.prototype.checkOnly = function($i) { + var _this = this; + //$i 当前点击的checkbox + var $div = $i.closest("."+LI_DIV_ITEM), + dataPar = $i.attr("data-par"), + dataType = $i.attr("data-type"), + $li = $i.closest(dataPar), //当前checkbox的上级li节点 + $parent_li = $i.parents(dataPar), //当前checkbox的所有父级li节点 + $child_li = $li.find(dataPar); //当前checkbox的上级li节点下的所有子级li节点 + + var checked = $i.attr("data-checked"); + // 将全部节点全部设为未选中状态 + var $all_i = _this.obj.find("i[data-checked]"); + _this.checkStatus($all_i).noCheck(); + + if (checked != "1") { //当前复选框为未选中状态,点击后变为选中状态 + // 处理当前节点的选中状态 + _this.checkStatus($i).check(); + } + }; + + //实现复选框点击 + DTree.prototype.changeCheck = function($i) { + var _this = this; + var temp = _this.temp; + if(typeof $i === 'undefined') { + $i = temp[0]; + } + // 复选框选中事件 + if (_this.checkbarType == "all") { + _this.checkAllOrNot($i); + } else if(_this.checkbarType == "no-all") { + _this.checkAllOrNoallOrNot($i); + } else if(_this.checkbarType == "p-casc") { + _this.checkAllOrPcascOrNot($i); + } else if(_this.checkbarType == "self") { + _this.checkOrNot($i); + } else if(_this.checkbarType == "only") { + _this.checkOnly($i); + } else { + _this.checkAllOrNot($i); + } + + if(_this.select) { + // 设置复选框模式中的下拉树的值 + _this.selectCheckboxVal(); + } + + // 获取复选框选中节点的内容 + var checkbarNodes = _this.setAndGetCheckbarNodesParam(true); + + // 用户自定义想做的事情 + _this.checkbarFun.chooseDone(checkbarNodes); + layui.event.call(this, MOD_NAME, "chooseDone("+$(_this.obj)[0].id+")", {"checkbarParams": checkbarNodes}); + _this.temp = []; + }; + + //复选框半选状态初始化设置 + DTree.prototype.initNoAllCheck = function(){ + var _this = this; + //1.获取所有选中节点 + var $is = _this.obj.find("i[data-checked='1']"); + if($is.length > 0){ + for ( var key = 0; key < $is.length; key++) { + var $i = $($is[key]), + dataPar = $i.attr("data-par"), + dataType = $i.attr("data-type"), + $li = $i.closest(dataPar), //当前checkbox的上级li节点 + $parent_li = $i.parents(dataPar), //当前checkbox的所有父级li节点 + $child_li = $li.find(dataPar); //当前checkbox的上级li节点下的所有子级li节点 + + // 处理父级节点的选中状态 + for (var i = 1, item = $parent_li; i < item.length; i++) { + var flag1 = item.eq(i).find(">."+LI_NAV_CHILD+" ."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"'][data-checked='1']").length; + var flag2 = item.eq(i).find(">."+LI_NAV_CHILD+" ."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']").length; + var $item_i = item.eq(i).find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + if (flag1 != flag2) { + // 父级复选框半选 + _this.checkStatus($item_i).noallCheck(); + } else { + // 父级复选框全选 + _this.checkStatus($item_i).check(); + } + } + } + } + }; + + //复选框选中状态初始化设置 + DTree.prototype.initAllCheck = function(){ + var _this = this; + //1.获取所有选中节点 + var $is = _this.obj.find("i[data-checked='1']"); + if($is.length > 0){ + for ( var key = 0; key < $is.length; key++) { + var $i = $($is[key]), + dataPar = $i.attr("data-par"), + dataType = $i.attr("data-type"), + $li = $i.closest(dataPar), //当前checkbox的上级li节点 + $parent_li = $i.parents(dataPar), //当前checkbox的所有父级li节点 + $child_li = $li.find(dataPar); //当前checkbox的上级li节点下的所有子级li节点 + + // 处理父级节点的选中状态 + for (var i = 1, item = $parent_li; i < item.length; i++) { + var $item_i = item.eq(i).find(">."+LI_DIV_ITEM+">."+LI_DIV_CHECKBAR+">i[data-type='"+dataType+"']"); + // 父级复选框全选 + _this.checkStatus($item_i).check(); + } + } + } + }; + + // 设置复选框选中/未选中/半选 _this.checkStatus($i).check(); _this.checkStatus($i).noCheck(); _this.checkStatus($i).noallCheck(); + DTree.prototype.checkStatus = function($i) { + var _this = this; + return { + check: function(){ + $i.removeClass(_this.usefontStyle.checkbox.out); + $i.removeClass(_this.usefontStyle.checkbox.noall); + $i.addClass(_this.usefontStyle.checkbox.on); + $i.addClass(_this.style.chs); + $i.attr("data-checked","1"); + }, + noCheck: function(){ + $i.removeClass(_this.usefontStyle.checkbox.noall); + $i.removeClass(_this.usefontStyle.checkbox.on); + $i.removeClass(_this.style.chs); + $i.addClass(_this.usefontStyle.checkbox.out); + $i.attr("data-checked","0"); + }, + noallCheck: function(){ + $i.removeClass(_this.usefontStyle.checkbox.out); + $i.removeClass(_this.usefontStyle.checkbox.on); + $i.addClass(_this.usefontStyle.checkbox.noall); + $i.addClass(_this.style.chs); + $i.attr("data-checked","2"); + } + } + }; + + // 设置树的复选框操作值的全部参数,并获取 + DTree.prototype.setAndGetCheckbarNodesParam = function(requestParamFlag) { + var _this = this; + //操作前先清空 + _this.checkbarNode = []; + // 选择所有复选框节点 + if (_this.checkbarData == "change"){ //记录变更数据 + _this.obj.find("i[data-par][dtree-disabled='false']").each(function(){ + var $i = $(this), $div = $i.closest("."+LI_DIV_ITEM); + if ($i.attr("data-checked") != $i.attr("data-initchecked")) { + if(requestParamFlag) { + _this.checkbarNode.push(_this.getRequestParam(_this.getCheckbarNodeParam($div, $i))); + } else { + _this.checkbarNode.push(_this.getCheckbarNodeParam($div, $i)); + } + } + }); + } else if (_this.checkbarData == "all"){ //记录全部数据 + _this.obj.find("i[data-par][data-checked][dtree-disabled='false']").each(function(){ + var $i = $(this), $div = $i.closest("."+LI_DIV_ITEM); + if(requestParamFlag) { + _this.checkbarNode.push(_this.getRequestParam(_this.getCheckbarNodeParam($div, $i))); + } else { + _this.checkbarNode.push(_this.getCheckbarNodeParam($div, $i)); + } + }); + } else if (_this.checkbarData == "choose"){ //记录选中数据 + _this.obj.find("i[data-par][data-checked='1'][dtree-disabled='false']").each(function(){ + var $i = $(this), $div = $i.closest("."+LI_DIV_ITEM); + if(requestParamFlag) { + _this.checkbarNode.push(_this.getRequestParam(_this.getCheckbarNodeParam($div, $i))); + } else { + _this.checkbarNode.push(_this.getCheckbarNodeParam($div, $i)); + } + }); + } else if (_this.checkbarData == "halfChoose"){ //记录选中和半选数据 + _this.obj.find("i[data-par][data-checked='1'][dtree-disabled='false']").each(function(){ + var $i = $(this), $div = $i.closest("."+LI_DIV_ITEM); + if(requestParamFlag) { + _this.checkbarNode.push(_this.getRequestParam(_this.getCheckbarNodeParam($div, $i))); + } else { + _this.checkbarNode.push(_this.getCheckbarNodeParam($div, $i)); + } + }); + _this.obj.find("i[data-par][data-checked='2'][dtree-disabled='false']").each(function(){ + var $i = $(this), $div = $i.closest("."+LI_DIV_ITEM); + if(requestParamFlag) { + _this.checkbarNode.push(_this.getRequestParam(_this.getCheckbarNodeParam($div, $i))); + } else { + _this.checkbarNode.push(_this.getCheckbarNodeParam($div, $i)); + } + }); + } + return _this.checkbarNode; + }; + + // 获取树的复选框操作值的全部参数 + DTree.prototype.getCheckbarNodesParam = function() { + var _this = this; + return _this.setAndGetCheckbarNodesParam(true); + }; + + // 获取树的一个复选框的参数 + DTree.prototype.getCheckbarNodeParam = function($div, $i){ + var _this = this; + var temp_node = {}; + temp_node.nodeId = $div.attr("data-id"); + temp_node.parentId = _this.getNodeDom($div).parentLi().attr("data-pid"); + temp_node.context = (typeof _this.formatter.title === 'function') ? _this.getNodeDom($div).cite().attr("data-title") : _this.getNodeDom($div).cite().text(); + temp_node.leaf = _this.getNodeDom($div).cite().attr("data-leaf") == "leaf" ? true : false; + temp_node.level = _this.getNodeDom($div).parentLi().attr("data-index"); + temp_node.spread = _this.getNodeDom($div).fnode().attr("data-spread") == "open" ? true : false; + + var basicData = $div.attr("data-basic"); + if(basicData) { + basicData = JSON.parse(event.unescape(basicData)); + } + temp_node.basicData = basicData; + var recordData = $div.attr("data-record"); + if(recordData) { + recordData = JSON.parse(event.unescape(recordData)); + } + temp_node.recordData = recordData; + + temp_node.dataType = $i.attr("data-type"); + temp_node.checked = $i.attr("data-checked"); + temp_node.initchecked = $i.attr("data-initchecked"); + return temp_node; + }; + + // 获取基于返回参数的树的复选框参数 + DTree.prototype.getCheckbarJsonArrParam = function(){ + var _this = this; + var checkbarJsonArr = { + nodeId: [], //节点ID + parentId: [], //父节点ID + context: [], //节点内容 + leaf: [], //是否叶子节点 + level: [], //层级 + spread: [], //节点展开状态 + dataType: [], //节点标记 + checked: [], //节点复选框选中状态 + initchecked: [], //节点复选框初始状态 + basicData: [], //用户自定义的记录节点数据 + recordData: [], //当前data数据(排除basicData和children字段) + }; + // 获取全部复选框选中节点 + var params = _this.setAndGetCheckbarNodesParam(false); + if(params && params.length > 0) { + for(var i=0; i 0) { _this.checkStatus($i).check(); } + } + + //取消全部复选框选中 + DTree.prototype.cancelCheckedNode = function(nodeId){ + var _this = this; + var $i = _this.obj.find("i[data-par][data-checked!='0']"); + if($i.length > 0) { _this.checkStatus($i).noCheck(); } + } + + //反选复选框 + DTree.prototype.invertCheckedNode = function(nodeId){ + var _this = this; + if(_this.obj.find("i[data-par]").length > 0) { + var b = false; + _this.obj.find("i[data-par]").each(function(){ + var $i = $(this); + if($i.attr("data-checked") == '2'){ + b = true; + }else if($i.attr("data-checked") == '0') { + _this.checkStatus($i).check(); + }else if($i.attr("data-checked") == '1') { + _this.checkStatus($i).noCheck(); + } + }); + + if(b) { + _this.initNoAllCheck(); + } else { + _this.initAllCheck(); + } + } + } + + //删除选中节点 + DTree.prototype.removeCheckedNode = function(nodeId){ + var _this = this; + var len = _this.obj.find("i[data-par][data-checked='1']").length; + if(len == 0){ + layer.msg("请至少选中一个节点",{icon:2}); + }else{ + //操作前先清空 + _this.checkbarNode = []; + // 选择所有复选框节点 + var i_node = {}; + _this.obj.find("i[data-par][data-checked='1']").each(function(){ + var $i = $(this), $div = $i.closest("."+LI_DIV_ITEM); + + _this.checkbarNode.push(_this.getRequestParam(_this.getCheckbarNodeParam($div, $i))); + }); + + layer.confirm('确定要删除选中节点?', {icon: 3, title:'删除选中节点'}, function(index1){ + var flag = _this.menubarFun.remove(_this.checkbarNode); + if(flag){ + _this.obj.find("i[data-par][data-checked='1']").closest("."+LI_DIV_ITEM).next("ul").remove(); + _this.obj.find("i[data-par][data-checked='1']").closest("."+LI_DIV_ITEM).remove(); + _this.checkbarNode=[]; + } + + layer.close(index1); + }); + } + } + + /******************** 工具栏及菜单栏区域 ********************/ + // 初始化菜单栏和工具栏的div + DTree.prototype.initTreePlus = function(){ + var _this = this; + // 初始化菜单栏和工具栏的div + _this.obj.prevAll('div#dtree_menubar_'+_this.obj[0].id).remove(); + _this.toolbarMenu = {}; + if(_this.menubar && _this.menubarTips.group && _this.menubarTips.group.length > 0) _this.obj.before("
                              "); + if(_this.toolbar){ + if(_this.toolbarWay == "contextmenu") { + _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id).remove(); + _this.obj.before("
                              "); + } + } + + }; + + // 开启工具栏和菜单栏 + DTree.prototype.openTreePlus = function(){ + var _this = this; + // 先对工具栏做处理,因为菜单栏可能会与工具栏产生关联。 + var ggMenu = []; + if(_this.toolbar) _this.getToolbarDom(); + + if(_this.menubar) { + var menubarTips = _this.menubarTips, + mtbar = menubarTips.toolbar, + group = menubarTips.group, + freedom = menubarTips.freedom; + if(mtbar && mtbar.length > 0){ + // 菜单栏吸附工具栏上 + for(var i=0; i 0){ + // 菜单栏吸附在上方的按钮组div中 + for(var i=0; i"; + break; + case defaultMenu.moveUp: + gg = ""; + break; + case defaultMenu.refresh: + gg = ""; + break; + case defaultMenu.checkAll: + gg = (_this.checkbar && _this.checkbarType != 'only') ? "" : ""; + break; + case defaultMenu.unCheckAll: + gg = (_this.checkbar && _this.checkbarType != 'only') ? "" : ""; + break; + case defaultMenu.invertAll: + gg = (_this.checkbar && _this.checkbarType != 'only') ? "" : ""; + break; + case defaultMenu.remove: + gg = (_this.checkbar) ? "" : ""; + break; + case defaultMenu.searchNode: + gg = ""; + break; + } + return gg; + }; + + // 获取扩展菜单栏 + DTree.prototype.getExtMenubarDom = function(menu){ + var _this = this; + return ""; + }; + + // 获取依附在工具栏的菜单栏 + DTree.prototype.getMenubarToolDom = function(menu){ + var _this = this; + var rootId = _this.obj[0].id; + switch (menu) { + case defaultMenu.moveDown: + _this.toolbarMenu[defaultMenu.moveDown] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.moveDown, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.movedown, "展开全部"); + break; + case defaultMenu.moveUp: + _this.toolbarMenu[defaultMenu.moveUp] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.moveUp, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.moveup, "收缩全部"); + break; + case defaultMenu.refresh: + _this.toolbarMenu[defaultMenu.refresh] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.refresh, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.refresh, "刷新"); + break; + case defaultMenu.checkAll: + if(_this.checkbar && _this.checkbarType != 'only') + _this.toolbarMenu[defaultMenu.checkAll] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.checkAll, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.checkAll, "全选节点"); + break; + case defaultMenu.unCheckAll: + if(_this.checkbar && _this.checkbarType != 'only') + _this.toolbarMenu[defaultMenu.unCheckAll] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.unCheckAll, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.unCheckAll, "全不选节点"); + break; + case defaultMenu.invertAll: + if(_this.checkbar && _this.checkbarType != 'only') + _this.toolbarMenu[defaultMenu.invertAll] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.invertAll, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.invertAll, "反选节点"); + break; + case defaultMenu.remove: + if(_this.checkbar) + _this.toolbarMenu[defaultMenu.remove] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.remove, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.remove, "删除选中"); + break; + case defaultMenu.searchNode: + _this.toolbarMenu[defaultMenu.searchNode] = _this.setToolbarDom().setMenuToolbarOption(defaultMenu.searchNode, _this.toolbarStyle.title, _this.usefontStyle.toolbar.menubar.searchNode, "查询"); + break; + } + }; + + // 获取依附在工具栏的扩展菜单栏 + DTree.prototype.getExtMenubarToolDom = function(menu){ + var _this = this; + _this.toolbarMenu[menu.menubarId] = _this.setToolbarDom().setMenuToolbarOption(menu.menubarId, menu.title, _this.usefontStyle.toolbar.menubarExt+" "+menu.icon, ""); + }; + + // menubar内置方法 + DTree.prototype.menubarMethod = function(){ + var _this = this; + return { + openAllNode: function(obj){ // 展开所有节点 + var $ulNode = obj || _this.obj.children("li").children("ul"); + // 遍历所有ul子节点 + for (var i = 0; i < $ulNode.length; i++) { + // 获取当前节点的信息 + var $ul = $($ulNode[i]), + $div = $ul.prev("div"), + $i_spread = _this.getNodeDom($div).fnode(), + $i_node = _this.getNodeDom($div).snode(), + $cite = _this.getNodeDom($div).cite(), + spread = $i_spread.attr("data-spread"), + leaf = $cite.attr("data-leaf"); + + if (leaf == "leaf") { continue; } // 说明是叶子了,则继续循环下一个 + + if (spread == "open") { + // 说明该节点已经展开了,则进行子节点循环 + } else { + if (_this.type=="load") { //是否全量加载 + if (_this.cache) { //是否开启缓存 + if ($ul.html()) { + $ul.addClass(NAV_SHOW); + } else { //加载节点 + _this.getChild($div); + } + }else { //每次取新的数据 + $ul.html(""); + _this.getChild($div); + } + } else { // 全量加载 + $ul.addClass(NAV_SHOW); + } + _this.operateIcon($i_spread, $i_node).open(); + + } + var $childUl = $ul.children("li").children("ul"); + _this.menubarMethod().openAllNode($childUl); + } + }, + closeAllNode: function(){ //收缩所有节点 + _this.obj.find("."+LI_NAV_CHILD).each(function(){ + // 获取当前节点的信息 + var $ul = $(this), + $div = $ul.prev("div"), + $i_spread = _this.getNodeDom($div).fnode(), + $i_node = _this.getNodeDom($div).snode(), + $cite = _this.getNodeDom($div).cite(), + spread = $i_spread.attr("data-spread"), + leaf = $cite.attr("data-leaf"); + + $ul.removeClass(NAV_SHOW); + _this.operateIcon($i_spread, $i_node).close(); + }); + }, + refreshTree: function(){// 刷新树 + _this.refreshTree(); + }, + checkAll: function(){ // 全选节点 + _this.checkAllNode(); + }, + unCheckAll: function(){ // 全不选节点 + _this.cancelCheckedNode(); + }, + invertAll: function(){ // 反选节点 + _this.invertCheckedNode(); + }, + remove: function(){// 删除选中节点 + _this.removeCheckedNode(); + }, + searchNode: function(){//模糊查询该值,展开该值节点 + layer.prompt({ + formType: 0, + value: "", + title: '查询节点' + }, function(value, index1, elem){ + if (value) { + var flag = _this.searchNode(value); + if (!flag) { + layer.msg("该名称节点不存在!", {icon:5}); + } + } else { + layer.msg("未指定查询节点名称", {icon:5}); + } + layer.close(index1); + }); + }, + extMethod: function(menuId, $div, flag){ + if(_this.menubar && _this.menubarTips.group && _this.menubarTips.group.length > 0 && flag == "group"){ + for(var i=0; i<_this.menubarTips.group.length; i++){ + var ext = _this.menubarTips.group[i]; + if (menuId == ext.menubarId){ + ext.handler(_this.getRequestParam(_this.getNodeParam($div), $div)); + break; + } + } + } + if(_this.menubar && _this.menubarTips.toolbar && _this.menubarTips.toolbar.length > 0 && flag == "toolbar"){ + for(var i=0; i<_this.menubarTips.toolbar.length; i++){ + var ext = _this.menubarTips.toolbar[i]; + if (menuId == ext.menubarId){ + ext.handler(_this.getRequestParam(_this.getNodeParam($div), $div)); + break; + } + } + } + if(_this.menubar && _this.menubarTips.freedom && _this.menubarTips.freedom.length > 0 && flag == "freedom"){ + for(var i=0; i<_this.menubarTips.freedom.length; i++){ + var ext = _this.menubarTips.freedom[i]; + if (menuId == ext.menubarId){ + ext.handler(_this.getRequestParam(_this.getNodeParam($div), $div)); + break; + } + } + } + } + }; + }; + + // menubar监听方法 + DTree.prototype.menubarListener = function(menuId, flag){ + var _this = this; + var $div = _this.getNodeDom().nowDiv(); + switch (menuId) { + case defaultMenu.moveDown: // 展开全部节点 + _this.menubarMethod().openAllNode(); + break; + case defaultMenu.moveUp: // 收缩全部节点 + _this.menubarMethod().closeAllNode(); + break; + case defaultMenu.refresh: + _this.menubarMethod().refreshTree(); // 刷新树 + break; + case defaultMenu.checkAll: + _this.menubarMethod().checkAll(); + break; + case defaultMenu.unCheckAll: + _this.menubarMethod().unCheckAll(); + break; + case defaultMenu.invertAll: + _this.menubarMethod().invertAll(); + break; + case defaultMenu.remove: + _this.menubarMethod().remove(); + break; + case defaultMenu.searchNode: + _this.menubarMethod().searchNode(); + break; + default: + _this.menubarMethod().extMethod(menuId, $div, flag); + break; + } + }; + + //模糊查询该值,展开该值节点 + DTree.prototype.searchNode = function(value){ + var _this = this; + var b = false; + var $lis = []; + _this.obj.find("cite[data-leaf]").each(function(){ + var $nthis = $(this); + var html = $nthis.html(); + if(html.indexOf(value) > -1){ + if($nthis.attr("data-leaf") == "leaf") { + // 叶子节点提供包含父节点的所有信息 + var title = ""; + $nthis.parents("li").each(function(){ + title = "-" + $(this).find("cite[data-leaf]").html() + title; + }); + title = title.substring(1, title.length); + $nthis.attr("title", title); + } + // 保存当前cite所在的li及父li中包含该值,则只保留父的 + var i = 0; + $nthis.parents("li").each(function(){ + var html2 = $(this).find("cite[data-leaf]").html(); + if(html2.indexOf(value) > -1){ + i++; + } + if(i >= 2){ + return true; + } + }); + if (i < 2){ + $lis.push($nthis.closest("li").prop("outerHTML")); + } + } + }); + if($lis.length > 0) { + b = true; + // 1.将树节点清空 + _this.obj.html(""); + // 2.遍历所有cite节点,展开当前cite节点 + for(var i=0; i<$lis.length; i++){ + _this.obj.append($lis[i]); + } + } + return b; + }; + + + /******************** 工具栏区域 ********************/ + // 获取工具栏 + DTree.prototype.getToolbarDom = function(){ + var _this = this; + var toolbarShow = _this.toolbarShow, + toolbarExt = _this.toolbarExt, + toolbarWay = _this.toolbarWay; + + if(toolbarShow.length > 0){ + for(var i=0; i 0){ + for(var i=0; i "+other +title+""; + } else if(toolbarWay == "fixed" || toolbarWay == "follow") { + return ""; + } + }, + setMenuToolbarOption: function(menubarId, title, classId, other){ + var rootId = _this.obj[0].id; + if(toolbarWay == "contextmenu") { + return "
                               "+other +title+"
                              "; + } else if(toolbarWay == "fixed" || toolbarWay == "follow") { + return ""; + } + }, + setToolbarPlace: function(toolbarMenu){ + if(toolbarWay == "contextmenu") { + if(toolbarMenu){ + _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id).find('div.layui-nav-item>dl.layui-nav-child').html(""); + for(var key in toolbarMenu){ + _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id).find('div.layui-nav-item>dl.layui-nav-child').append(toolbarMenu[key]); + } + } + } else if(toolbarWay == "fixed" || toolbarWay == "follow") { + _this.obj.find("cite[data-leaf][dtree-disabled='false']").each(function(){ + var $cite = $(this); + _this.dynamicToolbarDom($cite); + }); + } + } + } + }; + + // 在节点后动态绑定fixed和follow条件的工具栏 + DTree.prototype.dynamicToolbarDom = function($cite){ + var _this = this; + var toolbarWay = _this.toolbarWay; + if($cite.next("em."+TOOLBAR_TOOL_EM).length == 0) { + var $div = $cite.parent("div"); + var param = _this.getRequestParam(_this.getTempNodeParam($div)); + var toolbarMenus = _this.toolbarFun.loadToolbarBefore(event.cloneObj(_this.toolbarMenu), param, $div); + var hideCls = (toolbarWay == "follow") ? NAV_HIDE : ""; + var em = [""]; + if(toolbarMenus){ + for(var key in toolbarMenus){ + em.push(toolbarMenus[key]); + } + } + em.push(""); + $cite.after(em.join('')); + } + } + + // 隐藏toolbar + DTree.prototype.toolbarHide = function() { + var _this = this; + if(_this.toolbar && _this.toolbarWay == "contextmenu") { + var $toolBarDiv = _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id); + $toolBarDiv.find(".layui-nav-child").removeClass('layui-anim-fadein layui-show'); + } + } + + // toolbar内置方法 + DTree.prototype.toolbarMethod = function(){ + var _this = this; + return { + pulldown: function(obj){ // 展开当前点击节点的下面全部节点 + if(!obj) return; + var $ulNode = obj; + // 遍历所有ul子节点 + for (var i = 0; i < $ulNode.length; i++) { + // 获取当前节点的信息 + var $ul = $($ulNode[i]), + $div = $ul.prev("div"), + $i_spread = _this.getNodeDom($div).fnode(), + $i_node = _this.getNodeDom($div).snode(), + $cite = _this.getNodeDom($div).cite(), + spread = $i_spread.attr("data-spread"), + leaf = $cite.attr("data-leaf"); + + if (leaf == "leaf") { continue; } // 说明是叶子了,则继续循环下一个 + + if (spread == "open") { + // 说明该节点已经展开了,则进行子节点循环 + } else { + if (_this.type=="load") { //是否全量加载 + if (_this.cache) { //是否开启缓存 + if ($ul.html()) { + $ul.addClass(NAV_SHOW); + } else { //加载节点 + _this.getChild($div); + } + }else { //每次取新的数据 + $ul.html(""); + _this.getChild($div); + } + } else { // 全量加载 + $ul.addClass(NAV_SHOW); + } + _this.operateIcon($i_spread, $i_node).open(); + + } + var $childUl = $ul.children("li").children("ul"); + _this.toolbarMethod().pulldown($childUl); + } + }, + pullup: function($li){ // 收缩当前点击节点的下面全部节点 + $li.find("."+LI_NAV_CHILD).each(function(){ + // 获取当前节点的信息 + var $ul = $(this), + $div = $ul.prev("div"), + $i_spread = _this.getNodeDom($div).fnode(), + $i_node = _this.getNodeDom($div).snode(), + $cite = _this.getNodeDom($div).cite(), + spread = $i_spread.attr("data-spread"), + leaf = $cite.attr("data-leaf"); + + $ul.removeClass(NAV_SHOW); + _this.operateIcon($i_spread, $i_node).close(); + }); + } + } + }; + + // toolbar监听方法 + DTree.prototype.toolbarListener = function(tool, $div) { + var _this = this; + var $cite = $div.children("cite[data-leaf]"), + $ul = $div.next("ul"), + $p_li = $div.parent("li[data-index]"), //当前选中节点的顶级li节点 + $p_ul = $p_li.parent("ul"), //当前选中节点的顶级li节点的父级ul + $p_div = $p_ul.prev("div"), //当前选中节点的顶级li节点的父级ul的前一个div + title = $cite.html(); + switch (tool) { + case defaultTool.pulldown: + _this.toolbarMethod().pulldown($ul); + break; + case defaultTool.pullup: + _this.toolbarMethod().pullup($p_li); + break; + case defaultTool.addTool: + var content = _this.loadToolBar(title, defaultTool.addTool); + + layer.open({ + title: "新增"+_this.toolbarStyle.title, + type: 1, + area: _this.toolbarStyle.area, + content: content, + success: function(layero, index){ + form.render(); + form.on("submit(dtree_addNode_form)",function(data){ + var data = data.field; + var parentId = $div.attr("data-id"), + id = $div.attr("data-id")+"_node_"+$ul[0].childNodes.length, + leaf = true, + checked = "0", + level = parseInt($p_li.attr("data-index"))+1; + + // 创建子节点的DOM,添加子节点 + var checkArr = []; + if (_this.checkArrLen > 0) { + for (var i = 0; i < _this.checkArrLen; i++) { + checkArr.push({"type":i,"checked":"0"}); + } + } + + $ul.append(_this.getLiItemDom(id, parentId, data.addNodeName, data.addNodeName, true, "", "", checkArr, level, false, false, false, "", "", "item")); + // 先将li节点隐藏 + $ul.find("li[data-id='"+id+"']").hide(); + // 重新赋值 + var $addDiv = $ul.find("div[data-id='"+id+"']"); + node = _this.getNodeParam($addDiv); + + //获取组装后的requestNode,组合参数 + var requestNode = _this.getRequestParam(node); + requestNode = $.extend(requestNode, data); + + _this.temp = [id, $ul, $div, level]; + // 用户自定义想做的事情 + _this.toolbarFun.addTreeNode(requestNode, $div); + + layer.close(index); + return false; + }); + } + }); + break; + case defaultTool.editTool: + var content = _this.loadToolBar(title, defaultTool.editTool); + + layer.open({ + title: "编辑"+_this.toolbarStyle.title, + type: 1, + area: _this.toolbarStyle.area, + content: content, + success: function(layero, index){ + _this.toolbarFun.editTreeLoad(_this.getRequestParam(_this.getNodeParam($div))); + form.render(); + form.on("submit(dtree_editNode_form)",function(data){ + var data = data.field; + $cite.html(data.editNodeName); + node = _this.getNodeParam($div); + var requestNode = _this.getRequestParam(node); + requestNode = $.extend(requestNode, data); + _this.temp = [$cite, $div, title, $p_div]; + _this.toolbarFun.editTreeNode(requestNode, $div); + + layer.close(index); + }); + } + }); + break; + case defaultTool.delTool: + layer.confirm('确定要删除该'+_this.toolbarStyle.title+'?', {icon: 3, title:'删除'+_this.toolbarStyle.title}, function(index){ + var node = _this.getNodeParam($div); + _this.temp = [$p_li, $p_div]; + _this.toolbarFun.delTreeNode(_this.getRequestParam(_this.getNodeParam($div)), $div); + + layer.close(index); + }); + break; + default: + if(_this.toolbarExt.length > 0){ + for(var i=0; i<_this.toolbarExt.length; i++){ + var ext = _this.toolbarExt[i]; + if (tool == ext.toolbarId){ + ext.handler(_this.getRequestParam(_this.getNodeParam($div)), $div); + break; + } + } + } + break; + } + } + + + // 加载toolBar中的内容 + DTree.prototype.loadToolBar = function(title, name){ + var _this = this; + var toolbarShow = _this.toolbarShow; + var nodeBarContents = _this.toolbarBtn; + + var html = ""; + switch (name) { + case defaultTool.addTool: + var addNodeBarDef = [{"label": "当前选中", "name": "nodeTitle", "type": "text", "value": title, "defElem": "nowChoose", "readonly": true}, + {"label": "新增"+_this.toolbarStyle.title, "name": "addNodeName", "type": "text", "value": "", "defElem": "nowChange", "verify": "required"}, + {"type": "submit", "value": "确认添加", "defElem": "btn", "filter": "dtree_addNode_form"}]; + + //2. 用户自定义的节点内容 + var addNodeBar = ['
                              ']; + + if(nodeBarContents != null && nodeBarContents.length > 0){ + if(nodeBarContents[0] != null && nodeBarContents[0] != undefined && nodeBarContents[0].length > 0){ + var addNodeBarContents = nodeBarContents[0]; + // 1. 检查是否包含了now、newly、btn这三个默认项,将其他元素依次排列,将特殊元素至于栈顶 + for(var i=0; i', '
                              ']; + // 3.遍历生成按钮 + for(var j=0; j
                              '); + addNodeBar.push(addBtn.join('')); + addNodeBar.push('
                              '); + html = addNodeBar.join(''); + break; + + case defaultTool.editTool: + var editNodeBarDef = [{"label": "当前选中", "name": "nodeTitle", "type": "text", "value": title, "defElem": "nowChoose", "readonly": true}, + {"label": "编辑"+_this.toolbarStyle.title, "name": "editNodeName", "type": "text", "value": "", "defElem": "nowChange", "verify": "required"}, + {"type": "submit", "value": "确认编辑", "defElem": "btn", "filter": "dtree_editNode_form"}]; + + var editNodeBar = ['
                              ']; + //2. 用户自定义的节点内容 + if(nodeBarContents != null && nodeBarContents.length > 0){ + + if(nodeBarContents[1] != null && nodeBarContents[1] != undefined && nodeBarContents[1].length > 0){ + var editNodeBarContents = nodeBarContents[1]; + // 1. 检查是否包含了now、newly、btn这三个默认项,将其他元素依次排列,将特殊元素至于栈顶 + for(var i=0; i', '
                              ']; + // 3.遍历生成按钮 + for(var j=0; j
                              '); + editNodeBar.push(editBtn.join('')); + editNodeBar.push('
                              '); + html = editNodeBar.join(''); + break; + } + return html; + }; + + // 获取toolbar详细的标签信息 + DTree.prototype.loadToolBarDetail = function(nodeBarContents){ + var _this = this; + var readonly = (typeof (nodeBarContents.readonly) === "boolean") ? nodeBarContents.readonly : false; + var disabled = (typeof (nodeBarContents.disabled) === "boolean") ? nodeBarContents.disabled : false; + var id = nodeBarContents.id ? nodeBarContents.id : ""; + var name = nodeBarContents.name ? nodeBarContents.name : ""; + var val = nodeBarContents.value ? nodeBarContents.value : ""; + var verify = nodeBarContents.verify ? nodeBarContents.verify : ""; + var placeholder = nodeBarContents.placeholder ? nodeBarContents.placeholder : val; + return{ + text: function(){ + return ['
                              ', + '', + '
                              ', + '', + '
                              ', + '
                              '].join(''); + }, + textarea: function(){ + return ['
                              ', + '', + '
                              ', + '', + '
                              ', + '
                              '].join(''); + }, + hidden: function(){ + return [''].join(''); + }, + select: function(){ + var optionsData = (typeof nodeBarContents.optionsData === 'object') ? nodeBarContents.optionsData : nodeBarContents.optionsData(); + var options = ""; + for(var key in optionsData){ + if(val == optionsData[key]){ + options += ""; + } else { + options += ""; + } + } + return ['
                              ', + '', + '
                              ', + '', '
                              ', '
                              '].join(''); + }, + submit: function(){ + var filter = nodeBarContents.filter; + return [''].join(''); + }, + button: function(){ + return [''].join(''); + }, + reset: function(){ + return [''].join(''); + } + } + }; + + // 新增节点后改变节点内容 + DTree.prototype.changeTreeNodeAdd = function(returnID){ + var _this = this; + var temp = _this.temp; + var id = temp[0], $ul = temp[1], $div = temp[2], level = temp[3]; + var flag = false; + if(returnID){ + var $thisDiv = _this.obj.find("[data-id='"+id+"']"); + if(typeof returnID === "object"){ + // 如果是JSON格式数据,则将当前DIV删除,重新建造DIV + $thisDiv.remove(); + var parseData = _this.parseData(returnID); + + if(parseData.treeId()){ + $ul.append(_this.getLiItemDom(parseData.treeId(), parseData.parentId(), parseData.title(), parseData.fmtTitle(), parseData.last(0), parseData.ficonClass(), parseData.iconClass(), parseData.checkArr(), level, parseData.spread(), parseData.disabled(), parseData.hide(), parseData.basicData(), parseData.recordData(), "item")); + + // 建造完毕后,选中该DIV + $thisDiv = $ul.find("div[data-id='"+parseData.treeId()+"']"); + _this.setNodeParam($thisDiv) + } else { + layer.msg("添加失败,节点ID为undefined!",{icon:5}); + // 将li节点删除 + $ul.find("li[data-id='"+id+"']").remove(); + // 重新赋值 + _this.setNodeParam($div); + // 临时变量制空 + _this.temp = []; + return ; + } + }else if(returnID == 'refresh'){ + // 如果是设置为refresh参数,则向后台发送请求,获取新增节点下的真实参数,局部刷新树。 + flag = true; + } else if(typeof returnID === "string" || typeof returnID === 'number' || returnID == true){ + $thisDiv.attr("data-id", returnID); + // 将li节点展示 + $ul.find("li[data-id='"+returnID+"']").show(); + _this.setNodeParam($thisDiv) + } + + // 判断当前点击的节点是否是最后一级节点,如果是,则需要修改节点的样式 + var $icon_i = $div.find("i[data-spread]"); + if ($icon_i.eq(0).attr("data-spread") == "last") { + _this.operateIcon($icon_i.eq(0), $icon_i.eq(1)).openWithLeaf(); + } else { //如果不是,也要修改节点样式 + _this.operateIcon($icon_i.eq(0), $icon_i.eq(1)).open(); + } + $ul.addClass(NAV_SHOW); //展开UL + _this.accordionUL($ul); + if(flag) { + _this.getChild($div); + } else { + // _this.showLine(); + _this.showLine($ul.find("li")); + // 这种情况下需要在新增节点后对节点新增工具栏 + if(_this.toolbar && _this.toolbarWay != 'contextmenu') { + _this.dynamicToolbarDom($thisDiv.find("cite[data-leaf]")); + } + } + + } else { + // 将li节点删除 + $ul.find("li[data-id='"+id+"']").remove(); + // 重新赋值 + _this.setNodeParam($div); + } + + _this.temp = []; // 临时变量制空 + + }; + + // 编辑页打开后显示编辑页内容 + DTree.prototype.changeTreeNodeDone = function(param){ + var _this = this; + form.val('dtree_editNode_form', param); + form.render(); + }; + + // 修改节点后改变节点内容 + DTree.prototype.changeTreeNodeEdit = function(returnID){ + var _this = this; + var temp = _this.temp; + var $cite = temp[0], $div = temp[1], title = temp[2], $p_div = temp[3]; + var flag = false; + if(returnID){ + if(typeof returnID === "object"){ + var parseData = _this.parseData(data); + + if(parseData.treeId()){ + var replaceDom = _this.replaceDom($div, parseData.treeId(), parseData.last(0), parseData.spread(), parseData.disabled(), parseData.hide()); + replaceDom.node(parseData.iconClass()); + replaceDom.checkbox(parseData.checkArr()); + replaceDom.text(parseData.title()); + replaceDom.ul(); + replaceDom.basicData(parseData.basicData()); + replaceDom.recordData(parseData.recordData()); + _this.setNodeParam($div); + } else { + layer.msg("编辑失败,节点ID为undefined!",{icon:5}); + // 重新赋值 + _this.setNodeParam($div); + } + } + } else { + $cite.html(title); + _this.getNodeParam($div); + } + + _this.temp = []; // 临时变量制空 + }; + + // 删除节点后改变节点内容 + DTree.prototype.changeTreeNodeDel = function(flag){ + var _this = this; + var temp = _this.temp; + var $p_li = temp[0], + $p_ul = $p_li.parent("ul"), + $p_div = temp[1]; + + if(flag){ + $p_li.remove(); + _this.showLine($p_ul.find("li")); + // 判断父级ul中是否还存在li,如果不存在,则需要修改节点的样式 + if($p_ul.children("li").length == 0){ + var $icon_i = $p_div.find("i[data-spread]"); + _this.operateIcon($icon_i.eq(0), $icon_i.eq(1)).closeWithLeaf(); + } + _this.initNodeParam(); + } + + _this.temp = []; // 临时变量制空 + }; + + /******************** iframe区域 ********************/ + // 加载iframe + DTree.prototype.loadIframe = function($div, iframeParam) { + var _this = this; + var $cite = _this.getNodeDom($div).cite(); + if (!_this.useIframe) { // 启用iframe + return false; + } + var iframeElem = _this.iframeElem, + iframeUrl = _this.iframeUrl, + iframeLoad = _this.iframeLoad; + + var flag = iframeLoad == "leaf" ? (($cite.attr("data-leaf") == "leaf") ? true : false) : true; + + if (flag) { + if ($(iframeElem).length > 0) { //iframe存在 + if (!iframeUrl) { + layer.msg("数据请求异常,iframeUrl参数未指定", {icon:5}); + return false; + } + var param = AjaxHelper.serialize(iframeParam); + if(iframeUrl.indexOf("?")> -1){ + param = "&"+param.substring(1, param.length); + } + var url = iframeUrl + param; + $(iframeElem).attr("src", url); + } else { + layer.msg("iframe绑定异常,请确认页面中是否有iframe页对应的容器", {icon:5}); + return false; + } + } + return flag; + }; + + // 获取传递出去的参数,根据iframe.iframeDefaultRequest、iframe.iframeRequest和node拼出发出请求的参数 + DTree.prototype.getIframeRequestParam = function(nodes){ + var _this = this; + var request = _this.iframeRequest, + defaultRequestNames = _this.iframeDefaultRequest, + node = nodes || _this.node, + requestParam = {}; + + // 先拼用户自定义的,在拼树生成的,这样的话用户可以自定义当树未生成时的节点的初始值 + for ( var key in request) { + requestParam[key] = request[key]; + } + for ( var key in defaultRequestNames) { + var paramName = defaultRequestNames[key]; + var paramValue = node[key]; + if(typeof paramValue === "boolean"){ + requestParam[paramName] = paramValue; + }else { + if(paramValue){ + requestParam[paramName] = paramValue; + } + } + } + + // 解决传递中文的乱码问题 + var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/; //正则匹配中文 + for(var key in requestParam){ + if(reg.test(requestParam[key])) { + var str = requestParam[key]; + requestParam[key] = encodeURI(encodeURI(str)); + } + } + + return requestParam; + }; + + /******************** 数据回调区域 ********************/ + // 根据具体的id获取基于当前id的div以及对应的其他dom元素 + DTree.prototype.getNodeDom = function(id){ + var _this = this; + // 获取当前div,如果id就是一个dom,则就是这个,如果不是则进行选择。如果选不中则为null + var $div = (typeof id === 'object') ? id : (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']").length == 0) ? null : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']"); + return { + div: function(){ // 获取当前div + return $div; + }, + fnode: function(){ // 获取一级图标元素 + return ($div == null) ? null : $div.find("i[data-spread]").eq(0); + }, + snode: function(){ // 获取二级图标元素 + return ($div == null) ? null : $div.find("i[data-spread]").eq(1); + }, + checkbox: function(){ // 获取复选框元素 + return ($div == null) ? null : $div.find("i[data-par]"); + }, + cite: function(){ // 获取cite元素 + return ($div == null) ? null : $div.find("cite[data-leaf]"); + }, + nextUl: function(){ // 获取相邻的ul元素 + return ($div == null) ? null : $div.next("ul"); + }, + parentLi: function(){ // 获取父级li元素 + return ($div == null) ? null : $div.parent("li"); + }, + parentUl: function(){ // 获取基于当前$div的上级$ul + return ($div == null) ? null : $div.parent("li").parent("ul"); + }, + parentDiv: function(){ // 获取基于当前$div的上级$div + return ($div == null) ? null : $div.parent("li").parent("ul").prev("div"); + }, + nowDiv: function(){ // 获取当前选中节点,没有则返回null + return (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id]").parent().find("."+NAV_THIS).length == 0) ? null : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id]").parent().find("."+NAV_THIS); + }, + nowOrRootDiv: function(){ // 获取当前选中节点,没有则返回根节点下的第一个div + return (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id]").parent().find("."+NAV_THIS).length == 0) ? _this.obj.children("li").eq(0).children("div").eq(0) : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id]").parent().find("."+NAV_THIS); + }, + nowOrRootUl: function(){ // 获取当前选中节点下一个UL 或根节点。为了将新节点放入ul下 + return (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id]").parent().find("."+NAV_THIS).length == 0) ? _this.obj : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id]").parent().find("."+NAV_THIS).next("ul"); + } + } + }; + + // 获取当前选中节点下一个UL 或根节点。为了将新节点放入ul下 + DTree.prototype.getNowNodeUl = function() { + var _this = this; + return _this.getNodeDom().nowOrRootUl(); + }; + + // 获取当前选中节点 或第一个根节点。 + DTree.prototype.getNowNode = function() { + var _this = this; + return _this.getNodeDom().nowOrRootDiv(); + }; + + // 获取当前选中节点 无则返回null。 + DTree.prototype.getNowNodeOrNull = function() { + var _this = this; + return _this.getNodeDom().nowDiv(); + }; + + // 获取指定节点。 + DTree.prototype.getNode = function(id) { + var _this = this; + return _this.getNodeDom(id).div(); + }; + + // 设置当前选中节点的全部参数 + DTree.prototype.setNodeParam = function($div) { + var _this = this; + _this.node.nodeId = $div.attr("data-id"); + _this.node.parentId = _this.getNodeDom($div).parentLi().attr("data-pid"); + _this.node.context = (typeof _this.formatter.title === 'function') ? _this.getNodeDom($div).cite().attr("data-title") : _this.getNodeDom($div).cite().text(); + _this.node.leaf = _this.getNodeDom($div).cite().attr("data-leaf") == "leaf" ? true : false; + _this.node.level = _this.getNodeDom($div).parentLi().attr("data-index"); + _this.node.spread = _this.getNodeDom($div).fnode().attr("data-spread") == "open" ? true : false; + + var basicData = $div.attr("data-basic"); + if(basicData) { + basicData = JSON.parse(event.unescape(basicData)); + } + _this.node.basicData = basicData; + + var recordData = $div.attr("data-record"); + if(recordData) { + recordData = JSON.parse(event.unescape(recordData)); + } + _this.node.recordData = recordData; + + if (_this.getNodeDom($div).checkbox()) { + var dataTypes = "", checkeds = "", initcheckeds = ""; + _this.getNodeDom($div).checkbox().each(function(){ + dataTypes += $(this).attr("data-type") + ","; + checkeds += $(this).attr("data-checked") + ","; + initcheckeds += $(this).attr("data-initchecked") + ","; + }); + dataTypes = dataTypes.substring(0, dataTypes.length-1); + checkeds = checkeds.substring(0, checkeds.length-1); + initcheckeds = initcheckeds.substring(0, initcheckeds.length-1); + + _this.node.dataType = dataTypes; + _this.node.checked = checkeds; + _this.node.initchecked = initcheckeds; + } + }; + + // 获取当前选中节点的全部参数 + DTree.prototype.getNodeParam = function($div) { + var _this = this; + if ($div) { + _this.setNodeParam($div); + } else { + if(_this.obj.find("div[data-id]").parent().find("."+NAV_THIS).length == 0){ + _this.initNodeParam(); + } + } + return this.node; + }; + + // 获取一个临时的node参数 + DTree.prototype.getTempNodeParam = function($div) { + var _this = this; + var temp_node = {}; + temp_node.nodeId = $div.attr("data-id"); + temp_node.parentId = _this.getNodeDom($div).parentLi().attr("data-pid"); + temp_node.context = (typeof _this.formatter.title === 'function') ? _this.getNodeDom($div).cite().attr("data-title") : _this.getNodeDom($div).cite().text(); + temp_node.leaf = _this.getNodeDom($div).cite().attr("data-leaf") == "leaf" ? true : false; + temp_node.level = _this.getNodeDom($div).parentLi().attr("data-index"); + temp_node.spread = _this.getNodeDom($div).fnode().attr("data-spread") == "open" ? true : false; + + var basicData = $div.attr("data-basic"); + if(basicData) { + basicData = JSON.parse(event.unescape(basicData)); + } + temp_node.basicData = basicData; + var recordData = $div.attr("data-record"); + if(recordData) { + recordData = JSON.parse(event.unescape(recordData)); + } + temp_node.recordData = recordData; + + if (_this.getNodeDom($div).checkbox()) { + var dataTypes = "", checkeds = "", initcheckeds = ""; + _this.getNodeDom($div).checkbox().each(function(){ + dataTypes += $(this).attr("data-type") + ","; + checkeds += $(this).attr("data-checked") + ","; + initcheckeds += $(this).attr("data-initchecked") + ","; + }); + dataTypes = dataTypes.substring(0, dataTypes.length-1); + checkeds = checkeds.substring(0, checkeds.length-1); + initcheckeds = initcheckeds.substring(0, initcheckeds.length-1); + + temp_node.dataType = dataTypes; + temp_node.checked = checkeds; + temp_node.initchecked = initcheckeds; + } + return temp_node; + }; + + // 重置参数 + DTree.prototype.initNodeParam = function(){ + var _this = this; + _this.node.nodeId = ""; + _this.node.parentId = ""; + _this.node.context = ""; + _this.node.leaf = ""; + _this.node.level = ""; + _this.node.spread = ""; + _this.node.dataType = ""; + _this.node.checked = ""; + _this.node.initchecked = ""; + _this.node.basicData = ""; + _this.node.recordData = ""; + + if(_this.select) { + _this.selectResetVal(); + } + }; + + // 获取传递出去的参数,根据defaultRequest、request和node拼出发出请求的参数 + DTree.prototype.getRequestParam = function(nodes){ + var _this = this; + var request = _this.request, + defaultRequestNames = _this.defaultRequest, + node = nodes || _this.node, + requestParam = {}; + + // 先拼用户自定义的,在拼树生成的,这样的话用户可以自定义当树未生成时的节点的初始值 + for ( var key in request) { + requestParam[key] = request[key]; + } + for ( var key in defaultRequestNames) { + var paramName = defaultRequestNames[key]; + var paramValue = node[key]; + if(typeof paramValue === "boolean"){ + requestParam[paramName] = paramValue; + }else { + if(paramValue){ + requestParam[paramName] = paramValue; + } + } + + } + return requestParam; + }; + + // 获取filterParam过滤后的requestParam + DTree.prototype.getFilterRequestParam = function(requestParam){ + var _this = this; + var filterRequest = _this.filterRequest; + return event.cloneObj(requestParam, filterRequest); + }; + + // 获取当前选中值 + DTree.prototype.getNowParam = function(){ + var _this = this; + + return _this.getRequestParam(_this.getNodeParam()); + }; + + // 获取指定节点选中值 + DTree.prototype.getParam = function(id){ + var _this = this; + + // 获取当前div,如果id就是一个dom,则就是这个,如果不是则进行选择。如果选不中则为null + var $div = (typeof id === 'object') ? id : (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']").length == 0) ? null : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']"); + if($div != null){ return _this.callbackData().node(_this.getTempNodeParam($div)); } else { return {}; } + }; + + // 获取参数的上级节点 + DTree.prototype.getParentParam = function(id){ + var _this = this; + // 获取当前div,如果id就是一个dom,则就是这个,如果不是则进行选择。如果选不中则为null + var $div = (typeof id === 'object') ? id : (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']").length == 0) ? null : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']"); + if($div != null){ return _this.callbackData().parentNode($div); } else { return {}; } + }; + + // 获取参数的全部上级节点 + DTree.prototype.getAllParentParam = function(id){ + var _this = this; + // 获取当前div,如果id就是一个dom,则就是这个,如果不是则进行选择。如果选不中则为null + var $div = (typeof id === 'object') ? id : (_this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']").length == 0) ? null : _this.obj.find("div[dtree-click='"+eventName.itemNodeClick+"'][data-id='"+id+"']"); + var arr = []; + if($div != null){ + var level = _this.getTempNodeParam($div).level; + for(var i=1; i 0){ + $childDivs.each(function(){ + var $cDiv = $(this); + childNode.push(_this.getRequestParam(_this.getTempNodeParam($cDiv))); + }); + } + return childNode; + }, + parentNode: function($div){ // 获取上级节点值 + var pId = _this.getNodeDom($div).parentLi().attr("data-pid"); + var $pdiv = _this.obj.find("div[data-id='"+pId+"']"); + if($pdiv.length > 0) {return _this.getRequestParam(_this.getTempNodeParam($pdiv));} else {return {};} + + } + } + }; + + /******************** 事件回调区域 ********************/ + // 绑定浏览器事件 + DTree.prototype.bindBrowserEvent = function(){ + var _this = this; + var rootId = _this.obj[0].id; + + // 绑定文件夹展开/收缩的图标的点击事件,点击时给当前节点的div添加选中class + _this.obj.on("click", "i[data-spread]", function(event) { + event.stopPropagation(); + var $i = $(this), + $div = $i.parent("div"), + node = _this.getNodeParam($div); + + _this.toolbarHide(); + _this.navThis($div); + _this.clickSpread($div); // 展开或隐藏节点 + + // 树状态改变后,用户自定义想做的事情 + layui.event.call(this, MOD_NAME, "changeTree("+$(_this.obj)[0].id+")", { + dom: _this.callbackData().dom($i), + param: _this.callbackData().node(node), + show: _this.callbackData().dom($i).attr("data-spread") == "open" ? true : false + }); + }); + + // 绑定所有子节点div的单击事件,点击时触发加载iframe或用户自定义想做的事情 + _this.obj.on("click", "div[dtree-click='"+eventName.itemNodeClick+"'][dtree-disabled='false']", function(event) { + event.stopPropagation(); + var $div = $(this), + $cite = $div.find("cite"), + node = _this.getNodeParam($div); + _this.toolbarHide(); + _this.navThis($div); + + if(_this.select) { + _this.selectVal(node.nodeId); + $("div[dtree-id='" + rootId + "'][dtree-select='"+_this.selectDiv+"']").click(); + } + + if (_this.useIframe) { + var iframeParam = _this.getFilterRequestParam(_this.getIframeRequestParam(node)); + var flag = _this.loadIframe($div, iframeParam); // 加载iframe + if (flag) { + // iframe加载完毕后,用户自定义想做的事情 + _this.iframeFun.iframeDone(iframeParam); + + layui.event.call(this, MOD_NAME, "iframeDone("+$(_this.obj)[0].id+")", { + "iframeParam": iframeParam, + dom: _this.callbackData().dom($div) + }); + } + } else { + // 单击事件执行完毕后,用户自定义想做的事情 + layui.event.call(this, MOD_NAME, "node("+$(_this.obj)[0].id+")", { + param: _this.callbackData().node(node), + childParams: _this.callbackData().childNode($div), + parentParam: _this.callbackData().parentNode($div), + dom: _this.callbackData().dom($div) + }); + } + }); + + // 绑定所有子节点div的双击事件,暴露on给用户自定义 + _this.obj.on("dblclick", "div[dtree-click='"+eventName.itemNodeClick+"'][dtree-disabled='false']", function(event) { + event.stopPropagation(); + var $div = $(this), + $cite = $div.find("cite"), + node = _this.getNodeParam($div); + _this.toolbarHide(); + _this.navThis($div); + + if(_this.select) { + _this.selectVal(node.nodeId); + $("div[dtree-id='" + rootId + "'][dtree-select='"+_this.selectDiv+"']").click(); + } + + // 双击事件执行完毕后,用户自定义想做的事情 + layui.event.call(this, MOD_NAME, "nodedblclick("+$(_this.obj)[0].id+")", { + param: _this.callbackData().node(node), + childParams: _this.callbackData().childNode($div), + parentParam: _this.callbackData().parentNode($div), + dom: _this.callbackData().dom($div) + }); + }); + + if(_this.checkbar) { + // 绑定cheboxbar的节点复选框 + _this.obj.on("click", "i[dtree-click='"+eventName.checkNodeClick+"'][dtree-disabled='false']", function(event) { + _this.toolbarHide(); + var $i = $(this), + $div = $i.closest("div[dtree-click='"+eventName.itemNodeClick+"']"), + node = _this.getNodeParam($div); + // 复选框选中前的回调 + var flag = _this.checkbarFun.chooseBefore($i, _this.getRequestParam(node)); + _this.temp = [$i]; + if(flag){_this.changeCheck();} + + event.stopPropagation(); + }); + } + + if(_this.menubar) { + // 绑定menubar的点击事件 + _this.obj.prevAll('div#dtree_menubar_'+_this.obj[0].id).on("click", "button[d-menu]", function(event) { + event.stopPropagation(); + _this.toolbarHide(); + _this.menubarListener($(this).attr("d-menu"), "group"); + }); + + // 绑定menubar的点击事件 + _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id).on("click", "a[d-menu]", function(event) { + event.stopPropagation(); + _this.toolbarHide(); + _this.menubarListener($(this).attr("d-menu"), "toolbar"); + }); + + // 绑定menubar的点击按钮事件 + _this.obj.closest('body').find("*[dtree-id='"+_this.obj[0].id+"'][dtree-menu]").on("click", function(event) { + event.stopPropagation(); + _this.toolbarHide(); + _this.menubarListener($(this).attr("dtree-menu"), "freedom"); + }); + } + + if(_this.toolbar) { + if(_this.toolbarWay == "contextmenu") { + //绑定所有子节点div的右键点击事件,用于显示toolbar + _this.obj.on("contextmenu", "div[dtree-click='"+eventName.itemNodeClick+"'][d-contextmenu='true'][dtree-disabled='false']", function(e){ + var $div = $(this), + node = _this.getNodeParam($div); + + _this.toolbarHide(); + // toolbar加载前执行的方法,执行完毕之后创建按钮 + _this.setToolbarDom().setToolbarPlace(_this.toolbarFun.loadToolbarBefore(event.cloneObj(_this.toolbarMenu), _this.getRequestParam(node), $div)); + + var e = e || window.event, + mx = e.pageX - $div.offset().left +45 , + my = $div.offset().top - _this.obj.closest(_this.scroll).offset().top +15; + + _this.navThis($div); + var $toolBarDiv = _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id); + $toolBarDiv.find(".layui-nav-child").addClass('layui-anim-fadein layui-show'); + $toolBarDiv.css({'left':mx+'px','top':my+'px'}); + + e.stopPropagation(); + return false; + }); + + // 绑定装载树的上层出现滚动条的容器,让toolbar隐藏 + _this.obj.closest(_this.scroll).scroll(function() { + _this.toolbarHide(); + }); + + // 绑定toolbar的点击事件 + _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id).on("click", "a[dtree-tool]", function(event) { + event.stopPropagation(); + var $div = _this.getNodeDom().nowOrRootDiv(), + node = _this.getNodeParam($div); + _this.toolbarHide(); + var tool = $(this).attr("dtree-tool"); + _this.toolbarListener(tool, $div); + }); + } else if(_this.toolbarWay == "fixed") { + // 绑定toolbar的点击事件 + _this.obj.on("click", "a[dtree-tool]", function(event) { + event.stopPropagation(); + var $a = $(this), + $cite = $a.parent("em."+TOOLBAR_TOOL_EM).prev("cite"), //当前选中节点的text + $div = $cite.parent("div"), + node = _this.getNodeParam($div); + var tool = $a.attr("dtree-tool"); + + _this.toolbarHide(); + _this.navThis($div); + _this.toolbarListener(tool, $div); + }); + } else if(_this.toolbarWay == "follow") { + //绑定所有子节点div的mouseover mouseout事件,用于显示或隐藏toolbar + _this.obj.on("mouseover mouseout", "div[dtree-click='"+eventName.itemNodeClick+"'][dtree-disabled='false']", function(event){ + var $div = $(this), + $toolBarEm = $div.children("em."+TOOLBAR_TOOL_EM); + if(event.type == "mouseover"){ + $toolBarEm.removeClass(NAV_HIDE); + event.stopPropagation(); + } else if(event.type == "mouseout"){ + $toolBarEm.addClass(NAV_HIDE); + event.stopPropagation(); + } + }); + + // 绑定toolbar的点击事件 + _this.obj.on("click", "a[dtree-tool]", function(event) { + event.stopPropagation(); + var $a = $(this), + $cite = $a.parent("em."+TOOLBAR_TOOL_EM).prev("cite"), //当前选中节点的text + $div = $cite.parent("div"), + node = _this.getNodeParam($div); + var tool = $a.attr("dtree-tool"); + + _this.toolbarHide(); + _this.navThis($div); + _this.toolbarListener(tool, $div); + }); + } + } + + if(_this.select) { + // 绑定select的点击事件 + $("div[dtree-id='" + rootId + "'][dtree-select='"+_this.selectDiv+"']").on("click", function(event){ + event.stopPropagation(); + $(this).toggleClass("layui-form-selected"); + $("div[dtree-id='" + rootId + "'][dtree-card='"+_this.selectCardDiv+"']").toggleClass("dtree-select-show layui-anim layui-anim-upbit"); + + // 下拉树面板开闭状态改变后,用户自定义想做的事情 + layui.event.call(this, MOD_NAME, "changeSelect("+$(_this.obj)[0].id+")", { + show: $(this).hasClass("layui-form-selected"), + param: _this.selectVal() + }); + }); + + } + }; + + // 绑定body的单击,让本页面所有的toolbar隐藏 + $BODY.on("click", function(event){ + $("div."+LI_DIV_TOOLBAR).find(".layui-show").removeClass('layui-anim-fadein layui-show'); + // $("div[dtree-id][dtree-select]").removeClass("layui-form-selected"); + // $("div[dtree-id][dtree-card]").removeClass("dtree-select-show layui-anim layui-anim-upbit"); + + }); + + // 解绑浏览器事件 + DTree.prototype.unbindBrowserEvent = function(){ + var _this = this; + + // 本身事件解绑 + _this.obj.unbind(); + // 菜单栏解绑 + if(_this.menubar){ + _this.obj.prevAll('div#dtree_menubar_'+_this.obj[0].id).unbind(); + if(_this.obj.closest('body').find("*[dtree-id='"+_this.obj[0].id+"'][dtree-menu]").length > 0){ + _this.obj.closest('body').find("*[dtree-id='"+_this.obj[0].id+"'][dtree-menu]").unbind(); + } + } + + // 工具栏解绑 + if(_this.toolbar){ + if(_this.toolbarWay == "contextmenu") { + _this.obj.prevAll('div#dtree_toolbar_'+_this.obj[0].id).unbind(); + if(_this.obj.closest(_this.scroll).length > 0){ + _this.obj.closest(_this.scroll).unbind(); + } + } + } + + // 下拉树解绑 + if(_this.select) { + // 解绑select的点击事件 + $("div[dtree-id='" + _this.obj[0].id + "'][dtree-select='"+_this.selectDiv+"']").removeClass("layui-form-selected"); + $("div[dtree-id='" + _this.obj[0].id + "'][dtree-card='"+_this.selectCardDiv+"']").removeClass("dtree-select-show layui-anim layui-anim-upbit"); + $("div[dtree-id='" + _this.obj[0].id + "'][dtree-select='"+_this.selectDiv+"']").unbind(); + } + }; + + + /** 外部访问 **/ + var dtree = { + set: function(options){ //设置全局属性 + if(typeof options !== 'undefined') { + $.extend(OPTIONS, options); + } + }, + render: function(options){ // 初始化树 + var dTree = null; + var id = event.getElemId(options); + if(id == "") { + layer.msg("页面中未找到绑定id", {icon:5}); + } else { + dTree = DTrees[id]; + if(typeof dTree === 'object'){ + dTree.unbindBrowserEvent(); + } + // 创建树 + dTree = new DTree(options); + // 添加到树数组中去 + DTrees[id] = dTree; + dTree.initTreePlus(); + dTree.openTreePlus(); + dTree.init(); + dTree.bindBrowserEvent(); + } + + return dTree; + }, + renderSelect: function(options){ // 初始化下拉树 + var dTree = null; + var id = event.getElemId(options); + if(id == "") { + layer.msg("页面中未找到绑定id", {icon:5}); + } else { + dTree = DTrees[id]; + if(typeof dTree === 'object'){ + dTree.unbindBrowserEvent(); + } + // 创建下拉树 + dTree = new DTree(options); + dTree.selectSetting(); + // 添加到树数组中去 + DTrees[id] = dTree; + dTree.initTreePlus(); + dTree.openTreePlus(); + dTree.init(); + dTree.bindBrowserEvent(); + } + + return dTree; + }, + reload: function(dTree, options){ // 重新加载树 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + dTree.reloadSetting(options); + dTree.initTreePlus(); + dTree.openTreePlus(); + dTree.initNodeParam(); + dTree.init(); + dTree.unbindBrowserEvent(); + dTree.bindBrowserEvent(); + }, + on: function(events, callback) { // 绑定事件 + if(events.indexOf("'") > 0){ + events = events.replace(/'/g,""); + } + if(events.indexOf('"') > 0) { + events = events.replace(/"/g,""); + } + return layui.onevent.call(this, MOD_NAME, events, callback); + }, + click: function(dTree, id) { // 模拟单击事件 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + $("div[dtree-click='"+eventName.itemNodeClick+"'][dtree-id='"+dTree.obj[0].id+"'][data-id='"+id+"']").click(); + }, + getNowParam: function(dTree){ // 获取当前选中值 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.getNowParam(); // 获取当前选中值 + }, + getParam: function(dTree, id){ // 获取指定节点值 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.getParam(id); // 获取指定节点值 + }, + getParentParam: function(dTree, id){ // 获取参数的上级节点 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.getParentParam(id); + }, + getAllParentParam: function(dTree, id){ // 获取参数的全部上级节点 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.getAllParentParam(id); + }, + getChildParam: function(dTree, id){ // 获取参数的全部下级节点 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.getChildParam(id); + }, + getCheckbarNodesParam: function(dTree){ // 获取复选框选中值 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return {}; + } + return dTree.getCheckbarNodesParam(); // 获取复选框选中值 + }, + dataInit: function(dTree, chooseId){ // 初始化选中树,针对数据反选 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + if(chooseId){ + return dTree.dataInit(chooseId); + } + }, + chooseDataInit: function(dTree, chooseIds){ // 初始化复选框选中,针对数据反选 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + if(chooseIds){ + return dTree.chooseDataInit(chooseIds); + } + }, + changeCheckbarNodes: function(dTree){ //判断复选框是否发生变更 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.changeCheckbarNodes(); + }, + initNoAllCheck: function(dTree) { //复选框半选状态初始化设置 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.initNoAllCheck(); + }, + initAllCheck: function(dTree){ // 复选框选中状态初始化设置 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.initAllCheck(); + }, + selectVal: function(dTree, param){ // select模式设置输入框选中值 + if(typeof dTree === "string"){ + dTree = DTrees[dTree]; + } + if(typeof dTree === "undefined"){ + layer.msg("方法获取失败,请检查ID或对象传递是否正确",{icon:2}); + return ; + } + return dTree.selectVal(param); // select模式设置输入框选中值 + }, + escape: function(html){ // 字符串格式化 + return event.escape(html); + }, + unescape: function(str){ // 字符串反格式化 + return event.unescape(str); + }, + version: function(){ //获取版本号 + return VERSION; + } + }; + + exports('dtree', dtree); +}); \ No newline at end of file diff --git a/src/main/resources/static/js/layuiModules/nprogress.js b/src/main/resources/static/js/layuiModules/nprogress.js new file mode 100644 index 0000000..3b5fce0 --- /dev/null +++ b/src/main/resources/static/js/layuiModules/nprogress.js @@ -0,0 +1,490 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +;(function (root, factory) { + + if (typeof define === 'function' && define.amd) { + define(factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else if (window.layui && layui.define) { // 加入layui模块规范 + layui.define(["jquery"], function (exports) { + exports("nprogress", factory(layui.jquery)); + }).addcss("components/nprogress.css"); + } else { + root.NProgress = factory(); + } + +})(this, function () { + var NProgress = {}; + + NProgress.version = '0.2.0'; + + var Settings = NProgress.settings = { + minimum: 0.08, + easing: 'linear', + positionUsing: '', + speed: 200, + trickle: true, + trickleSpeed: 200, + showSpinner: true, + barSelector: '[role="bar"]', + spinnerSelector: '[role="spinner"]', + parent: 'body', + template: '
                              ' + }; + + /** + * Updates configuration. + * + * NProgress.configure({ + * minimum: 0.1 + * }); + */ + NProgress.configure = function (options) { + var key, value; + for (key in options) { + value = options[key]; + if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value; + } + + return this; + }; + + /** + * Last number. + */ + + NProgress.status = null; + + /** + * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`. + * + * NProgress.set(0.4); + * NProgress.set(1.0); + */ + + NProgress.set = function (n) { + var started = NProgress.isStarted(); + + n = clamp(n, Settings.minimum, 1); + NProgress.status = (n === 1 ? null : n); + + var progress = NProgress.render(!started), + bar = progress.querySelector(Settings.barSelector), + speed = Settings.speed, + ease = Settings.easing; + + progress.offsetWidth; /* Repaint */ + + queue(function (next) { + // Set positionUsing if it hasn't already been set + if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS(); + + // Add transition + css(bar, barPositionCSS(n, speed, ease)); + + if (n === 1) { + // Fade out + css(progress, { + transition: 'none', + opacity: 1 + }); + progress.offsetWidth; /* Repaint */ + + setTimeout(function () { + css(progress, { + transition: 'all ' + speed + 'ms linear', + opacity: 0 + }); + setTimeout(function () { + NProgress.remove(); + next(); + }, speed); + }, speed); + } else { + setTimeout(next, speed); + } + }); + + return this; + }; + + NProgress.isStarted = function () { + return typeof NProgress.status === 'number'; + }; + + /** + * Shows the progress bar. + * This is the same as setting the status to 0%, except that it doesn't go backwards. + * + * NProgress.start(); + * + */ + NProgress.start = function () { + if (!NProgress.status) NProgress.set(0); + + var work = function () { + setTimeout(function () { + if (!NProgress.status) return; + NProgress.trickle(); + work(); + }, Settings.trickleSpeed); + }; + + if (Settings.trickle) work(); + + return this; + }; + + /** + * Hides the progress bar. + * This is the *sort of* the same as setting the status to 100%, with the + * difference being `done()` makes some placebo effect of some realistic motion. + * + * NProgress.done(); + * + * If `true` is passed, it will show the progress bar even if its hidden. + * + * NProgress.done(true); + */ + + NProgress.done = function (force) { + if (!force && !NProgress.status) return this; + + return NProgress.inc(0.3 + 0.5 * Math.random()).set(1); + }; + + /** + * Increments by a random amount. + */ + + NProgress.inc = function (amount) { + var n = NProgress.status; + + if (!n) { + return NProgress.start(); + } else if (n > 1) { + return; + } else { + if (typeof amount !== 'number') { + if (n >= 0 && n < 0.2) { + amount = 0.1; + } else if (n >= 0.2 && n < 0.5) { + amount = 0.04; + } else if (n >= 0.5 && n < 0.8) { + amount = 0.02; + } else if (n >= 0.8 && n < 0.99) { + amount = 0.005; + } else { + amount = 0; + } + } + + n = clamp(n + amount, 0, 0.994); + return NProgress.set(n); + } + }; + + NProgress.trickle = function () { + return NProgress.inc(); + }; + + /** + * Waits for all supplied jQuery promises and + * increases the progress as the promises resolve. + * + * @param $promise jQUery Promise + */ + (function () { + var initial = 0, current = 0; + + NProgress.promise = function ($promise) { + if (!$promise || $promise.state() === "resolved") { + return this; + } + + if (current === 0) { + NProgress.start(); + } + + initial++; + current++; + + $promise.always(function () { + current--; + if (current === 0) { + initial = 0; + NProgress.done(); + } else { + NProgress.set((initial - current) / initial); + } + }); + + return this; + }; + + })(); + + /** + * (Internal) renders the progress bar markup based on the `template` + * setting. + */ + + NProgress.render = function (fromStart) { + if (NProgress.isRendered()) return document.getElementById('nprogress'); + + addClass(document.documentElement, 'nprogress-busy'); + + var progress = document.createElement('div'); + progress.id = 'nprogress'; + progress.innerHTML = Settings.template; + + var bar = progress.querySelector(Settings.barSelector), + perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0), + parent = document.querySelector(Settings.parent), + spinner; + + css(bar, { + transition: 'all 0 linear', + transform: 'translate3d(' + perc + '%,0,0)' + }); + + if (!Settings.showSpinner) { + spinner = progress.querySelector(Settings.spinnerSelector); + spinner && removeElement(spinner); + } + + if (parent != document.body) { + addClass(parent, 'nprogress-custom-parent'); + } + + parent.appendChild(progress); + return progress; + }; + + /** + * Removes the element. Opposite of render(). + */ + + NProgress.remove = function () { + removeClass(document.documentElement, 'nprogress-busy'); + removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent'); + var progress = document.getElementById('nprogress'); + progress && removeElement(progress); + }; + + /** + * Checks if the progress bar is rendered. + */ + + NProgress.isRendered = function () { + return !!document.getElementById('nprogress'); + }; + + /** + * Determine which positioning CSS rule to use. + */ + + NProgress.getPositioningCSS = function () { + // Sniff on document.body.style + var bodyStyle = document.body.style; + + // Sniff prefixes + var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' : + ('MozTransform' in bodyStyle) ? 'Moz' : + ('msTransform' in bodyStyle) ? 'ms' : + ('OTransform' in bodyStyle) ? 'O' : ''; + + if (vendorPrefix + 'Perspective' in bodyStyle) { + // Modern browsers with 3D support, e.g. Webkit, IE10 + return 'translate3d'; + } else if (vendorPrefix + 'Transform' in bodyStyle) { + // Browsers without 3D support, e.g. IE9 + return 'translate'; + } else { + // Browsers without translate() support, e.g. IE7-8 + return 'margin'; + } + }; + + /** + * Helpers + */ + + function clamp(n, min, max) { + if (n < min) return min; + if (n > max) return max; + return n; + } + + /** + * (Internal) converts a percentage (`0..1`) to a bar translateX + * percentage (`-100%..0%`). + */ + + function toBarPerc(n) { + return (-1 + n) * 100; + } + + + /** + * (Internal) returns the correct CSS for changing the bar's + * position given an n percentage, and speed and ease from Settings + */ + + function barPositionCSS(n, speed, ease) { + var barCSS; + + if (Settings.positionUsing === 'translate3d') { + barCSS = {transform: 'translate3d(' + toBarPerc(n) + '%,0,0)'}; + } else if (Settings.positionUsing === 'translate') { + barCSS = {transform: 'translate(' + toBarPerc(n) + '%,0)'}; + } else { + barCSS = {'margin-left': toBarPerc(n) + '%'}; + } + + barCSS.transition = 'all ' + speed + 'ms ' + ease; + + return barCSS; + } + + /** + * (Internal) Queues a function to be executed. + */ + + var queue = (function () { + var pending = []; + + function next() { + var fn = pending.shift(); + if (fn) { + fn(next); + } + } + + return function (fn) { + pending.push(fn); + if (pending.length == 1) next(); + }; + })(); + + /** + * (Internal) Applies css properties to an element, similar to the jQuery + * css method. + * + * While this helper does assist with vendor prefixed property names, it + * does not perform any manipulation of values prior to setting styles. + */ + + var css = (function () { + var cssPrefixes = ['Webkit', 'O', 'Moz', 'ms'], + cssProps = {}; + + function camelCase(string) { + return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function (match, letter) { + return letter.toUpperCase(); + }); + } + + function getVendorProp(name) { + var style = document.body.style; + if (name in style) return name; + + var i = cssPrefixes.length, + capName = name.charAt(0).toUpperCase() + name.slice(1), + vendorName; + while (i--) { + vendorName = cssPrefixes[i] + capName; + if (vendorName in style) return vendorName; + } + + return name; + } + + function getStyleProp(name) { + name = camelCase(name); + return cssProps[name] || (cssProps[name] = getVendorProp(name)); + } + + function applyCss(element, prop, value) { + prop = getStyleProp(prop); + element.style[prop] = value; + } + + return function (element, properties) { + var args = arguments, + prop, + value; + + if (args.length == 2) { + for (prop in properties) { + value = properties[prop]; + if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value); + } + } else { + applyCss(element, args[1], args[2]); + } + } + })(); + + /** + * (Internal) Determines if an element or space separated list of class names contains a class name. + */ + + function hasClass(element, name) { + var list = typeof element == 'string' ? element : classList(element); + return list.indexOf(' ' + name + ' ') >= 0; + } + + /** + * (Internal) Adds a class to an element. + */ + + function addClass(element, name) { + var oldList = classList(element), + newList = oldList + name; + + if (hasClass(oldList, name)) return; + + // Trim the opening space. + element.className = newList.substring(1); + } + + /** + * (Internal) Removes a class from an element. + */ + + function removeClass(element, name) { + var oldList = classList(element), + newList; + + if (!hasClass(element, name)) return; + + // Replace the class name. + newList = oldList.replace(' ' + name + ' ', ' '); + + // Trim the opening and closing spaces. + element.className = newList.substring(1, newList.length - 1); + } + + /** + * (Internal) Gets a space separated list of the class names on the element. + * The list is wrapped with a single space on each end to facilitate finding + * matches within the list. + */ + + function classList(element) { + return (' ' + (element && element.className || '') + ' ').replace(/\s+/gi, ' '); + } + + /** + * (Internal) Removes an element from the DOM. + */ + + function removeElement(element) { + element && element.parentNode && element.parentNode.removeChild(element); + } + + return NProgress; +}); diff --git a/src/main/resources/static/js/publicJs.js b/src/main/resources/static/js/publicJs.js index 188b4c3..039edb3 100644 --- a/src/main/resources/static/js/publicJs.js +++ b/src/main/resources/static/js/publicJs.js @@ -5,4 +5,74 @@ function getContextPath() { var index = pathName.substr(1).indexOf("/"); var result = pathName.substr(0, index + 1); return result; +} + + +/** + * 引入layui模块 + */ +layui.config({ + base: ctxPath + '/js/layuiModules/', // 第三方模块所在目录 + version: 'v1.6.4' // 插件版本号 +}).extend({ + soulTable: 'notice,layNotify,dtree', // 模块 +}); + +var layer; +var notice; +var form; +var util; +var nprogress; + +/** + * 初始化layui + */ +layui.use(['layer', 'notice', 'form', 'util', 'nprogress'], function () { + layer = layui.layer; + notice = layui.notice; + form = layui.form; + util = layui.util; + nprogress = layui.nprogress; + + /** + * 页面加载进度条 + */ + nprogress.start(); + if (document.readyState == "complete" || document.readyState == "interactive") { + // 进度条结束 + nprogress.done(); + } + + /** + * 回到顶部 + */ + util.fixbar({}); +}); + +/** + * 本层提示 + * @param tip '新增' | '修改' | '删除' | '重置' 等 + * @param message 提示信息 + * @param type 'success' | 'info' | 'warning' | 'error' + */ +function thisTip(tip,message,type){ + layNotify.notice({ + title: tip+"提示", + type: type, + message: message + }); +} + +/** + * 父层提示 + * @param tip '新增' | '修改' | '删除' | '重置' 等 + * @param message 提示信息 + * @param type 'success' | 'info' | 'warning' | 'error' + */ +function parentTip(tip,message,type){ + parent.layNotify.notice({ + title: tip+"提示", + type: type, + message: message + }); } \ No newline at end of file diff --git a/src/main/resources/static/layui/css/components/nprogress.css b/src/main/resources/static/layui/css/components/nprogress.css new file mode 100644 index 0000000..3f90ab8 --- /dev/null +++ b/src/main/resources/static/layui/css/components/nprogress.css @@ -0,0 +1,73 @@ +/* Make clicks pass-through */ +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: #1890ff; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* Fancy blur effect */ +#nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px #29d, 0 0 5px #29d; + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +#nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; +} + +#nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: #1890ff; + border-left-color: #1890ff; + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.nprogress-custom-parent #nprogress .spinner, +.nprogress-custom-parent #nprogress .bar { + position: absolute; +} + +@-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } +} +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} diff --git a/src/main/resources/static/pages/announcement/announcementList.html b/src/main/resources/static/pages/announcement/announcementList.html index f5e5f81..bbf7f32 100644 --- a/src/main/resources/static/pages/announcement/announcementList.html +++ b/src/main/resources/static/pages/announcement/announcementList.html @@ -77,12 +77,7 @@ soulTable: 'notice,layNotify', // 模块 }); - let form; var table; - var notice; - var layNotify; - var laydate; - var util; $("#resetBt").click(function(){ table.reload('menuTable', { url: ctxPath + '/announcement/getAnnouncementList' diff --git a/src/main/resources/static/pages/organizational/organizationalForm.html b/src/main/resources/static/pages/organizational/organizationalForm.html new file mode 100644 index 0000000..70cc6da --- /dev/null +++ b/src/main/resources/static/pages/organizational/organizationalForm.html @@ -0,0 +1,270 @@ + + + + + 系统公告表单 + + + + +
                              +
                              +
                              +
                              + +
                              +
                              + +
                              +
                              +
                              +
                              + +
                              +
                              + +
                              +
                              +
                              +
                              + +
                              +
                              +
                              + + +
                              +
                              +
                              +
                              +
                              + +
                              +
                              + +
                              +
                              +
                              + +
                              + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/pages/organizational/organizationalList.html b/src/main/resources/static/pages/organizational/organizationalList.html new file mode 100644 index 0000000..39fb82b --- /dev/null +++ b/src/main/resources/static/pages/organizational/organizationalList.html @@ -0,0 +1,227 @@ + + + + + 组织岗位列表 + + + + + + +
                              + +
                              +
                                +
                                +
                                + +
                                + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/pages/role/addNewRole.html b/src/main/resources/static/pages/role/addNewRole.html new file mode 100644 index 0000000..d985f19 --- /dev/null +++ b/src/main/resources/static/pages/role/addNewRole.html @@ -0,0 +1,33 @@ + + + + + 角色表单 + + + +
                                +
                                  +
                                • 角色信息
                                • +
                                • 操作权限
                                • +
                                • 数据权限
                                • +
                                • 成员列表
                                • +
                                • 操作记录
                                • +
                                +
                                +
                                内容-1
                                +
                                内容-2
                                +
                                内容-3
                                +
                                内容-4
                                +
                                内容-5
                                +
                                +
                                + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/pages/role/newRoleList.html b/src/main/resources/static/pages/role/newRoleList.html new file mode 100644 index 0000000..e0ddee5 --- /dev/null +++ b/src/main/resources/static/pages/role/newRoleList.html @@ -0,0 +1,189 @@ + + + + + Insert title here + + + + +
                                +
                                +
                                +
                                +
                                +
                                + +
                                + +
                                +
                                + + +
                                +
                                + +
                                +
                                +
                                +
                                +
                                +
                                + + + + + + + + + + + \ No newline at end of file