From 1600bfbddd0bffe75b4c48b89ac695689936472a Mon Sep 17 00:00:00 2001 From: Xia Kaixiang Date: Wed, 5 Jun 2019 16:42:01 +0800 Subject: [PATCH] =?utf8?q?=E6=B5=81=E6=B0=B4=E6=9F=A5=E8=AF=A2=E3=80=81?= =?utf8?q?=E5=AD=97=E5=85=B8=E3=80=81treeSelect?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dlpay/api/domain/TPersondtl.java | 2 +- .../supwisdom/dlpay/api/domain/TShopdtl.java | 112 ++-- .../dlpay/framework/dao/DictionaryDao.java | 13 + .../dlpay/framework/domain/TDictionary.java | 54 ++ .../dlpay/framework/domain/TDictionaryPK.java | 50 ++ .../dlpay/framework/util/TradeDict.java | 2 - .../dlpay/system/bean/ShopdtlSearchBean.java | 37 +- .../dlpay/system/bean/TreeSelectNode.java | 61 ++ .../dlpay/system/bean/UserdtlSearchBean.java | 37 +- .../dlpay/system/common/DictPool.java | 37 ++ .../system/controller/DictPoolAction.java | 30 + .../system/controller/DtlController.java | 44 +- .../system/service/DictionaryDataService.java | 12 + .../dlpay/system/service/DtlDataService.java | 14 + .../impl/DictionaryDataServiceImpl.java | 45 ++ .../service/impl/DtlDataServiceImpl.java | 75 ++- .../supwisdom/dlpay/util/ConstantUtil.java | 7 + .../service/impl/transaction_service_impl.kt | 6 +- .../kotlin/com/supwisdom/dlpay/security.kt | 6 +- .../resources/static/custom/module/admin.js | 23 + .../custom/module/treeSelect/treeSelect.js | 597 ++++++++++++++++++ src/main/resources/static/libs/custom.js | 95 +++ src/main/resources/templates/index.html | 12 +- .../templates/system/dtl/shopdtl.html | 264 +++++++- .../templates/system/dtl/userdtl.html | 253 ++++++-- 25 files changed, 1750 insertions(+), 138 deletions(-) create mode 100644 src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java create mode 100644 src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java create mode 100644 src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java create mode 100644 src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java create mode 100644 src/main/java/com/supwisdom/dlpay/system/common/DictPool.java create mode 100644 src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java create mode 100644 src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java create mode 100644 src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java create mode 100755 src/main/resources/static/custom/module/treeSelect/treeSelect.js create mode 100644 src/main/resources/static/libs/custom.js diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java index 3db4e5ac..d132e794 100644 --- a/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java +++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java @@ -20,7 +20,7 @@ public class TPersondtl { @Column(name = "USERID", length = 32, nullable = false) private String userid; //用户ID,或账号 - @Column(name = "acccno", length = 32) + @Column(name = "ACCNO", length = 32) private String accountNo; @Column(name = "USERNAME", length = 200) diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java b/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java index 681085dd..76f97a4e 100644 --- a/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java +++ b/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java @@ -9,46 +9,46 @@ import javax.persistence.*; @Index(name = "shopdtl_transdate", columnList = "transdate")}) public class TShopdtl { @Id - @Column(name = "refno", length = 32, nullable = false) + @Column(name = "REFNO", length = 32, nullable = false) private String refno; - @Column(name = "accdate", length = 8, nullable = false) + @Column(name = "ACCDATE", length = 8, nullable = false) private String accdate; - @Column(name = "shopaccno", length = 10, nullable = false) + @Column(name = "SHOPACCNO", length = 10, nullable = false) private String shopaccno; - @Column(name = "shopname", length = 200) + @Column(name = "SHOPNAME", length = 200) private String shopname; - @Column(name = "amount", scale = 2, precision = 15, nullable = false) + @Column(name = "AMOUNT", scale = 2, precision = 15, nullable = false) private Double amount; - @Column(name = "transdate", length = 8, nullable = false) - private String transDate; + @Column(name = "TRANSDATE", length = 8, nullable = false) + private String transdate; - @Column(name = "transtime", length = 6, nullable = false) - private String transTime; + @Column(name = "TRANSTIME", length = 6, nullable = false) + private String transtime; - @Column(name = "tradecode", precision = 8) - private Integer tradeCode; + @Column(name = "TRANSCODE", precision = 8) + private Integer transcode; - @Column(name = "sourcetype", length = 20) + @Column(name = "SOURCETYPE", length = 20) private String sourceType; - @Column(name = "payinfo", length = 200) + @Column(name = "PAYINFO", length = 200) private String payInfo; - @Column(name = "tradeflag", length = 6, nullable = false) + @Column(name = "TRADEFLAG", length = 6, nullable = false) private String tradeflag; // out - 支出 , in - 收入 @Column(name = "TRANSDESC", length = 240) private String transdesc; //交易描述 - @Column(name = "reverseflag", length = 10) + @Column(name = "REVERSEFLAG", length = 10) private String reverseFlag; - @Column(name = "status", length = 20) + @Column(name = "STATUS", length = 20) private String status; @Column(name = "OPPOSITEACCNO", length = 64) @@ -100,20 +100,28 @@ public class TShopdtl { this.amount = amount; } - public String getTransDate() { - return transDate; + public String getTransdate() { + return transdate; } - public void setTransDate(String transDate) { - this.transDate = transDate; + public void setTransdate(String transdate) { + this.transdate = transdate; } - public String getTransTime() { - return transTime; + public String getTranstime() { + return transtime; } - public void setTransTime(String transTime) { - this.transTime = transTime; + public void setTranstime(String transtime) { + this.transtime = transtime; + } + + public Integer getTranscode() { + return transcode; + } + + public void setTranscode(Integer transcode) { + this.transcode = transcode; } public String getSourceType() { @@ -132,52 +140,52 @@ public class TShopdtl { this.payInfo = payInfo; } - public String getStatus() { - return status; + public String getTradeflag() { + return tradeflag; } - public void setStatus(String status) { - this.status = status; + public void setTradeflag(String tradeflag) { + this.tradeflag = tradeflag; } - public String getOppositeAccNo() { - return oppositeAccNo; + public String getTransdesc() { + return transdesc; } - public void setOppositeAccNo(String oppositeAccNo) { - this.oppositeAccNo = oppositeAccNo; + public void setTransdesc(String transdesc) { + this.transdesc = transdesc; } - public String getOppositeAccName() { - return oppositeAccName; + public String getReverseFlag() { + return reverseFlag; } - public void setOppositeAccName(String oppositeAccName) { - this.oppositeAccName = oppositeAccName; + public void setReverseFlag(String reverseFlag) { + this.reverseFlag = reverseFlag; } - public Integer getTradeCode() { - return tradeCode; + public String getStatus() { + return status; } - public void setTradeCode(Integer tradeCode) { - this.tradeCode = tradeCode; + public void setStatus(String status) { + this.status = status; } - public String getTradeflag() { - return tradeflag; + public String getOppositeAccNo() { + return oppositeAccNo; } - public void setTradeflag(String tradeflag) { - this.tradeflag = tradeflag; + public void setOppositeAccNo(String oppositeAccNo) { + this.oppositeAccNo = oppositeAccNo; } - public String getTransdesc() { - return transdesc; + public String getOppositeAccName() { + return oppositeAccName; } - public void setTransdesc(String transdesc) { - this.transdesc = transdesc; + public void setOppositeAccName(String oppositeAccName) { + this.oppositeAccName = oppositeAccName; } public String getRemark() { @@ -187,12 +195,4 @@ public class TShopdtl { public void setRemark(String remark) { this.remark = remark; } - - public String getReverseFlag() { - return reverseFlag; - } - - public void setReverseFlag(String reverseFlag) { - this.reverseFlag = reverseFlag; - } } diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java new file mode 100644 index 00000000..05e15ea6 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java @@ -0,0 +1,13 @@ +package com.supwisdom.dlpay.framework.dao; + +import com.supwisdom.dlpay.framework.domain.TDictionary; +import com.supwisdom.dlpay.framework.domain.TDictionaryPK; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface DictionaryDao extends JpaRepository { + List findAllByDicttype(int dicttype); +} diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java new file mode 100644 index 00000000..461ef29b --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java @@ -0,0 +1,54 @@ +package com.supwisdom.dlpay.framework.domain; + +import javax.persistence.*; + +@Entity +@Table(name = "TB_DICTIONARY") +@IdClass(TDictionaryPK.class) +public class TDictionary { + @Id + @Column(name = "DICTTYPE", nullable = false, precision = 9) + private Integer dicttype; + + @Id + @Column(name = "DICTVAL", nullable = false, length = 30) + private String dictval; + + @Column(name = "DICTTYPENAME", length = 60) + private String dicttypename; + + @Column(name = "DICTCAPTION", length = 60) + private String dictcaption; + + public Integer getDicttype() { + return dicttype; + } + + public void setDicttype(Integer dicttype) { + this.dicttype = dicttype; + } + + public String getDictval() { + return dictval; + } + + public void setDictval(String dictval) { + this.dictval = dictval; + } + + public String getDicttypename() { + return dicttypename; + } + + public void setDicttypename(String dicttypename) { + this.dicttypename = dicttypename; + } + + public String getDictcaption() { + return dictcaption; + } + + public void setDictcaption(String dictcaption) { + this.dictcaption = dictcaption; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java new file mode 100644 index 00000000..04874e2d --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java @@ -0,0 +1,50 @@ +package com.supwisdom.dlpay.framework.domain; + +import javax.persistence.Column; +import javax.persistence.Id; +import java.io.Serializable; + +public class TDictionaryPK implements Serializable { + @Id + @Column(name = "DICTTYPE", nullable = false, precision = 9) + private Integer dicttype; + + @Id + @Column(name = "DICTVAL", nullable = false, length = 30) + private String dictval; + + public Integer getDicttype() { + return dicttype; + } + + public void setDicttype(Integer dicttype) { + this.dicttype = dicttype; + } + + public String getDictval() { + return dictval; + } + + public void setDictval(String dictval) { + this.dictval = dictval; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TDictionaryPK tDictionaryPK = (TDictionaryPK) o; + if (dicttype != null ? !dicttype.equals(tDictionaryPK.getDicttype()) : dicttype != null) + return false; + if (dictval != null ? !dictval.equals(tDictionaryPK.getDictval()) : dictval != null) + return false; + return true; + } + + @Override + public int hashCode() { + int result = dicttype != null ? dicttype.hashCode() : 0; + result = 31 * result + (dictval != null ? dictval.hashCode() : 0); + return result; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java b/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java index d551c985..29286427 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java +++ b/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java @@ -1,7 +1,5 @@ package com.supwisdom.dlpay.framework.util; -import org.jetbrains.annotations.Nullable; - public class TradeDict { /** * 状态: diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java index 5ff79885..f32d3496 100644 --- a/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java +++ b/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java @@ -1,16 +1,35 @@ package com.supwisdom.dlpay.system.bean; public class ShopdtlSearchBean { + private Integer page; + private Integer limit; private String startAccdate; private String endAccdate; private String startTransdate; private String endTransdate; private String shopname; - private String paytype; + private String shopaccno; + private String sourcetype; private String tradeflag; private String transcode; private String status; + public Integer getPage() { + return page; + } + + public void setPage(Integer page) { + this.page = page; + } + + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } + public String getStartAccdate() { return startAccdate; } @@ -51,12 +70,20 @@ public class ShopdtlSearchBean { this.shopname = shopname; } - public String getPaytype() { - return paytype; + public String getShopaccno() { + return shopaccno; + } + + public void setShopaccno(String shopaccno) { + this.shopaccno = shopaccno; + } + + public String getSourcetype() { + return sourcetype; } - public void setPaytype(String paytype) { - this.paytype = paytype; + public void setSourcetype(String sourcetype) { + this.sourcetype = sourcetype; } public String getTradeflag() { diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java b/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java new file mode 100644 index 00000000..47ceff29 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java @@ -0,0 +1,61 @@ +package com.supwisdom.dlpay.system.bean; + +import java.util.List; + +public class TreeSelectNode { + private String id; + private String name; + private boolean open; + private boolean checked; + private List children; + + private String accno; //扩展:商户账号 + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isOpen() { + return open; + } + + public void setOpen(boolean open) { + this.open = open; + } + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public String getAccno() { + return accno; + } + + public void setAccno(String accno) { + this.accno = accno; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java index 4bcc45ad..91b0cba5 100644 --- a/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java +++ b/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java @@ -1,16 +1,35 @@ package com.supwisdom.dlpay.system.bean; public class UserdtlSearchBean { + private Integer page; + private Integer limit; private String startAccdate; private String endAccdate; private String startTransdate; private String endTransdate; private String personname; - private String paytype; + private String cardno; + private String sourcetype; private String tradeflag; private String transcode; private String status; + public Integer getPage() { + return page; + } + + public void setPage(Integer page) { + this.page = page; + } + + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } + public String getStartAccdate() { return startAccdate; } @@ -51,12 +70,20 @@ public class UserdtlSearchBean { this.personname = personname; } - public String getPaytype() { - return paytype; + public String getCardno() { + return cardno; + } + + public void setCardno(String cardno) { + this.cardno = cardno; + } + + public String getSourcetype() { + return sourcetype; } - public void setPaytype(String paytype) { - this.paytype = paytype; + public void setSourcetype(String sourcetype) { + this.sourcetype = sourcetype; } public String getTradeflag() { diff --git a/src/main/java/com/supwisdom/dlpay/system/common/DictPool.java b/src/main/java/com/supwisdom/dlpay/system/common/DictPool.java new file mode 100644 index 00000000..56128cc2 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/common/DictPool.java @@ -0,0 +1,37 @@ +package com.supwisdom.dlpay.system.common; + +import com.supwisdom.dlpay.system.service.DictionaryDataService; +import com.supwisdom.dlpay.util.ConstantUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component("dictPool") +@Scope("singleton") +public class DictPool { + private static HashMap dictmap = new HashMap<>(); + + @Autowired + private DictionaryDataService dictionaryDataService; + + public static HashMap getDictMap(String key) { + synchronized (dictmap) { + return (HashMap) dictmap.get(key); + } + } + + public static void updateDict(String dictType, Map value) { + synchronized (dictmap) { + dictmap.put(dictType, value); + } + } + + public void init() { + dictmap.put("allSourcetypeList", dictionaryDataService.getSystemAllSourcetype()); + dictmap.put("allReverseflagList", dictionaryDataService.getDictionaryByDicttype(ConstantUtil.DICTTYPE_NO1)); + + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java b/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java new file mode 100644 index 00000000..085a27d9 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java @@ -0,0 +1,30 @@ +package com.supwisdom.dlpay.system.controller; + +import com.supwisdom.dlpay.api.bean.JsonResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import com.supwisdom.dlpay.system.common.DictPool; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.FormParam; +import java.util.Map; + +@RestController +public class DictPoolAction { + @Autowired + private DictPool dictPool; + + @GetMapping("/dictpool") + public Map getDictDataByDicttype(@FormParam("dicttype") String dictType, HttpServletRequest request) { + dictType = request.getParameter("dicttype"); + Map res = DictPool.getDictMap(dictType); + return res; + } + + @GetMapping("/dictrefresh") + public JsonResult refreshDict() { + dictPool.init(); + return JsonResult.ok(); + } + +} diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java b/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java index de2d1b01..1bd3bd81 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java @@ -5,17 +5,22 @@ import com.supwisdom.dlpay.api.domain.TShopdtl; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.WebConstant; import com.supwisdom.dlpay.system.bean.ShopdtlSearchBean; +import com.supwisdom.dlpay.system.bean.TreeSelectNode; import com.supwisdom.dlpay.system.bean.UserdtlSearchBean; import com.supwisdom.dlpay.system.service.DtlDataService; +import com.supwisdom.dlpay.system.service.ShopDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @Controller public class DtlController { + @Autowired + private ShopDataService shopDataService; @Autowired private DtlDataService dtlDataService; @@ -25,21 +30,22 @@ public class DtlController { * ==================================================== */ @GetMapping("/dtl/userdtl") - public String userdtlView() { + public String userdtlView(Model model) { + model.addAttribute("paytypelist", shopDataService.getConsumePaytypes()); + model.addAttribute("transcodelist", dtlDataService.getAllTranscodes()); + model.addAttribute("dtlstatuslist", dtlDataService.getAllDtlStatus()); return "system/dtl/userdtl"; } @GetMapping("/dtl/userdtllist") @PreAuthorize("hasPermission('/dtl/userdtl','')") @ResponseBody - public PageResult searchUserdtlPage(@RequestParam("page") Integer pageNo, - @RequestParam("limit") Integer pageSize, - @RequestParam(value = "paraid", required = false) Integer paraid, - @RequestParam(value = "paraname", required = false) String paraname) { + public PageResult searchUserdtlPage(@ModelAttribute UserdtlSearchBean searchBean) { try { + Integer pageNo = searchBean.getPage(); + Integer pageSize = searchBean.getLimit(); if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; - UserdtlSearchBean searchBean = new UserdtlSearchBean(); return dtlDataService.getPersondtlPage(searchBean, pageNo, pageSize); } catch (Exception e) { e.printStackTrace(); @@ -53,20 +59,22 @@ public class DtlController { * ==================================================== */ @GetMapping("/dtl/shopdtl") - public String shopdtlView() { + public String shopdtlView(Model model) { + model.addAttribute("paytypelist", shopDataService.getConsumePaytypes()); + model.addAttribute("transcodelist", dtlDataService.getAllTranscodes()); + model.addAttribute("dtlstatuslist", dtlDataService.getAllDtlStatus()); return "system/dtl/shopdtl"; } @GetMapping("/dtl/shopdtllist") @PreAuthorize("hasPermission('/dtl/shopdtl','')") @ResponseBody - public PageResult searchUserdtlPage(@RequestParam("page") Integer pageNo, - @RequestParam("limit") Integer pageSize, - @RequestParam(value = "paraid", required = false) Integer paraid) { + public PageResult searchUserdtlPage(@ModelAttribute ShopdtlSearchBean searchBean) { try { + Integer pageNo = searchBean.getPage(); + Integer pageSize = searchBean.getLimit(); if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; - ShopdtlSearchBean searchBean = new ShopdtlSearchBean(); return dtlDataService.getShopdtlPage(searchBean, pageNo, pageSize); } catch (Exception e) { e.printStackTrace(); @@ -74,4 +82,12 @@ public class DtlController { } } + @GetMapping("/dtl/shoptreeselect") + @PreAuthorize("hasPermission('/dtl/shopdtl','')") + @ResponseBody + public List searchShopTree() { + List tree = dtlDataService.getTreeSelectShops(); + return tree; + } + } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java b/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java new file mode 100644 index 00000000..a378a8cc --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java @@ -0,0 +1,12 @@ +package com.supwisdom.dlpay.system.service; + +import java.util.HashMap; + +public interface DictionaryDataService { + HashMap getSystemAllSourcetype(); + + HashMap getDictionaryByDicttype(int dicttype); + + + +} diff --git a/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java b/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java index 4389e1c1..fa0affe9 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java @@ -2,16 +2,30 @@ package com.supwisdom.dlpay.system.service; import com.supwisdom.dlpay.api.domain.TPersondtl; import com.supwisdom.dlpay.api.domain.TShopdtl; +import com.supwisdom.dlpay.framework.domain.TDictionary; +import com.supwisdom.dlpay.framework.domain.TTranscode; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.system.bean.ShopdtlSearchBean; +import com.supwisdom.dlpay.system.bean.TreeSelectNode; import com.supwisdom.dlpay.system.bean.UserdtlSearchBean; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + public interface DtlDataService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) PageResult getPersondtlPage(UserdtlSearchBean searchBean, int pageNo, int pageSize); @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) PageResult getShopdtlPage(ShopdtlSearchBean searchBean, int pageNo, int pageSize); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + List getAllTranscodes(); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + List getAllDtlStatus(); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + List getTreeSelectShops(); } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java new file mode 100644 index 00000000..85e9438c --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java @@ -0,0 +1,45 @@ +package com.supwisdom.dlpay.system.service.impl; + +import com.supwisdom.dlpay.api.dao.SourceTypeDao; +import com.supwisdom.dlpay.api.domain.TSourceType; +import com.supwisdom.dlpay.framework.dao.DictionaryDao; +import com.supwisdom.dlpay.framework.domain.TDictionary; +import com.supwisdom.dlpay.framework.util.StringUtil; +import com.supwisdom.dlpay.system.service.DictionaryDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; + +@Service +public class DictionaryDataServiceImpl implements DictionaryDataService { + @Autowired + private SourceTypeDao sourceTypeDao; + @Autowired + private DictionaryDao dictionaryDao; + + @Override + public HashMap getSystemAllSourcetype() { + HashMap result = new HashMap<>(0); + List list = sourceTypeDao.findAll(); + if (!StringUtil.isEmpty(list)) { + for (TSourceType tst : list) { + result.put(tst.getSourceType(), tst.getPaydesc()); + } + } + return result; + } + + @Override + public HashMap getDictionaryByDicttype(int dicttype) { + HashMap result = new HashMap<>(0); + List list = dictionaryDao.findAllByDicttype(dicttype); + if (!StringUtil.isEmpty(list)) { + for (TDictionary dict : list) { + result.put(dict.getDictval() == null ? "" : dict.getDictval(), dict.getDictcaption()); + } + } + return result; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java index 6f7b1ba4..869bf31d 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java @@ -4,12 +4,20 @@ import com.supwisdom.dlpay.api.dao.PersondtlDao; import com.supwisdom.dlpay.api.dao.ShopdtlDao; import com.supwisdom.dlpay.api.domain.TPersondtl; import com.supwisdom.dlpay.api.domain.TShopdtl; +import com.supwisdom.dlpay.framework.dao.DictionaryDao; +import com.supwisdom.dlpay.framework.dao.ShopDao; +import com.supwisdom.dlpay.framework.dao.TranscodeDao; +import com.supwisdom.dlpay.framework.domain.TDictionary; +import com.supwisdom.dlpay.framework.domain.TShop; +import com.supwisdom.dlpay.framework.domain.TTranscode; import com.supwisdom.dlpay.framework.util.DateUtil; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.StringUtil; import com.supwisdom.dlpay.system.bean.ShopdtlSearchBean; +import com.supwisdom.dlpay.system.bean.TreeSelectNode; import com.supwisdom.dlpay.system.bean.UserdtlSearchBean; import com.supwisdom.dlpay.system.service.DtlDataService; +import com.supwisdom.dlpay.util.ConstantUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -31,6 +39,12 @@ public class DtlDataServiceImpl implements DtlDataService { private PersondtlDao persondtlDao; @Autowired private ShopdtlDao shopdtlDao; + @Autowired + private TranscodeDao transcodeDao; + @Autowired + private DictionaryDao dictionaryDao; + @Autowired + private ShopDao shopDao; @Override public PageResult getPersondtlPage(UserdtlSearchBean searchBean, int pageNo, int pageSize) { @@ -53,10 +67,10 @@ public class DtlDataServiceImpl implements DtlDataService { predicates.add(criteriaBuilder.le(root.get("transdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getEndTransdate())))); } if(!StringUtil.isEmpty(searchBean.getPersonname())){ - predicates.add(criteriaBuilder.like(root.get("username").as(String.class), "%" + searchBean.getPersonname().trim() + "%")); + predicates.add(criteriaBuilder.like(root.get("userName").as(String.class), "%" + searchBean.getPersonname().trim() + "%")); } - if(!StringUtil.isEmpty(searchBean.getPaytype())){ - predicates.add(criteriaBuilder.equal(root.get("paytype").as(String.class), searchBean.getPaytype().trim())); + if(!StringUtil.isEmpty(searchBean.getSourcetype())){ + predicates.add(criteriaBuilder.equal(root.get("sourceType").as(String.class), searchBean.getSourcetype().trim())); } if(!StringUtil.isEmpty(searchBean.getTradeflag())){ predicates.add(criteriaBuilder.equal(root.get("tradeflag").as(String.class), searchBean.getTradeflag().trim())); @@ -96,8 +110,11 @@ public class DtlDataServiceImpl implements DtlDataService { if(!StringUtil.isEmpty(searchBean.getShopname())){ predicates.add(criteriaBuilder.like(root.get("shopname").as(String.class), "%" + searchBean.getShopname().trim() + "%")); } - if(!StringUtil.isEmpty(searchBean.getPaytype())){ - predicates.add(criteriaBuilder.equal(root.get("paytype").as(String.class), searchBean.getPaytype().trim())); + if(!StringUtil.isEmpty(searchBean.getShopaccno())){ + predicates.add(criteriaBuilder.equal(root.get("shopaccno").as(String.class), searchBean.getShopaccno().trim())); + } + if(!StringUtil.isEmpty(searchBean.getSourcetype())){ + predicates.add(criteriaBuilder.equal(root.get("sourceType").as(String.class), searchBean.getSourcetype().trim())); } if(!StringUtil.isEmpty(searchBean.getTradeflag())){ predicates.add(criteriaBuilder.equal(root.get("tradeflag").as(String.class), searchBean.getTradeflag().trim())); @@ -113,4 +130,52 @@ public class DtlDataServiceImpl implements DtlDataService { }, pageable); return new PageResult<>(page); } + + @Override + public List getAllTranscodes(){ + return transcodeDao.findAll(); + } + + @Override + public List getAllDtlStatus(){ + List list = dictionaryDao.findAllByDicttype(ConstantUtil.DICTTYPE_NO2); + if(!StringUtil.isEmpty(list)){ + return list; + } + return new ArrayList<>(0); + } + + @Override + public List getTreeSelectShops() { + List shoplist = shopDao.getNormalShops(); + if (StringUtil.isEmpty(shoplist)) { + return new ArrayList<>(0); + } + return getShopSelectTree(shoplist, 0); + } + + private List getShopSelectTree(List shoplist, Integer fshopid) { + List result = new ArrayList<>(0); + for (TShop shop : shoplist) { + if (fshopid.equals(shop.getFshopid())) { + TreeSelectNode node = new TreeSelectNode(); + node.setId(String.valueOf(shop.getShopid())); + if(!StringUtil.isEmpty(shop.getShopaccno())){ + node.setId(shop.getShopaccno()); //替换商户账号 + } + node.setName(shop.getShopname()); + node.setOpen(StringUtil.isEmpty(shop.getShopaccno())); + node.setChecked(false); + node.setAccno(shop.getShopaccno()); + List children = getShopSelectTree(shoplist, shop.getShopid()); + if(null!=children && children.size()>0){ + node.setChildren(children); + }else{ + node.setChildren(null); + } + result.add(node); + } + } + return result; + } } diff --git a/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java b/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java index d791ab07..a5255475 100644 --- a/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java +++ b/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java @@ -26,4 +26,11 @@ public class ConstantUtil { public static final String FEETYPE_MEALER = "mealer"; public static final String FEETYPE_DISCOUNT = "discount"; public static final String[] FEETYPE_DICTS = {"none", "mealer", "discount"}; //联动 + + + /** + * TDictionary的dicttype + * */ + public static final int DICTTYPE_NO1 = 1; //冲正状态字典 + public static final int DICTTYPE_NO2 = 2; //流水状态字典 } diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt index 48b71059..d7e8895a 100644 --- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt +++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt @@ -111,9 +111,9 @@ class TransactionServiceImpl : TransactionService { this.amount = builder.shop().amount this.payInfo = builder.shop().payinfo this.sourceType = builder.sourceType - this.transDate = builder.transDate - this.transTime = builder.transTime - this.tradeCode = builder.transCode + this.transdate = builder.transDate + this.transtime = builder.transTime + this.transcode = builder.transCode this.sourceType = builder.sourceType amount = if (builder.shop().tradeFlag == TradeDict.TRADE_FLAG_IN) { builder.shop().amount diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/src/main/kotlin/com/supwisdom/dlpay/security.kt index e0c58333..30c0edde 100644 --- a/src/main/kotlin/com/supwisdom/dlpay/security.kt +++ b/src/main/kotlin/com/supwisdom/dlpay/security.kt @@ -8,6 +8,7 @@ import com.supwisdom.dlpay.framework.security.MyPermissionEvaluator import com.supwisdom.dlpay.framework.security.ValidateCodeSecurityConfig import com.supwisdom.dlpay.framework.service.OperatorDetailService import com.supwisdom.dlpay.framework.util.TradeDict +import com.supwisdom.dlpay.system.common.DictPool import org.jose4j.jwt.consumer.InvalidJwtException import org.jose4j.lang.JoseException import org.springframework.beans.factory.annotation.Autowired @@ -151,7 +152,8 @@ class WebSecurityConfig { lateinit var authenticationSuccessHandler: AuthenticationSuccessHandler @Autowired lateinit var passwordBCryptConfig: PasswordBCryptConfig - + @Autowired + lateinit var dictPool: DictPool @Autowired lateinit var userDetailsService: OperatorDetailService @@ -186,6 +188,8 @@ class WebSecurityConfig { } override fun configure(http: HttpSecurity) { + dictPool.init() //初始化字典 + // 设置 Web MVC 应用权限 http.apply(validateCodeSecurityConfig) .and() diff --git a/src/main/resources/static/custom/module/admin.js b/src/main/resources/static/custom/module/admin.js index e9b34ef3..e6ad642d 100755 --- a/src/main/resources/static/custom/module/admin.js +++ b/src/main/resources/static/custom/module/admin.js @@ -304,6 +304,29 @@ layui.define(['layer'], function (exports) { // 关闭所有弹窗 closeDialog: function () { layer.closeAll('page'); + }, + //刷新字典 + refreshDict: function (){ + layer.confirm('确定要刷新数据字典吗?', { + btn: ['确定', '取消'] + }, function (index, layero) { + layer.closeAll('dialog'); //加入这个信息点击确定 会关闭这个消息框 + admin.dgo("/dictrefresh", {}, function (data) { + if (data.code == 200) { + layer.msg("刷新数据字典成功!", {icon: 1, time: 1000}); + DictPoolToolkit().initAll("/dictpool"); + } else if (data.code == 401) { + layer.msg(data.msg, {icon: 2, time: 1500}, function () { + location.replace('/login'); + }, 1000); + return; + } else { + layer.msg(data.msg, {icon: 2, time: 1500}); + } + }, function () { + layer.msg("数据字典刷新失败,访问服务器失败!", {icon: 2, time: 1500}); + }); + }); } }; diff --git a/src/main/resources/static/custom/module/treeSelect/treeSelect.js b/src/main/resources/static/custom/module/treeSelect/treeSelect.js new file mode 100755 index 00000000..5e20c180 --- /dev/null +++ b/src/main/resources/static/custom/module/treeSelect/treeSelect.js @@ -0,0 +1,597 @@ + +layui.define(['form', 'jquery'], function (exports) { //提示:模块也可以依赖其它模块,如:layui.define('layer', callback); + var jQuery = layui.jquery, + $ = jQuery, + form = layui.form, + _MOD = 'treeSelect', + trss = {}, + TreeSelect = function () { + this.v = '1.0.5'; + }; + + + +/* + * JQuery zTree core v3.5.37 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2018-08-21 + */ +(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post", +dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED, +function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove, +[b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m= +e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)&&!(b===!1||typeof b=="string"&&h.eqs(b,"false"))?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode= +function(){return e.getNextNode(a,c)};c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+ +g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id,i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c, +f)?h.eqs(a.type,"click")||h.eqs(a.type,"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection= +!0;b.createdNodes=[];b.zId=0;b._ver=(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)}, +addInitProxy:function(a,b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a); +e.isSelectedNode(a,b)||c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d-1&& +f.push(k);k=e.nodeChildren(a,k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m +0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&&a.nodeType===1&&typeof a.nodeName==="string"},$:function(a, +b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a, +e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s0&&(l=j.appendNodes(a,b+1,I,p,-1,i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k, +a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&&f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1, +f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam);for(f=0,i=k.length;b&&f1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers,xhrFields:a.async.xhrFields,success:function(i){if(s== +e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR,[a.treeId,b,c,d,i])}}}); +return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom,[a.treeId,c]);a.callback.onNodeCreated&& +a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a),n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])}, +expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c=l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON, +a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])):c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f, +[])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(//g,">");a.push("", +d,"")},makeDOMNodeLine:function(a,b,c){a.push("")},makeDOMNodeMainAfter:function(a){a.push("")},makeDOMNodeMainBefore:function(a,b,c){a.push("
  • ")},makeDOMNodeNameAfter:function(a){a.push("")},makeDOMNodeNameBefore:function(a,b,c){var d=e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b, +c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(//g,">"),"'");a.push(">")},makeNodeFontCss:function(a,b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss); +return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(",d,") 0 0 no-repeat;");(a.view.showIcon== +!1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")},makeNodeLineClassEx:function(a){return g.className.BUTTON+ +" "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("
      ");c.push(d);c.push("
    ")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode?g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c= +e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;dc.bottom||d.right>c.right||d.left0)c[0].isFirstNode=!0},setLastNode:function(a,b){var c=e.nodeChildren(a, +b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q,h,g.line.BOTTOM)):j.replaceSwitchClass(q, +h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]= +c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH,a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length== +0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle,[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)}, +setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button",LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"}, +event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open",CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h, +view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)?c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d, +c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d,a)},destroy:function(){j.destroy(d)}, +expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(),b,!1);if(b===a.open&&!c)return null; +e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a,b,c){return!a?null: +e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery); + +/* + * JQuery zTree excheck v3.5.37 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2018-08-21 + */ +(function(n){var q,r,s,p={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},w={check:{enable:!1,autoCheckTrigger:!1,chkStyle:p.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:p.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};q=function(c, +a){if(a.chkDisabled===!0)return!1;var b=e.getSetting(c.data.treeId);if(i.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;var d=e.nodeChecked(b,a);e.nodeChecked(b,a,!d);f.checkNodeRelation(b,a);d=m(a,h.id.CHECK,b);f.setChkClass(b,d,a);f.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(h.event.CHECK,[c,b.treeId,a]);return!0};r=function(c,a){if(a.chkDisabled===!0)return!1;var b=e.getSetting(c.data.treeId),d=m(a,h.id.CHECK,b);a.check_Focus=!0;f.setChkClass(b,d,a);return!0};s=function(c, +a){if(a.chkDisabled===!0)return!1;var b=e.getSetting(c.data.treeId),d=m(a,h.id.CHECK,b);a.check_Focus=!1;f.setChkClass(b,d,a);return!0};n.extend(!0,n.fn.zTree.consts,p);n.extend(!0,n.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,j;d=h.radio;b=e.nodeChecked(c,a);if(c.check.chkStyle==d.STYLE){var g=e.getRadioCheckedList(c);if(b)if(c.check.radioType==d.TYPE_ALL){for(d=g.length-1;d>=0;d--){b=g[d];var k=e.nodeChecked(c,b);k&&b!=a&&(e.nodeChecked(c,b,!1),g.splice(d,1),f.setChkClass(c, +m(b,h.id.CHECK,c),b),b.parentTId!=a.parentTId&&f.repairParentChkClassWithSelf(c,b))}g.push(a)}else{g=a.parentTId?a.getParentNode():e.getRoot(c);g=e.nodeChildren(c,g);for(d=0,j=g.length;d-1)&&f.setSonNodeCheckBox(c,a, +!0),!b&&(!g||g.length==0||c.check.chkboxType.N.indexOf("s")>-1)&&f.setSonNodeCheckBox(c,a,!1),b&&c.check.chkboxType.Y.indexOf("p")>-1&&f.setParentNodeCheckBox(c,a,!0),!b&&c.check.chkboxType.N.indexOf("p")>-1&&f.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=h.checkbox,d=h.radio,j="",g=e.nodeChecked(c,a),j=a.chkDisabled===!0?b.DISABLED:a.halfCheck?b.PART:c.check.chkStyle==d.STYLE?a.check_Child_State<1?b.FULL:b.PART:g?a.check_Child_State===2||a.check_Child_State===-1?b.FULL:b.PART: +a.check_Child_State<1?b.FULL:b.PART,d=c.check.chkStyle+"_"+(g?b.TRUE:b.FALSE)+"_"+j,d=a.check_Focus&&a.chkDisabled!==!0?d+"_"+b.FOCUS:d;return h.className.BUTTON+" "+b.DEFAULT+" "+d},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===h.checkbox.STYLE)for(var b=e.getRoot(c),b=e.nodeChildren(c,b),d=0,j=b.length;d0?f.repairParentChkClass(c,b[0]):f.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b)a.chkDisabled=b;f.repairChkClass(c,a);if((a=e.nodeChildren(c,a))&&d)for(var j=0,g=a.length;j0){j=!1;break}}j&&f.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var j=m(a,h.id.CHECK,c);d||(d=a);var g=!1,k=e.nodeChildren(c,a);if(k)for(var o=0,l=k.length;o0?b?2:0:-1}else a.check_Child_State=-1;f.setChkClass(c,j,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(h.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=e.getRoot(c).radioCheckedList,b=0,d=a.length;b-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var j=b&&c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL,d=!d?[]:d,g=0,f=a.length;g0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var b=!b?[]:b,d=0,j=a.length;d0?2:0,l==2){b=2;break}else l==0&&(b=0);else if(c.check.chkStyle==h.checkbox.STYLE)if(l=f.nocheck===!0||f.chkDisabled===!0?f.check_Child_State:f.halfCheck===!0?1:i?f.check_Child_State===-1||f.check_Child_State===2?2:1:f.check_Child_State>0?1:0,l===1){b=1;break}else if(l===2&&b>-1&&j>0&&l!== +b){b=1;break}else if(b===2&&l>-1&&l<2){b=1;break}else l>-1&&(b=l)}a.check_Child_State=b}}}});var n=n.fn.zTree,i=n._z.tools,h=n.consts,f=n._z.view,e=n._z.data,m=i.$;e.nodeChecked=function(c,a,b){if(!a)return!1;c=c.data.key.checked;typeof b!=="undefined"&&(typeof b==="string"&&(b=i.eqs(b,"true")),a[c]=!!b);return a[c]};e.exSetting(w);e.addInitBind(function(c){c.treeObj.bind(h.event.CHECK,function(a,b,d,e){a.srcEvent=b;i.apply(c.callback.onCheck,[a,d,e])})});e.addInitUnBind(function(c){c.treeObj.unbind(h.event.CHECK)}); +e.addInitCache(function(){});e.addInitNode(function(c,a,b,d){if(b){a=e.nodeChecked(c,b);a=e.nodeChecked(c,b,a);b.checkedOld=a;if(typeof b.nocheck=="string")b.nocheck=i.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=i.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=i.eqs(b.halfCheck,"true");b.halfCheck=!!b.halfCheck; +b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return e.getCheckStatus(c,b)};c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL&&a&&e.getRoot(c).radioCheckedList.push(b)}});e.addInitProxy(function(c){var a=c.target,b=e.getSetting(c.data.treeId),d="",f=null,g="",k=null;if(i.eqs(c.type,"mouseover")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoverCheck"}else if(i.eqs(c.type,"mouseout")){if(b.check.enable&& +i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoutCheck"}else if(i.eqs(c.type,"click")&&b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="checkNode";if(d.length>0)switch(f=e.getNodeCache(b,d),g){case "checkNode":k=q;break;case "mouseoverCheck":k=r;break;case "mouseoutCheck":k=s}return{stop:g==="checkNode",node:f,nodeEventType:g,nodeEventCallback:k,treeEventType:"",treeEventCallback:null}}, +!0);e.addInitRoot(function(c){e.getRoot(c).radioCheckedList=[]});e.addBeforeA(function(c,a,b){c.check.enable&&(e.makeChkFlag(c,a),b.push(""))});e.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,k){var o=e.nodeChecked(c,a);if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!o),k=!!k,(o!==b||g)&&!(k&&i.apply(this.setting.callback.beforeCheck,[this.setting.treeId,a], +!0)==!1)&&i.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))e.nodeChecked(c,a,b),b=m(a,h.id.CHECK,this.setting),(g||this.setting.check.chkStyle===h.radio.STYLE)&&f.checkNodeRelation(this.setting,a),f.setChkClass(this.setting,b,a),f.repairParentChkClassWithSelf(this.setting,a),k&&this.setting.treeObj.trigger(h.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){f.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var a=a!==!1,b=e.nodeChildren(c,e.getRoot(this.setting)); +return e.getTreeCheckedNodes(this.setting,b,a)};a.getChangeCheckedNodes=function(){var a=e.nodeChildren(c,e.getRoot(this.setting));return e.getTreeChangeCheckedNodes(this.setting,a)};a.setChkDisabled=function(a,b,c,e){b=!!b;c=!!c;f.repairSonChkDisabled(this.setting,a,b,!!e);f.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,e){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&m(c,this.setting).get(0)&&i.uCanDo(this.setting)){var g=m(c, +h.id.CHECK,this.setting);(e==!0||this.setting.check.chkStyle===h.radio.STYLE)&&f.checkNodeRelation(this.setting,c);f.setChkClass(this.setting,g,c);f.repairParentChkClassWithSelf(this.setting,c)}}});var t=f.createNodes;f.createNodes=function(c,a,b,d,e){t&&t.apply(f,arguments);b&&f.repairParentChkClassWithSelf(c,d)};var u=f.removeNode;f.removeNode=function(c,a){var b=a.getParentNode();u&&u.apply(f,arguments);a&&b&&(f.repairChkClass(c,b),f.repairParentChkClass(c,b))};var v=f.appendNodes;f.appendNodes= +function(c,a,b,d,h,g,i){var m="";v&&(m=v.apply(f,arguments));d&&e.makeChkFlag(c,d);return m}})(jQuery); + +/* + * JQuery zTree exedit v3.5.37 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2018-08-21 + */ +(function(B){var I={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},v={onHoverOverNode:function(a,b){var c=i.getSetting(a.data.treeId),d=i.getRoot(c);if(d.curHoverNode!=b)v.onHoverOutNode(a);d.curHoverNode=b;e.addHoverDom(c,b)},onHoverOutNode:function(a){var a= +i.getSetting(a.data.treeId),b=i.getRoot(a);if(b.curHoverNode&&!i.isSelectedNode(a,b.curHoverNode))e.removeTreeDom(a,b.curHoverNode),b.curHoverNode=null},onMousedownNode:function(a,b){function c(a){if(m.dragFlag==0&&Math.abs(N-a.clientX)1){var o=n[0].parentTId?i.nodeChildren(f,n[0].getParentNode()):i.getNodes(f);g=[];for(b=0,c=o.length;b-1&&p+1!==b&&(j=!1),g.push(o[b]),p=b),n.length===g.length){n=g;break}}j&&(H=n[0].getPreNode(),Q=n[n.length-1].getNextNode());C=q("
      ", +f);for(b=0,c=n.length;b0),e.removeTreeDom(f,g),b>f.edit.drag.maxShowNodeNum-1||(j=q("
    • ",f),j.append(q(g,d.id.A,f).clone()),j.css("padding","0"),j.children("#"+g.tId+d.id.A).removeClass(d.node.CURSELECTED),C.append(j),b==f.edit.drag.maxShowNodeNum-1&&(j=q("
    • ...
    • ",f),C.append(j)));C.attr("id",n[0].tId+d.id.UL+"_tmp");C.addClass(f.treeObj.attr("class"));C.appendTo(L);u=q("", +f);u.attr("id","zTreeMove_arrow_tmp");u.appendTo(L);f.treeObj.trigger(d.event.DRAG,[a,f.treeId,n])}if(m.dragFlag==1){t&&u.attr("id")==a.target.id&&w&&a.clientX+G.scrollLeft()+2>B("#"+w+d.id.A,t).offset().left?(g=B("#"+w+d.id.A,t),a.target=g.length>0?g.get(0):a.target):t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER)); +w=t=null;J=!1;h=f;g=i.getSettings();for(var z in g)if(g[z].treeId&&g[z].edit.enable&&g[z].treeId!=f.treeId&&(a.target.id==g[z].treeId||B(a.target).parents("#"+g[z].treeId).length>0))J=!0,h=g[z];z=G.scrollTop();j=G.scrollLeft();p=h.treeObj.offset();b=h.treeObj.get(0).scrollHeight;g=h.treeObj.get(0).scrollWidth;c=a.clientY+z-p.top;var E=h.treeObj.height()+p.top-a.clientY-z,r=a.clientX+j-p.left,s=h.treeObj.width()+p.left-a.clientX-j,p=cf.edit.drag.borderMin,o=Ef.edit.drag.borderMin,F=rf.edit.drag.borderMin,v=sf.edit.drag.borderMin,E=c>f.edit.drag.borderMin&&E>f.edit.drag.borderMin&&r>f.edit.drag.borderMin&&s>f.edit.drag.borderMin,r=p&&h.treeObj.scrollTop()<=0,s=o&&h.treeObj.scrollTop()+h.treeObj.height()+10>=b,M=F&&h.treeObj.scrollLeft()<=0,P=v&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=g;if(a.target&&k.isChildOrSelf(a.target,h.treeId)){for(var D=a.target;D&&D.tagName&&!k.eqs(D.tagName,"li")&&D.id!= +h.treeId;)D=D.parentNode;var R=!0;for(b=0,c=n.length;b0){R=!1;break}if(R&&a.target&&k.isChildOrSelf(a.target,D.id+d.id.A))t=B(D),w=D.id}g=n[0];if(E&&k.isChildOrSelf(a.target,h.treeId)){if(!t&&(a.target.id==h.treeId||r||s||M||P)&&(J||!J&&g.parentTId))t=h.treeObj;p?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):o&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):v&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+ +10);t&&t!=h.treeObj&&t.offset().left=-0.2)&&g?(j=1-u.width(),b=E-u.height()/2,x=d.move.TYPE_PREV):(M==0||z>=M&&z<=1.2)&&c?(j=1-u.width(),b=v==null||i.nodeIsParent(f,A)&&A.open?E+F.height()-u.height()/2:v.offset().top-u.height()/2,x=d.move.TYPE_NEXT):p?(j=5-u.width(),b=E,x=d.move.TYPE_INNER):o(),t){u.css({display:"block",top:b+"px",left:r+j+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+x);if(S!=w||T!=x)K=(new Date).getTime();if(A&&i.nodeIsParent(f, +A)&&x==d.move.TYPE_INNER&&(z=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==A.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===A.tId&&(z=!1),z))window.zTreeMoveTimer=setTimeout(function(){x==d.move.TYPE_INNER&&A&&i.nodeIsParent(f,A)&&!A.open&&(new Date).getTime()-K>h.edit.drag.autoOpenTime&&k.apply(h.callback.beforeDragOpen,[h.treeId,A],!0)&&(e.switchNode(h,A),h.edit.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND, +[h.treeId,A]))},h.edit.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=A.tId}}else if(x=d.move.TYPE_INNER,t&&k.apply(h.edit.drag.inner,[h.treeId,n,null],!!h.edit.drag.inner)?t.addClass(d.node.TMPTARGET_TREE):t=null,u.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;S=w;T=x;f.treeObj.trigger(d.event.DRAGMOVE,[a,f.treeId,n])}return!1}function l(a){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId= +null;T=S=null;G.unbind("mousemove",c);G.unbind("mouseup",l);G.unbind("selectstart",g);L.css("cursor","");t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));k.showIfameMask(f,!1);y.showHoverDom=!0;if(m.dragFlag!=0){m.dragFlag=0;var b,j,o;for(b=0,j=n.length;b0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(b)for(var d=q("iframe",a),g=0,e=d.length;g",a);j.appendTo(q("body",a));c.dragMaskList.push(j)}}},view:{addEditBtn:function(a,b){if(!(b.editNameFlag|| +q(b,d.id.EDIT,a).length>0)&&k.apply(a.edit.showRenameBtn,[a.treeId,b],a.edit.showRenameBtn)){var c=q(b,d.id.A,a),l="";c.append(l);q(b,d.id.EDIT,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeEditName,[a.treeId,b],!0)==!1)return!1;e.editNode(a,b);return!1}).show()}},addRemoveBtn:function(a, +b){if(!(b.editNameFlag||q(b,d.id.REMOVE,a).length>0)&&k.apply(a.edit.showRemoveBtn,[a.treeId,b],a.edit.showRemoveBtn)){var c=q(b,d.id.A,a),l="";c.append(l);q(b,d.id.REMOVE,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeRemove,[a.treeId,b],!0)==!1)return!1;e.removeNode(a,b);a.treeObj.trigger(d.event.REMOVE, +[a.treeId,b]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(a,b){if(i.getRoots().showHoverDom)b.isHover=!0,a.edit.enable&&(e.addEditBtn(a,b),e.addRemoveBtn(a,b)),k.apply(a.view.addHoverDom,[a.treeId,b])},cancelCurEditNode:function(a,b,c){var l=i.getRoot(a),g=l.curEditNode;if(g){var o=l.curEditInput,b=b?b:c?i.nodeName(a,g):o.val();if(k.apply(a.callback.beforeRename,[a.treeId,g,b,c],!0)===!1)return!1;i.nodeName(a,g,b);q(g,d.id.A,a).removeClass(d.node.CURSELECTED_EDIT); +o.unbind();e.setNodeName(a,g);g.editNameFlag=!1;l.curEditNode=null;l.curEditInput=null;e.selectNode(a,g,!1);a.treeObj.trigger(d.event.RENAME,[a.treeId,g,c])}return l.noSelection=!0},editNode:function(a,b){var c=i.getRoot(a);e.editNodeBlur=!1;if(i.isSelectedNode(a,b)&&c.curEditNode==b&&b.editNameFlag)setTimeout(function(){k.inputFocus(c.curEditInput)},0);else{b.editNameFlag=!0;e.removeTreeDom(a,b);e.cancelCurEditNode(a);e.selectNode(a,b,!1);q(b,d.id.SPAN,a).html("");var l=q(b,d.id.INPUT,a);l.attr("value",i.nodeName(a,b));a.edit.editNameSelectAll?k.inputSelect(l):k.inputFocus(l);l.bind("blur",function(){e.editNodeBlur||e.cancelCurEditNode(a)}).bind("keydown",function(b){b.keyCode=="13"?(e.editNodeBlur=!0,e.cancelCurEditNode(a)):b.keyCode=="27"&&e.cancelCurEditNode(a,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});q(b,d.id.A,a).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=l; +c.noSelection=!1;c.curEditNode=b}},moveNode:function(a,b,c,l,g,k){var j=i.getRoot(a);if(b!=c&&(!a.data.keep.leaf||!b||i.nodeIsParent(a,b)||l!=d.move.TYPE_INNER)){var f=c.parentTId?c.getParentNode():j,m=b===null||b==j;m&&b===null&&(b=j);if(m)l=d.move.TYPE_INNER;j=b.parentTId?b.getParentNode():j;if(l!=d.move.TYPE_PREV&&l!=d.move.TYPE_NEXT)l=d.move.TYPE_INNER;if(l==d.move.TYPE_INNER)if(m)c.parentTId=null;else{if(!i.nodeIsParent(a,b))i.nodeIsParent(a,b,!0),b.open=!!b.open,e.setNodeLineIcos(a,b);c.parentTId= +b.tId}var y;m?y=m=a.treeObj:(!k&&l==d.move.TYPE_INNER?e.expandCollapseNode(a,b,!0,!1):k||e.expandCollapseNode(a,b.getParentNode(),!0,!1),m=q(b,a),y=q(b,d.id.UL,a),m.get(0)&&!y.get(0)&&(y=[],e.makeUlHtml(a,b,y,""),m.append(y.join(""))),y=q(b,d.id.UL,a));var r=q(c,a);r.get(0)?m.get(0)||r.remove():r=e.appendNodes(a,c.level,[c],null,-1,!1,!0).join("");y.get(0)&&l==d.move.TYPE_INNER?y.append(r):m.get(0)&&l==d.move.TYPE_PREV?m.before(r):m.get(0)&&l==d.move.TYPE_NEXT&&m.after(r);var s;y=-1;var r=0,n=null, +m=null,B=c.level,v=i.nodeChildren(a,f),C=i.nodeChildren(a,j),u=i.nodeChildren(a,b);if(c.isFirstNode){if(y=0,v.length>1)n=v[1],n.isFirstNode=!0}else if(c.isLastNode)y=v.length-1,n=v[y-1],n.isLastNode=!0;else for(j=0,s=v.length;j=0&&v.splice(y,1);if(l!=d.move.TYPE_INNER)for(j=0,s=C.length;j0)m=u[u.length-1],m.isLastNode=!1;u.splice(u.length,0,c);c.isLastNode=!0;c.isFirstNode= +u.length==1}else b.isFirstNode&&l==d.move.TYPE_PREV?(C.splice(r,0,c),m=b,m.isFirstNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!0,c.isLastNode=!1):b.isLastNode&&l==d.move.TYPE_NEXT?(C.splice(r+1,0,c),m=b,m.isLastNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(l==d.move.TYPE_PREV?C.splice(r,0,c):C.splice(r+1,0,c),c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!1);i.fixPIdKeyValue(a,c);i.setSonNodeLevel(a,c.getParentNode(),c);e.setNodeLineIcos(a,c);e.repairNodeLevelClass(a, +c,B);!a.data.keep.parent&&v.length<1?(i.nodeIsParent(a,f,!1),f.open=!1,b=q(f,d.id.UL,a),l=q(f,d.id.SWITCH,a),j=q(f,d.id.ICON,a),e.replaceSwitchClass(f,l,d.folder.DOCU),e.replaceIcoClass(f,j,d.folder.DOCU),b.css("display","none")):n&&e.setNodeLineIcos(a,n);m&&e.setNodeLineIcos(a,m);a.check&&a.check.enable&&e.repairChkClass&&(e.repairChkClass(a,f),e.repairParentChkClassWithSelf(a,f),f!=c.parent&&e.repairParentChkClassWithSelf(a,c));k||e.expandCollapseParentNode(a,c.getParentNode(),!0,g)}},removeEditBtn:function(a, +b){q(b,d.id.EDIT,a).unbind().remove()},removeRemoveBtn:function(a,b){q(b,d.id.REMOVE,a).unbind().remove()},removeTreeDom:function(a,b){b.isHover=!1;e.removeEditBtn(a,b);e.removeRemoveBtn(a,b);k.apply(a.view.removeHoverDom,[a.treeId,b])},repairNodeLevelClass:function(a,b,c){if(c!==b.level){var e=q(b,a),g=q(b,d.id.A,a),a=q(b,d.id.UL,a),c=d.className.LEVEL+c,b=d.className.LEVEL+b.level;e.removeClass(c);e.addClass(b);g.removeClass(c);g.addClass(b);a.removeClass(c);a.addClass(b)}},selectNodes:function(a, +b){for(var c=0,d=b.length;c0)}},event:{},data:{setSonNodeLevel:function(a,b,c){if(c){var d=i.nodeChildren(a,c);c.level=b?b.level+1:0;if(d)for(var b=0,g=d.length;b0)switch(o=i.getNodeCache(c,g),j){case "mousedownNode":f=v.onMousedownNode;break;case "hoverOverNode":f=v.onHoverOverNode; +break;case "hoverOutNode":f=v.onHoverOutNode}return{stop:!1,node:o,nodeEventType:j,nodeEventCallback:f,treeEventType:"",treeEventCallback:null}});i.addInitRoot(function(a){var a=i.getRoot(a),b=i.getRoots();a.curEditNode=null;a.curEditInput=null;a.curHoverNode=null;a.dragFlag=0;a.dragNodeShowBefore=[];a.dragMaskList=[];b.showHoverDom=!0});i.addZTreeTools(function(a,b){b.cancelEditName=function(a){i.getRoot(this.setting).curEditNode&&e.cancelCurEditNode(this.setting,a?a:null,!0)};b.copyNode=function(b, +l,g,o){if(!l)return null;var j=i.nodeIsParent(a,b);if(b&&!j&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;var f=this,m=k.clone(l);if(!b)b=null,g=d.move.TYPE_INNER;g==d.move.TYPE_INNER?(l=function(){e.addNodes(f.setting,b,-1,[m],o)},k.canAsync(this.setting,b)?e.asyncNode(this.setting,b,o,l):l()):(e.addNodes(this.setting,b.parentNode,-1,[m],o),e.moveNode(this.setting,b,m,g,!1,o));return m};b.editName=function(a){a&&a.tId&&a===i.getNodeCache(this.setting,a.tId)&&(a.parentTId&&e.expandCollapseParentNode(this.setting, +a.getParentNode(),!0),e.editNode(this.setting,a))};b.moveNode=function(b,l,g,o){function j(){e.moveNode(m.setting,b,l,g,!1,o)}if(!l)return l;var f=i.nodeIsParent(a,b);if(b&&!f&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;else if(b&&(l.parentTId==b.tId&&g==d.move.TYPE_INNER||q(l,this.setting).find("#"+b.tId).length>0))return null;else b||(b=null);var m=this;k.canAsync(this.setting,b)&&g===d.move.TYPE_INNER?e.asyncNode(this.setting,b,o,j):j();return l};b.setEditable=function(a){this.setting.edit.enable= +a;return this.refresh()}});var N=e.cancelPreSelectedNode;e.cancelPreSelectedNode=function(a,b){for(var c=i.getRoot(a).curSelectedList,d=0,g=c.length;d")},showNode:function(c,a){d.isHidden(c,a,!1);d.initShowForExCheck(c,a);k(a,c).show()},showNodes:function(c,a,b){if(a&&a.length!=0){var f={},g,i;for(g=0,i=a.length;g0&&!f?b[0].isFirstNode=!0:b.length>0&&e.setFirstNodeForHide(c,b)},setLastNode:function(c,a){var b=d.nodeChildren(c,a),f=d.isHidden(c,b[0]);b.length>0&&!f?b[b.length-1].isLastNode=!0:b.length>0&&e.setLastNodeForHide(c,b)},setFirstNodeForHide:function(c,a){var b,f,g;for(f=0,g=a.length;f=0;f--){b=a[f];if(b.isLastNode)break;if(!d.isHidden(c,b)&&!b.isLastNode){b.isLastNode=!0;e.setNodeLineIcos(c,b);break}else b=null}return b},setLastNodeForShow:function(c, +a){var b,f,g,i;for(f=a.length-1;f>=0;f--){b=a[f];var h=d.isHidden(c,b);if(!g&&!h&&b.isLastNode){g=b;break}else if(!g&&!h&&!b.isLastNode)b.isLastNode=!0,g=b,e.setNodeLineIcos(c,b);else if(g&&b.isLastNode){b.isLastNode=!1;i=b;e.setNodeLineIcos(c,b);break}}return{"new":g,old:i}}},data:{initHideForExCheck:function(c,a){if(d.isHidden(c,a)&&c.check&&c.check.enable){if(typeof a._nocheck=="undefined")a._nocheck=!!a.nocheck,a.nocheck=!0;a.check_Child_State=-1;e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(c, +a)}},initShowForExCheck:function(c,a){if(!d.isHidden(c,a)&&c.check&&c.check.enable){if(typeof a._nocheck!="undefined")a.nocheck=a._nocheck,delete a._nocheck;if(e.setChkClass){var b=k(a,l.id.CHECK,c);e.setChkClass(c,b,a)}e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(c,a)}}}});var j=j.fn.zTree,m=j._z.tools,l=j.consts,e=j._z.view,d=j._z.data,k=m.$;d.isHidden=function(c,a,b){if(!a)return!1;c=c.data.key.isHidden;typeof b!=="undefined"&&(typeof b==="string"&&(b=m.eqs(checked,"true")),a[c]= +!!b);return a[c]};d.exSetting({data:{key:{isHidden:"isHidden"}}});d.addInitNode(function(c,a,b){a=d.isHidden(c,b);d.isHidden(c,b,a);d.initHideForExCheck(c,b)});d.addBeforeA(function(){});d.addZTreeTools(function(c,a){a.showNodes=function(a,b){e.showNodes(c,a,b)};a.showNode=function(a,b){a&&e.showNodes(c,[a],b)};a.hideNodes=function(a,b){e.hideNodes(c,a,b)};a.hideNode=function(a,b){a&&e.hideNodes(c,[a],b)};var b=a.checkNode;if(b)a.checkNode=function(f,e,i,h){(!f||!d.isHidden(c,f))&&b.apply(a,arguments)}}); +var n=d.initNode;d.initNode=function(c,a,b,f,g,i,h){var j=(f?f:d.getRoot(c))[c.data.key.children];d.tmpHideFirstNode=e.setFirstNodeForHide(c,j);d.tmpHideLastNode=e.setLastNodeForHide(c,j);h&&(e.setNodeLineIcos(c,d.tmpHideFirstNode),e.setNodeLineIcos(c,d.tmpHideLastNode));g=d.tmpHideFirstNode===b;i=d.tmpHideLastNode===b;n&&n.apply(d,arguments);h&&i&&e.clearOldLastNode(c,b,h)};var o=d.makeChkFlag;if(o)d.makeChkFlag=function(c,a){(!a||!d.isHidden(c,a))&&o.apply(d,arguments)};var p=d.getTreeCheckedNodes; +if(p)d.getTreeCheckedNodes=function(c,a,b,f){if(a&&a.length>0){var e=a[0].getParentNode();if(e&&d.isHidden(c,e))return[]}return p.apply(d,arguments)};var q=d.getTreeChangeCheckedNodes;if(q)d.getTreeChangeCheckedNodes=function(c,a,b){if(a&&a.length>0){var e=a[0].getParentNode();if(e&&d.isHidden(c,e))return[]}return q.apply(d,arguments)};var r=e.expandCollapseSonNode;if(r)e.expandCollapseSonNode=function(c,a,b,f,g){(!a||!d.isHidden(c,a))&&r.apply(e,arguments)};var s=e.setSonNodeCheckBox;if(s)e.setSonNodeCheckBox= +function(c,a,b,f){(!a||!d.isHidden(c,a))&&s.apply(e,arguments)};var t=e.repairParentChkClassWithSelf;if(t)e.repairParentChkClassWithSelf=function(c,a){(!a||!d.isHidden(c,a))&&t.apply(e,arguments)}})(jQuery); + + + + + TreeSelect.prototype.render = function (options) { + var elem = options.elem, + // 请求地址 + data = options.data, + // 请求头 + headers = options.headers, + // 请求方式 + type = options.type === undefined ? 'GET' : options.type, + // 节点点击回调 + click = options.click, + // 渲染成功后的回调函数 + success = options.success, + // 占位符(提示信息) + placeholder = options.placeholder === undefined ? '请选择' : options.placeholder, + // 是否开启搜索 + search = options.search === undefined ? false : options.search, + // 样式配置项 + style = options.style, + // 唯一id + tmp = new Date().getTime(), + DATA = {}, + selected = 'layui-form-selected', + TREE_OBJ = undefined, + TREE_INPUT_ID = 'treeSelect-input-' + tmp, + TREE_INPUT_CLASS = 'layui-treeselect', + TREE_SELECT_ID = 'layui-treeSelect-' + tmp, + TREE_SELECT_CLASS = 'layui-treeSelect', + TREE_SELECT_TITLE_ID = 'layui-select-title-' + tmp, + TREE_SELECT_TITLE_CLASS = 'layui-select-title', + TREE_SELECT_BODY_ID = 'layui-treeSelect-body-' + tmp, + TREE_SELECT_BODY_CLASS = 'layui-treeSelect-body', + TREE_SELECT_SEARCHED_CLASS = 'layui-treeSelect-search-ed'; + + + var a = { + init: function () { + $.ajax({ + url: data, + type: type, + headers: headers, + dataType: 'json', + success: function (d) { + DATA = d; + a.hideElem().input().toggleSelect().loadCss().preventEvent(); + $.fn.zTree.init($('#' + TREE_SELECT_BODY_ID), a.setting(), d); + TREE_OBJ = $.fn.zTree.getZTreeObj(TREE_SELECT_BODY_ID); + if (search) { + a.searchParam(); + } + a.configStyle(); + if (success) { + var obj = { + treeId: TREE_SELECT_ID, + data: d + }; + success(obj); + } + } + }); + return a; + }, + // 检查input是否有默认值 + checkDefaultValue: function () { + + }, + setting: function () { + var setting = { + callback: { + onClick: a.onClick, + onExpand: a.onExpand, + onCollapse: a.onCollapse, + beforeExpand: a.ztreeCallBack.beforeExpand + } + }; + return setting; + }, + ztreeCallBack: { + beforeExpand: function () { + a.configStyle(); + }, + }, + onCollapse: function () { + a.focusInput(); + }, + onExpand: function () { + a.configStyle(); + a.focusInput(); + }, + focusInput: function () { + $('#' + TREE_INPUT_ID).focus(); + }, + onClick: function (event, treeId, treeNode) { + var name = treeNode.name, + id = treeNode.id, + $input = $('#' + TREE_SELECT_TITLE_ID + ' input'); + $input.val(name); + $(elem).attr('value', id).val(id); + $('#' + TREE_SELECT_ID).removeClass(selected); + + if (click) { + var obj = { + data: DATA, + current: treeNode, + treeId: TREE_SELECT_ID + }; + click(obj); + } + return a; + }, + hideElem: function () { + $(elem).hide(); + return a; + }, + input: function () { + var readonly = ''; + if (!search) { + readonly = 'readonly'; + } + var selectHtml = '
      ' + + '
      ' + + ' ' + + '' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      '; + $(elem).parent().append(selectHtml); + return a; + }, + /** + * 展开/折叠下拉框 + */ + toggleSelect: function () { + var item = '#' + TREE_SELECT_TITLE_ID; + a.event('click', item, function (e) { + var $select = $('#' + TREE_SELECT_ID); + if ($select.hasClass(selected)) { + $select.removeClass(selected); + $('#' + TREE_INPUT_ID).blur(); + } else { + // 隐藏其他picker + $('.layui-form-select').removeClass(selected); + // 显示当前picker + $select.addClass(selected); + } + e.stopPropagation(); + }); + $(document).click(function () { + var $select = $('#' + TREE_SELECT_ID); + if ($select.hasClass(selected)) { + $select.removeClass(selected); + $('#' + TREE_INPUT_ID).blur(); + } + }); + return a; + }, + // 模糊查询 + searchParam: function () { + if (!search) { + return; + } + + var item = '#' + TREE_INPUT_ID; + a.fuzzySearch(item, null, true); + }, + fuzzySearch: function (searchField, isHighLight, isExpand) { + var zTreeObj = TREE_OBJ;//get the ztree object by ztree id + if (!zTreeObj) { + alert("fail to get ztree object"); + } + var nameKey = zTreeObj.setting.data.key.name; //get the key of the node name + isHighLight = isHighLight === false ? false : true;//default true, only use false to disable highlight + isExpand = isExpand ? true : false; // not to expand in default + zTreeObj.setting.view.nameIsHTML = isHighLight; //allow use html in node name for highlight use + + var metaChar = '[\\[\\]\\\\\^\\$\\.\\|\\?\\*\\+\\(\\)]'; //js meta characters + var rexMeta = new RegExp(metaChar, 'gi');//regular expression to match meta characters + + // keywords filter function + function ztreeFilter(zTreeObj, _keywords, callBackFunc) { + if (!_keywords) { + _keywords = ''; //default blank for _keywords + } + + // function to find the matching node + function filterFunc(node) { + if (node && node.oldname && node.oldname.length > 0) { + node[nameKey] = node.oldname; //recover oldname of the node if exist + } + zTreeObj.updateNode(node); //update node to for modifications take effect + if (_keywords.length == 0) { + //return true to show all nodes if the keyword is blank + zTreeObj.showNode(node); + zTreeObj.expandNode(node, isExpand); + return true; + } + //transform node name and keywords to lowercase + if (node[nameKey] && node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1) { + zTreeObj.showNode(node);//show node with matching keywords + return true; //return true and show this node + } + + zTreeObj.hideNode(node); // hide node that not matched + return false; //return false for node not matched + } + + var nodesShow = zTreeObj.getNodesByFilter(filterFunc); //get all nodes that would be shown + processShowNodes(nodesShow, _keywords);//nodes should be reprocessed to show correctly + } + + /** + * reprocess of nodes before showing + */ + function processShowNodes(nodesShow, _keywords) { + if (nodesShow && nodesShow.length > 0) { + //process the ancient nodes if _keywords is not blank + if (_keywords.length > 0) { + $.each(nodesShow, function (n, obj) { + var pathOfOne = obj.getPath();//get all the ancient nodes including current node + if (pathOfOne && pathOfOne.length > 0) { + //i < pathOfOne.length-1 process every node in path except self + for (var i = 0; i < pathOfOne.length - 1; i++) { + zTreeObj.showNode(pathOfOne[i]); //show node + zTreeObj.expandNode(pathOfOne[i], true); //expand node + } + } + }); + } else { //show all nodes when _keywords is blank and expand the root nodes + var rootNodes = zTreeObj.getNodesByParam('level', '0');//get all root nodes + $.each(rootNodes, function (n, obj) { + zTreeObj.expandNode(obj, true); //expand all root nodes + }); + } + } + } + + //listen to change in input element + $(searchField).bind('input propertychange', function () { + var _keywords = $(this).val(); + searchNodeLazy(_keywords); //call lazy load + }); + + var timeoutId = null; + // excute lazy load once after input change, the last pending task will be cancled + function searchNodeLazy(_keywords) { + if (timeoutId) { + //clear pending task + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function () { + ztreeFilter(zTreeObj, _keywords); //lazy load ztreeFilter function + $(searchField).focus();//focus input field again after filtering + }, 500); + } + }, + checkNodes: function (nodes) { + for (var i = 0; i < nodes.length; i++) { + var o = nodes[i], + pid = o.parentTId, + tid = o.tId; + if (pid !== null) { + // 获取父节点 + $('#' + pid).addClass(TREE_SELECT_SEARCHED_CLASS); + var pNode = TREE_OBJ.getNodesByParam("tId", pid, null); + TREE_OBJ.expandNode(pNode[0], true, false, true); + } + $('#' + tid).addClass(TREE_SELECT_SEARCHED_CLASS); + } + }, + // 阻止Layui的一些默认事件 + preventEvent: function () { + var item = '#' + TREE_SELECT_ID + ' .layui-anim'; + a.event('click', item, function (e) { + e.stopPropagation(); + }); + return a; + }, + loadCss: function () { + var ztree = '.ztree *{padding:0;margin:0;font-size:12px;font-family:Verdana,Arial,Helvetica,AppleGothic,sans-serif}.ztree{margin:0;padding:5px;color:#333}.ztree li{padding:0;margin:0;list-style:none;line-height:14px;text-align:left;white-space:nowrap;outline:0}.ztree li ul{margin:0;padding:0 0 0 18px}.ztree li ul.line{background:url(./img/line_conn.gif) 0 0 repeat-y;}.ztree li a{padding:1px 3px 0 0;margin:0;cursor:pointer;height:17px;color:#333;background-color:transparent;text-decoration:none;vertical-align:top;display:inline-block}.ztree li a:hover{text-decoration:underline}.ztree li a.curSelectedNode{padding-top:0px;background-color:#FFE6B0;color:black;height:16px;border:1px #FFB951 solid;opacity:0.8;}.ztree li a.curSelectedNode_Edit{padding-top:0px;background-color:#FFE6B0;color:black;height:16px;border:1px #FFB951 solid;opacity:0.8;}.ztree li a.tmpTargetNode_inner{padding-top:0px;background-color:#316AC5;color:white;height:16px;border:1px #316AC5 solid;opacity:0.8;filter:alpha(opacity=80)}.ztree li a.tmpTargetNode_prev{}.ztree li a.tmpTargetNode_next{}.ztree li a input.rename{height:14px;width:80px;padding:0;margin:0;font-size:12px;border:1px #7EC4CC solid;*border:0px}.ztree li span{line-height:16px;margin-right:2px}.ztree li span.button{line-height:0;margin:0;width:16px;height:16px;display:inline-block;vertical-align:middle;border:0 none;cursor:pointer;outline:none;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-image:url("./img/zTreeStandard.png");*background-image:url("./img/zTreeStandard.gif")}.ztree li span.button.chk{width:13px;height:13px;margin:0 3px 0 0;cursor:auto}.ztree li span.button.chk.checkbox_false_full{background-position:0 0}.ztree li span.button.chk.checkbox_false_full_focus{background-position:0 -14px}.ztree li span.button.chk.checkbox_false_part{background-position:0 -28px}.ztree li span.button.chk.checkbox_false_part_focus{background-position:0 -42px}.ztree li span.button.chk.checkbox_false_disable{background-position:0 -56px}.ztree li span.button.chk.checkbox_true_full{background-position:-14px 0}.ztree li span.button.chk.checkbox_true_full_focus{background-position:-14px -14px}.ztree li span.button.chk.checkbox_true_part{background-position:-14px -28px}.ztree li span.button.chk.checkbox_true_part_focus{background-position:-14px -42px}.ztree li span.button.chk.checkbox_true_disable{background-position:-14px -56px}.ztree li span.button.chk.radio_false_full{background-position:-28px 0}.ztree li span.button.chk.radio_false_full_focus{background-position:-28px -14px}.ztree li span.button.chk.radio_false_part{background-position:-28px -28px}.ztree li span.button.chk.radio_false_part_focus{background-position:-28px -42px}.ztree li span.button.chk.radio_false_disable{background-position:-28px -56px}.ztree li span.button.chk.radio_true_full{background-position:-42px 0}.ztree li span.button.chk.radio_true_full_focus{background-position:-42px -14px}.ztree li span.button.chk.radio_true_part{background-position:-42px -28px}.ztree li span.button.chk.radio_true_part_focus{background-position:-42px -42px}.ztree li span.button.chk.radio_true_disable{background-position:-42px -56px}.ztree li span.button.switch{width:18px;height:18px}.ztree li span.button.root_open{background-position:-92px -54px}.ztree li span.button.root_close{background-position:-74px -54px}.ztree li span.button.roots_open{background-position:-92px 0}.ztree li span.button.roots_close{background-position:-74px 0}.ztree li span.button.center_open{background-position:-92px -18px}.ztree li span.button.center_close{background-position:-74px -18px}.ztree li span.button.bottom_open{background-position:-92px -36px}.ztree li span.button.bottom_close{background-position:-74px -36px}.ztree li span.button.noline_open{background-position:-92px -72px}.ztree li span.button.noline_close{background-position:-74px -72px}.ztree li span.button.root_docu{background:none;}.ztree li span.button.roots_docu{background-position:-56px 0}.ztree li span.button.center_docu{background-position:-56px -18px}.ztree li span.button.bottom_docu{background-position:-56px -36px}.ztree li span.button.noline_docu{background:none;}.ztree li span.button.ico_open{margin-right:2px;background-position:-110px -16px;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_close{margin-right:2px;background-position:-110px 0;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_docu{margin-right:2px;background-position:-110px -32px;vertical-align:top;*vertical-align:middle}.ztree li span.button.edit{margin-right:2px;background-position:-110px -48px;vertical-align:top;*vertical-align:middle}.ztree li span.button.remove{margin-right:2px;background-position:-110px -64px;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_loading{margin-right:2px;background:url(./img/loading.gif) no-repeat scroll 0 0 transparent;vertical-align:top;*vertical-align:middle}ul.tmpTargetzTree{background-color:#FFE6B0;opacity:0.8;filter:alpha(opacity=80)}span.tmpzTreeMove_arrow{width:16px;height:16px;display:inline-block;padding:0;margin:2px 0 0 1px;border:0 none;position:absolute;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-position:-110px -80px;background-image:url("./img/zTreeStandard.png");*background-image:url("./img/zTreeStandard.gif")}ul.ztree.zTreeDragUL{margin:0;padding:0;position:absolute;width:auto;height:auto;overflow:hidden;background-color:#cfcfcf;border:1px #00B83F dotted;opacity:0.8;filter:alpha(opacity=80)}.zTreeMask{z-index:10000;background-color:#cfcfcf;opacity:0.0;filter:alpha(opacity=0);position:absolute}', + ztree_ex = '.layui-treeSelect .ztree li span.button{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:none;line-height:inherit;}.layui-treeSelect .ztree li span.button.ico_open{display:none;}.layui-treeSelect .ztree li span.button.ico_close{display:none;}.layui-treeSelect .ztree li span.button.ico_docu:before{content:"\\e621";}.layui-treeSelect .ztree li span.button.bottom_close:before,.layui-treeSelect .ztree li span.button.center_close:before,.layui-treeSelect .ztree li span.button.roots_close:before,.layui-treeSelect .ztree li span.button.root_close:before{content:"\\e623";}.layui-treeSelect .ztree li span.button.bottom_open:before,.layui-treeSelect .ztree li span.button.roots_open:before,.layui-treeSelect .ztree li span.button.center_open:before,.layui-treeSelect .ztree li span.button.root_open:before{content:"\\e625";}.layui-treeSelect .ztree li a:hover{text-decoration:none;}.layui-treeSelect .ztree *{font-size:14px;}.layui-treeSelect .ztree li{line-height:inherit;padding:2px 0;}.layui-treeSelect .ztree li span.button.switch{position:relative;top:-1px;}.layui-treeSelect .ztree li a,.ztree li span{line-height:18px;height:inherit;}.layui-treeSelect .ztree li a.curSelectedNode{color:#5FB878;background:none;border:none;height:inherit;padding-top:1px;}.layui-treeSelect .layui-anim::-webkit-scrollbar{width:6px;height:6px;background-color:#F5F5F5;}.layui-treeSelect .layui-anim::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(107,98,98,0.3);border-radius:10px;background-color:#F5F5F5;}.layui-treeSelect .layui-anim::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px rgba(107,98,98,0.3);background-color:#555;}.layui-treeSelect.layui-form-select .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:9999;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}.layui-treeSelect.layui-form-selected .layui-anim{display:block;}.layui-treeSelect .ztree li ul.line{background:none;position:relative;}.layui-treeSelect .ztree li ul.line:before{content:"";height:100%;border-left:1px dotted #ece;position:absolute;left:8px;}.layui-treeSelect .ztree li .center_docu:before,.ztree li .bottom_docu::before{content:"";height:100%;border-left:1px dotted #ece;position:absolute;left:8px;}.layui-treeSelect .ztree li .center_docu::after,.ztree li .bottom_docu::after{content:"";position:absolute;left:8px;top:8px;width:8px;border-top:1px dotted #ece;}.layui-treeSelect .ztree li span.button.ico_open{display:inline-block;position:relative;top:1px;}.layui-treeSelect .ztree li span.button.ico_close{display:inline-block;position:relative;top:1px;}.layui-treeSelect .ztree li span.button.ico_open:before{content:"\\e643";}.layui-treeSelect .ztree li span.button.ico_close:before{content:"\\e63f";}'; + $head = $('head'), + ztreeStyle = $head.find('style[ztree]'); + + if (ztreeStyle.length === 0) { + $head.append($('