pom.xml
@@ -15,7 +15,7 @@ <properties> <java.version>1.8</java.version> <cool.version>2.0.0</cool.version> <cool.version>2.2.0</cool.version> <mysql-driver.version>5.1.47</mysql-driver.version> <mybatis-plus.version>2.3.2</mybatis-plus.version> <fastjson.version>1.2.58</fastjson.version> src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -118,7 +118,7 @@ @RequestMapping(value = "/locDetl/update/auth") @ManagerAuth(memo = "库位明细修改") public R update(LocDetl locDetl){ if (Cools.isEmpty(locDetl) || null==locDetl.getMatnr()){ if (Cools.isEmpty(locDetl) || null==locDetl.getMatNo()){ return R.error(); } locDetl.setModiUser(getUserId()); @@ -155,13 +155,13 @@ @ManagerAuth public R query(String condition) { EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); wrapper.like("matnr", condition); wrapper.like("mat_no", condition); Page<LocDetl> page = locDetlService.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); for (LocDetl locDetl : page.getRecords()){ Map<String, Object> map = new HashMap<>(); map.put("id", locDetl.getMatnr()); map.put("value", locDetl.getMatnr()); map.put("id", locDetl.getMatNo()); map.put("value", locDetl.getMatNo()); result.add(map); } return R.ok(result); src/main/java/com/zy/asrs/controller/MobileController.java
@@ -82,36 +82,36 @@ List<MobileLocDetlVo> res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); List<WrkDetl> wrkDetlsList = wrkDetlService.queryWrkDetl(locDetl.getMatnr(), locDetl.getLocNo()); List<WrkDetl> wrkDetlsList = wrkDetlService.queryWrkDetl(locDetl.getMatNo(), locDetl.getLocNo()); final Double[] pickNum = {0.0}; wrkDetlsList.forEach(item -> { pickNum[0] = pickNum[0] + item.getAnfme(); pickNum[0] = pickNum[0] + item.getQty(); }); vo.setPickNum(pickNum[0]); vo.setLocNo(locDetl.getLocNo()); vo.setMatnr(locDetl.getMatnr()); vo.setMaktx(locDetl.getMaktx()); vo.setCount(locDetl.getAnfme()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); } if (!Cools.isEmpty(matNo)) { List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() .eq("matnr", matNo).orderBy("appe_time", false)); .eq("mat_no", matNo).orderBy("appe_time", false)); List<MobileLocDetlVo> res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); List<WrkDetl> wrkDetlsList = wrkDetlService.queryWrkDetl(locDetl.getMatnr(), locDetl.getLocNo()); List<WrkDetl> wrkDetlsList = wrkDetlService.queryWrkDetl(locDetl.getMatNo(), locDetl.getLocNo()); final Double[] pickNum = {0.0}; wrkDetlsList.forEach(item -> { pickNum[0] = pickNum[0] + item.getAnfme(); pickNum[0] = pickNum[0] + item.getQty(); }); vo.setPickNum(pickNum[0]); vo.setLocNo(locDetl.getLocNo()); vo.setMatnr(locDetl.getMatnr()); vo.setMaktx(locDetl.getMaktx()); vo.setCount(locDetl.getAnfme()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); @@ -137,23 +137,23 @@ locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); vo.setLocNo(locDetl.getLocNo()); vo.setMatnr(locDetl.getMatnr()); vo.setMaktx(locDetl.getMaktx()); vo.setCount(locDetl.getAnfme()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); } if (!Cools.isEmpty(matNo)) { List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() .eq("matnr", matNo).orderBy("appe_time", false)); .eq("mat_no", matNo).orderBy("appe_time", false)); List<MobileLocDetlVo> res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); vo.setLocNo(locDetl.getLocNo()); vo.setMatnr(locDetl.getMatnr()); vo.setMaktx(locDetl.getMaktx()); vo.setCount(locDetl.getAnfme()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -27,21 +27,25 @@ @TableField("loc_no") private String locNo; @ApiModelProperty(value= "产品") @TableId(value = "matnr", type = IdType.INPUT) private String matnr; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no", type = IdType.INPUT) private String matNo; @ApiModelProperty(value= "产品描述") private String maktx; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") private String matName; @ApiModelProperty(value= "规格") private String lgnum; private String specs; @ApiModelProperty(value= "产品类别") private String type; @ApiModelProperty(value= "尺寸") private String size; @ApiModelProperty(value= "颜色") private String color; @ApiModelProperty(value= "单重") private Double weight; @ApiModelProperty(value= "供应商") private String supplier; @@ -53,10 +57,10 @@ private String brand; @ApiModelProperty(value= "数量") private Double anfme; private Double qty; @ApiModelProperty(value= "单位") private String altme; private String unit; @ApiModelProperty(value= "托盘条码") private String zpallet; src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
@@ -9,21 +9,16 @@ */ @Data public class ViewStayTimeBean { private int tbnum; //转储请求编号 private int tbpos; //行项目 private String zmatid; //产品标签ID private String matnr; //产品 private String maktx; //产品描述 private String werks; //工厂 private double anfme; //数量 private String altme; //单位 private String specs; //规格 private Double qty; //数量 private String unit; //单位 private String size; //尺寸 private String color; // 颜色 private Double weight; //单重 private String zpallet; //托盘条码 private String bname; //用户ID private String lgnum; //规格 private String type; // 产品类别 private String color; // 颜色 private String supplier; // 供应商 private String warehouse; // 仓库 private String brand; // 品牌 @@ -31,8 +26,7 @@ private String loc_no; //库位号 private String mat_no; //产品代号 private Long ctns; //箱数 private Long qty; //数量 private double wt; //重量 // private Double wt; //重量 private String memo; //备注 private String mat_name; //产品名称 private String str1; @@ -45,25 +39,11 @@ private String str8; private String str9; private String str10; private String str11; private String str12; private String str13; private String str14; private String str15; private String str16; private String str17; private String str18; private String str19; private String str20; private String str21; private String str22; private String str23; private double num1; private double num2; private double num3; private double num4; private double num5; private double num6; private String modi_user; private String modi_time; private String stay_time; @@ -74,61 +54,79 @@ private String end_date; //查询截止日期 private String barcode; private String date1; public String getLgnum() { return lgnum; public String getSpecs() { return specs; } public void setLgnum(String lgnum) { this.lgnum = lgnum; public void setSpecs(String specs) { this.specs = specs; } public int getTbnum() { return tbnum; public Double getQty() { return qty; } public void setTbnum(int tbnum) { this.tbnum = tbnum; public void setQty(Double qty) { this.qty = qty; } public int getTbpos() { return tbpos; public String getUnit() { return unit; } public void setTbpos(int tbpos) { this.tbpos = tbpos; public void setUnit(String unit) { this.unit = unit; } public String getZmatid() { return zmatid; public String getSize() { return size; } public void setZmatid(String zmatid) { this.zmatid = zmatid; public void setSize(String size) { this.size = size; } public String getMatnr() { return matnr; public String getColor() { return color; } public void setMatnr(String matnr) { this.matnr = matnr; public void setColor(String color) { this.color = color; } public String getMaktx() { return maktx; public Double getWeight() { return weight; } public void setMaktx(String maktx) { this.maktx = maktx; public void setWeight(Double weight) { this.weight = weight; } public String getWerks() { return werks; public String getSupplier() { return supplier; } public void setWerks(String werks) { this.werks = werks; public void setSupplier(String supplier) { this.supplier = supplier; } public double getAnfme() { return anfme; public String getWarehouse() { return warehouse; } public void setAnfme(double anfme) { this.anfme = anfme; public void setWarehouse(String warehouse) { this.warehouse = warehouse; } public String getAltme() { return altme; public String getBrand() { return brand; } public void setAltme(String altme) { this.altme = altme; public void setBrand(String brand) { this.brand = brand; } public String getZpallet() { return zpallet; } @@ -165,18 +163,12 @@ public void setCtns(Long ctns) { this.ctns = ctns; } public Long getQty() { return qty; } public void setQty(Long qty) { this.qty = qty; } public double getWt() { return wt; } public void setWt(double wt) { this.wt = wt; } // public double getWt() { // return wt; // } // public void setWt(double wt) { // this.wt = wt; // } public String getStay_time() { return stay_time; } @@ -434,90 +426,6 @@ } public void setEnd_date(String end_date) { this.end_date = end_date; } public String getStr11() { return str11; } public void setStr11(String str11) { this.str11 = str11; } public String getStr12() { return str12; } public void setStr12(String str12) { this.str12 = str12; } public String getStr13() { return str13; } public void setStr13(String str13) { this.str13 = str13; } public String getStr14() { return str14; } public void setStr14(String str14) { this.str14 = str14; } public String getStr15() { return str15; } public void setStr15(String str15) { this.str15 = str15; } public String getStr16() { return str16; } public void setStr16(String str16) { this.str16 = str16; } public String getStr17() { return str17; } public void setStr17(String str17) { this.str17 = str17; } public String getStr18() { return str18; } public void setStr18(String str18) { this.str18 = str18; } public String getStr19() { return str19; } public void setStr19(String str19) { this.str19 = str19; } public String getStr20() { return str20; } public void setStr20(String str20) { this.str20 = str20; } public String getStr21() { return str21; } public void setStr21(String str21) { this.str21 = str21; } public String getStr22() { return str22; } public void setStr22(String str22) { this.str22 = str22; } public String getStr23() { return str23; } public void setStr23(String str23) { this.str23 = str23; } public double getNum6() { return num6; } public void setNum6(double num6) { this.num6 = num6; } public String getBarcode() { return barcode; src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
@@ -10,21 +10,15 @@ @Data public class ViewWorkInBean { private int tbnum; //转储请求编号 private int tbpos; //行项目 private String zmatid; //产品标签ID private String matnr; //产品 private String maktx; //产品描述 private String werks; //工厂 private double anfme; //数量 private String altme; //单位 private String specs; //规格 private Double qty; //数量 private String unit; //单位 private String size; //尺寸 private String color; // 颜色 private Double weight; //单重 private String zpallet; //托盘条码 private String bname; //用户ID private String lgnum; //规格 private String type; // 产品类别 private String color; // 颜色 private String supplier; // 供应商 private String warehouse; // 仓库 private String brand; // 品牌 @@ -43,21 +37,7 @@ private String str8; private String str9; private String str10; private String str11; private String str12; private String str13; private String str14; private String str15; private String str16; private String str17; private String str18; private String str19; private String str20; private String str21; private String str22; private String str23; private Long ctns; //箱数 private Long qty; //数量 private double wt; //重量 private int pageNumber; private int pageSize; @@ -69,66 +49,87 @@ private double num3; private double num4; private double num5; private double num6; private String barcode; private String date1; private String crn_str_time; private String crn_end_time; public String getLgnum() { return lgnum; public String getSpecs() { return specs; } public void setLgnum(String lgnum) { this.lgnum = lgnum; public void setSpecs(String specs) { this.specs = specs; } public int getTbnum() { return tbnum; public Double getQty() { return qty; } public void setTbnum(int tbnum) { this.tbnum = tbnum; public void setQty(Double qty) { this.qty = qty; } public int getTbpos() { return tbpos; public String getUnit() { return unit; } public void setTbpos(int tbpos) { this.tbpos = tbpos; public void setUnit(String unit) { this.unit = unit; } public String getZmatid() { return zmatid; public String getSize() { return size; } public void setZmatid(String zmatid) { this.zmatid = zmatid; public void setSize(String size) { this.size = size; } public String getMatnr() { return matnr; public String getColor() { return color; } public void setMatnr(String matnr) { this.matnr = matnr; public void setColor(String color) { this.color = color; } public String getMaktx() { return maktx; public Double getWeight() { return weight; } public void setMaktx(String maktx) { this.maktx = maktx; public void setWeight(Double weight) { this.weight = weight; } public String getWerks() { return werks; public String getSupplier() { return supplier; } public void setWerks(String werks) { this.werks = werks; public void setSupplier(String supplier) { this.supplier = supplier; } public double getAnfme() { return anfme; public String getWarehouse() { return warehouse; } public void setAnfme(double anfme) { this.anfme = anfme; public void setWarehouse(String warehouse) { this.warehouse = warehouse; } public String getAltme() { return altme; public String getBrand() { return brand; } public void setAltme(String altme) { this.altme = altme; public void setBrand(String brand) { this.brand = brand; } public String getQuery_date() { return query_date; } public String getZpallet() { return zpallet; } @@ -182,12 +183,6 @@ } public void setCtns(Long ctns) { this.ctns = ctns; } public Long getQty() { return qty; } public void setQty(Long qty) { this.qty = qty; } public double getWt() { return wt; @@ -267,84 +262,6 @@ public void setStr10(String str10) { this.str10 = str10; } public String getStr11() { return str11; } public void setStr11(String str11) { this.str11 = str11; } public String getStr12() { return str12; } public void setStr12(String str12) { this.str12 = str12; } public String getStr13() { return str13; } public void setStr13(String str13) { this.str13 = str13; } public String getStr14() { return str14; } public void setStr14(String str14) { this.str14 = str14; } public String getStr15() { return str15; } public void setStr15(String str15) { this.str15 = str15; } public String getStr16() { return str16; } public void setStr16(String str16) { this.str16 = str16; } public String getStr17() { return str17; } public void setStr17(String str17) { this.str17 = str17; } public String getStr18() { return str18; } public void setStr18(String str18) { this.str18 = str18; } public String getStr19() { return str19; } public void setStr19(String str19) { this.str19 = str19; } public String getStr20() { return str20; } public void setStr20(String str20) { this.str20 = str20; } public String getStr21() { return str21; } public void setStr21(String str21) { this.str21 = str21; } public String getStr22() { return str22; } public void setStr22(String str22) { this.str22 = str22; } public String getStr23() { return str23; } public void setStr23(String str23) { this.str23 = str23; } public double getNum1() { return num1; } @@ -374,12 +291,6 @@ } public void setNum5(double num5) { this.num5 = num5; } public double getNum6() { return num6; } public void setNum6(double num6) { this.num6 = num6; } public String getBarcode() { return barcode; src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -1,6 +1,7 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.core.common.Cools; import io.swagger.annotations.ApiModelProperty; @@ -16,18 +17,37 @@ private static final long serialVersionUID = 1L; /** * 产品 */ @ApiModelProperty(value= "产品") private String matnr; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no") private String matNo; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") private String matName; @ApiModelProperty(value= "规格") private String specs; @ApiModelProperty(value= "尺寸") private String size; @ApiModelProperty(value= "颜色") private String color; @ApiModelProperty(value= "单重") private Double weight; /** * 产品描述 * 数量 */ @ApiModelProperty(value= "产品描述") private String maktx; @ApiModelProperty(value= "数量") private Double qty; /** * 单位 */ @ApiModelProperty(value= "单位") private String unit; /** * 仓库号 @@ -40,12 +60,6 @@ */ @ApiModelProperty(value= "产品类别") private String type; /** * 仓库号 */ @ApiModelProperty(value= "颜色") private String color; /** * 仓库号 @@ -64,18 +78,6 @@ */ @ApiModelProperty(value= "品牌") private String brand; /** * 数量 */ @ApiModelProperty(value= "数量") private Double anfme; /** * 单位 */ @ApiModelProperty(value= "单位") private String altme; /** * 托盘条码 src/main/java/com/zy/asrs/entity/WaitPakinLog.java
@@ -1,6 +1,7 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.core.common.Cools; import io.swagger.annotations.ApiModelProperty; @@ -17,17 +18,37 @@ private static final long serialVersionUID = 1L; /** * 产品 */ @ApiModelProperty(value= "产品") private String matnr; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no") private String matNo; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") private String matName; @ApiModelProperty(value= "规格") private String specs; @ApiModelProperty(value= "尺寸") private String size; @ApiModelProperty(value= "颜色") private String color; @ApiModelProperty(value= "单重") private Double weight; /** * 产品描述 * 数量 */ @ApiModelProperty(value= "产品描述") private String maktx; @ApiModelProperty(value= "数量") private Double qty; /** * 单位 */ @ApiModelProperty(value= "单位") private String unit; /** @@ -41,12 +62,6 @@ */ @ApiModelProperty(value= "产品类别") private String type; /** * 仓库号 */ @ApiModelProperty(value= "颜色") private String color; /** * 仓库号 @@ -65,18 +80,6 @@ */ @ApiModelProperty(value= "品牌") private String brand; /** * 数量 */ @ApiModelProperty(value= "数量") private Double anfme; /** * 单位 */ @ApiModelProperty(value= "单位") private String altme; /** * 托盘条码 src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -1,7 +1,9 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.system.entity.User; @@ -33,48 +35,39 @@ @TableField("io_time") private Date ioTime; /** * 产品 */ @ApiModelProperty(value= "产品") private String matnr; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no") private String matNo; /** * 产品描述 */ @ApiModelProperty(value= "产品描述") private String maktx; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") private String matName; /** * 仓库号 */ @ApiModelProperty(value= "规格") private String lgnum; private String specs; /** * 仓库号 */ @ApiModelProperty(value= "产品类别") private String type; @ApiModelProperty(value= "尺寸") private String size; /** * 仓库号 */ @ApiModelProperty(value= "颜色") private String color; /** * 仓库号 */ @ApiModelProperty(value= "供应商") private String supplier; @ApiModelProperty(value= "单重") private Double weight; /** * 仓库号 * 单据编号 */ @ApiModelProperty(value= "仓库") private String warehouse; @ApiModelProperty(value= "单据编号") @TableField("bill_no") private String billNo; /** * 序号 */ @ApiModelProperty(value= "序号") @TableField("seq_no") private String seqNo; /** * 仓库号 @@ -86,13 +79,13 @@ * 数量 */ @ApiModelProperty(value= "数量") private Double anfme; private Double qty; /** * 单位 */ @ApiModelProperty(value= "单位") private String altme; private String unit; /** * 托盘条码 src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -1,6 +1,7 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.core.common.Cools; import com.core.common.SpringUtils; @@ -33,48 +34,39 @@ @TableField("io_time") private Date ioTime; /** * 产品 */ @ApiModelProperty(value= "产品") private String matnr; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no") private String matNo; /** * 产品描述 */ @ApiModelProperty(value= "产品描述") private String maktx; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") private String matName; /** * 仓库号 */ @ApiModelProperty(value= "规格") private String lgnum; private String specs; /** * 仓库号 */ @ApiModelProperty(value= "产品类别") private String type; @ApiModelProperty(value= "尺寸") private String size; /** * 仓库号 */ @ApiModelProperty(value= "颜色") private String color; /** * 仓库号 */ @ApiModelProperty(value= "供应商") private String supplier; @ApiModelProperty(value= "单重") private Double weight; /** * 仓库号 * 单据编号 */ @ApiModelProperty(value= "仓库") private String warehouse; @ApiModelProperty(value= "单据编号") @TableField("bill_no") private String billNo; /** * 序号 */ @ApiModelProperty(value= "序号") @TableField("seq_no") private String seqNo; /** * 仓库号 @@ -86,13 +78,13 @@ * 数量 */ @ApiModelProperty(value= "数量") private Double anfme; private Double qty; /** * 单位 */ @ApiModelProperty(value= "单位") private String altme; private String unit; /** * 托盘条码 src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
@@ -16,17 +16,17 @@ public static class LocDetlAdjust { // 产品号 private String matnr; private String matNo; // 变更数量 private Double count; public String getMatnr() { return matnr; public String getMatNo() { return matNo; } public void setMatnr(String matnr) { this.matnr = matnr; public void setMatNo(String matNo) { this.matNo = matNo; } public Double getCount() { src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -35,7 +35,7 @@ private String locNo; // 产品号 private String matnr; private String matNo; // 数量 private Double count; @@ -48,12 +48,12 @@ this.locNo = locNo; } public String getMatnr() { return matnr; public String getMatNo() { return matNo; } public void setMatnr(String matnr) { this.matnr = matnr; public void setMatNo(String matNo) { this.matNo = matNo; } public Double getCount() { src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -18,13 +18,13 @@ Integer getStockOutPageCount(Map<String, Object> map); @Update("update asr_loc_detl set anfme=#{anfme}, modi_time = getDate() where loc_no = #{locNo} and matnr = #{matnr}") int updateAnfme(Double anfme, String locNo, String matnr); @Update("update asr_loc_detl set qty=#{qty}, modi_time = getDate() where loc_no = #{locNo} and mat_no = #{matNo}") int updateAnfme(Double qty, String locNo, String matNo); @Update("update asr_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}") int updateLocNo(String newLocNo, String oldLocNo); @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC") List<String> selectSameDetlToday(String matnr); @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.mat_no = #{matNo} AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC") List<String> selectSameDetlToday(String matNo); } src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -11,5 +11,5 @@ @Mapper @Repository public interface WrkDetlMapper extends BaseMapper<WrkDetl> { List<WrkDetl> queryWrkDetl(@Param("matnr") String matnr,@Param("locNo") String locNo); List<WrkDetl> queryWrkDetl(@Param("matNo") String matNo,@Param("locNo") String locNo); } src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -13,15 +13,15 @@ /** * 修改库存明细数量,如果数量为0,则删除记录 */ boolean updateAnfme(Double anfme, String locNo, String matnr); boolean updateAnfme(Double qty, String locNo, String matNo); boolean updateLocNo(String newLocNo, String oldLocNo); /** * 获取当天相同规格货物的深库位号 * @param matnr 产品号 * @param matNo 产品号 * @return locNo 库位号 */ List<String> getSameDetlToday(String matnr); List<String> getSameDetlToday(String matNo); } src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -10,5 +10,5 @@ void createWorkDetail(Integer workNo, List<MatCodeCountDto> matCodeCountDtos, String barcode, Long userId); List<WrkDetl> queryWrkDetl(String matnr, String locNo); List<WrkDetl> queryWrkDetl(String matNo, String locNo); } src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -21,11 +21,11 @@ } @Override public boolean updateAnfme(Double anfme, String locNo, String matnr) { if (anfme <= 0) { return delete(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", matnr)); public boolean updateAnfme(Double qty, String locNo, String matNo) { if (qty <= 0) { return delete(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("mat_no", matNo)); } else { int res = baseMapper.updateAnfme(anfme, locNo, matnr); int res = baseMapper.updateAnfme(qty, locNo, matNo); return res > 0; } } @@ -36,8 +36,8 @@ } @Override public List<String> getSameDetlToday(String matnr) { return this.baseMapper.selectSameDetlToday(matnr); public List<String> getSameDetlToday(String matNo) { return this.baseMapper.selectSameDetlToday(matNo); } } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -48,7 +48,7 @@ WaitPakin waitPakin = new WaitPakin(); waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setStatus("Y"); // 状态 waitPakin.setAnfme(combMat.getCount()); // 数量 waitPakin.setQty(combMat.getCount()); // 数量 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(new Date()); src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -136,10 +136,10 @@ // 获取库位明细 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatNo(), paramLocDetl.getCount())) { LocDetl sqlParam = new LocDetl(); sqlParam.setLocNo(paramLocDetl.getLocNo()); sqlParam.setMatnr(paramLocDetl.getMatnr()); sqlParam.setMatNo(paramLocDetl.getMatNo()); LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam)); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } @@ -220,8 +220,8 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount(); wrkDetl.setAnfme(anfme); // 数量 Double qty = ioType==101?detlDto.getLocDetl().getQty():detlDto.getCount(); wrkDetl.setQty(qty); // 数量 VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 版本控制 wrkDetl.setAppeTime(new Date()); wrkDetl.setAppeUser(userId); @@ -372,12 +372,12 @@ // 获取库位明细 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr())) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatNo())) { LocDetl sqlParam = new LocDetl(); sqlParam.setLocNo(paramLocDetl.getLocNo()); sqlParam.setMatnr(paramLocDetl.getMatnr()); sqlParam.setMatNo(paramLocDetl.getMatNo()); LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam)); if (null != one) locDetlDtos.add(new LocDetlDto(one, one.getAnfme())); if (null != one) locDetlDtos.add(new LocDetlDto(one, one.getQty())); } } if (!locDetlDtos.isEmpty()) { @@ -434,7 +434,7 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); wrkDetl.setAnfme(locDetl.getAnfme()); wrkDetl.setQty(locDetl.getQty()); VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 wrkDetl.setAppeTime(new Date()); wrkDetl.setAppeUser(userId); @@ -505,22 +505,22 @@ throw new CoolException("库位不存在"); } for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) { if (Cools.isEmpty(adjust.getMatnr())) { if (Cools.isEmpty(adjust.getMatNo())) { throw new CoolException(BaseRes.PARAM); } LocDetl sqlParam = new LocDetl(); sqlParam.setLocNo(locMast.getLocNo()); sqlParam.setMatnr(adjust.getMatnr()); sqlParam.setMatNo(adjust.getMatNo()); LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam)); // 保存新库存明细 if (Cools.isEmpty(one)) { if (adjust.getCount() == 0){ continue; } MatCode matCode = matCodeService.selectById(adjust.getMatnr()); MatCode matCode = matCodeService.selectById(adjust.getMatNo()); LocDetl locDetl = new LocDetl(); locDetl.setLocNo(locMast.getLocNo()); locDetl.setAnfme(adjust.getCount()); // 数量 locDetl.setQty(adjust.getCount()); // 数量 VersionUtils.setLocDetl(locDetl, matCode); // 版本控制 locDetl.setModiUser(userId); // 操作人员信息 locDetl.setModiTime(new Date()); @@ -532,14 +532,14 @@ // 保存调整记录 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatNo(locDetl.getMatnr()); adjDetl.setMatNo(locDetl.getMatNo()); adjDetl.setOriQty(0.0D); adjDetl.setAdjQty(adjust.getCount()); adjDetlService.save(adjDetl, userId); // 修改原库存明细 } else { // 如果数量修改,则更新库存明细 if (!adjust.getCount().equals(one.getAnfme())) { if (!adjust.getCount().equals(one.getQty())) { // 当数量被修改为 0 时,直接清除库存明细 if (adjust.getCount() == 0) { if (!locDetlService.delete(new EntityWrapper<>(one))) { @@ -547,20 +547,20 @@ } } else { LocDetl sqlParam1 = new LocDetl(); sqlParam1.setAnfme(adjust.getCount()); sqlParam1.setQty(adjust.getCount()); sqlParam1.setModiTime(new Date()); sqlParam1.setModiUser(userId); if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>() .eq("loc_no", locMast.getLocNo()) .eq("matnr", adjust.getMatnr()))) { .eq("mat_no", adjust.getMatNo()))) { throw new CoolException("修改库存明细失败"); } } // 保存调整记录 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locMast.getLocNo()); adjDetl.setMatNo(adjust.getMatnr()); adjDetl.setOriQty(one.getAnfme()); adjDetl.setMatNo(adjust.getMatNo()); adjDetl.setOriQty(one.getQty()); adjDetl.setAdjQty(adjust.getCount()); adjDetlService.save(adjDetl, userId); } src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -38,7 +38,7 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); wrkDetl.setAnfme(dto.getCount()); // 数量 wrkDetl.setQty(dto.getCount()); // 数量 VersionUtils.setWrkDetl(wrkDetl, matCode); // 版本控制 wrkDetl.setZpallet(barcode); // 托盘条码 wrkDetl.setAppeUser(userId); @@ -53,7 +53,7 @@ @Override @Transactional public List<WrkDetl> queryWrkDetl(String matnr, String locNo) { return baseMapper.queryWrkDetl(matnr, locNo); public List<WrkDetl> queryWrkDetl(String matNo, String locNo) { return baseMapper.queryWrkDetl(matNo, locNo); } } src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -77,9 +77,9 @@ } // 遍历工作明细,更新库存明细和入库通知档 for (WrkDetl wrkDetl : wrkDetls) { LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr())); LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("mat_no", wrkDetl.getMatNo())); if (null != locDetl) { boolean res = locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr()); boolean res = locDetlService.updateAnfme(wrkDetl.getQty(), wrkMast.getLocNo(), wrkDetl.getMatNo()); if (!res) { exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); } @@ -99,8 +99,8 @@ setParam.setIoStatus("Y"); boolean updateRes = waitPakinService.update(setParam , new EntityWrapper<WaitPakin>().eq("zpallet", wrkDetl.getZpallet()) .eq("matnr", wrkDetl.getMatnr()) .eq("anfme", wrkDetl.getAnfme())); .eq("mat_no", wrkDetl.getMatNo()) .eq("qty", wrkDetl.getQty())); if (!updateRes && updateRes) { exceptionHandle("全板入库 ===>> 更新入库通知档失败;[workNo={0}]", wrkMast.getWrkNo()); } @@ -127,9 +127,9 @@ } for (WrkDetl wrkDetl:wrkDetls53) { // 修改库存明细数量,如果工作明细数量为0时,删除库存明细 LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr())); LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("mat_no", wrkDetl.getMatNo())); if (null != locDetl) { if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) { if (!locDetlService.updateAnfme(locDetl.getQty() - wrkDetl.getQty(), locMast.getLocNo(), wrkDetl.getMatNo())) { exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); } // todo:luxiaotao 3)修改出库通知档 status ==> Y @@ -155,10 +155,10 @@ } // 修改库存明细数量,如无库存,曾新增 for (WrkDetl wrkDetl:wrkDetls54) { LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr())); LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("mat_no", wrkDetl.getMatNo())); if (null != locDetl) { if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) { exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); if (!locDetlService.updateAnfme(wrkDetl.getQty(), locMast.getLocNo(), wrkDetl.getMatNo())) { exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matNo={1}]", wrkMast.getWrkNo(), wrkDetl.getMatNo()); } } else { locDetl = new LocDetl(); @@ -167,7 +167,7 @@ locDetl.setModiTime(now); locDetl.setAppeTime(now); if (!locDetlService.insert(locDetl)) { exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matNo={1}]", wrkMast.getWrkNo(), wrkDetl.getMatNo()); } } // todo:luxiaotao 3)修改出库通知档 status ==> Y src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -14,51 +14,55 @@ // 业务 ---------------------------------------------------------------------- public static void setWrkDetl(WrkDetl wrkDetl, MatCode matCode) { wrkDetl.setMatnr(matCode.getMatNo()); // 产品编号 wrkDetl.setMaktx(matCode.getMatName()); // 产品描述 wrkDetl.setLgnum(matCode.getStr2()); // 规格 wrkDetl.setColor(matCode.getStr3()); // 助记码 wrkDetl.setAltme(matCode.getStr1()); // 单位 wrkDetl.setBname(matCode.getStr4()); // 库位名称 wrkDetl.setMatNo(matCode.getMatNo()); // 产品编码 wrkDetl.setMatName(matCode.getMatName()); // 产品名称 wrkDetl.setSpecs(matCode.getSpecs()); // 规格 wrkDetl.setUnit(matCode.getUnit()); // 单位 wrkDetl.setSize(matCode.getSize()); // 尺寸 wrkDetl.setColor(matCode.getColor()); // 颜色 wrkDetl.setWeight(matCode.getWeight()); // 单重 } public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) { wrkDetl.setMatnr(locDetl.getMatnr()); // 产品编号 wrkDetl.setMaktx(locDetl.getMaktx()); // 产品描述 wrkDetl.setLgnum(locDetl.getLgnum()); // 规格 wrkDetl.setColor(locDetl.getColor()); // 助记码 wrkDetl.setBname(locDetl.getBname()); // 库位名称 wrkDetl.setAltme(locDetl.getAltme()); // 单位 wrkDetl.setMatNo(locDetl.getMatNo()); // 产品编号 wrkDetl.setMatName(locDetl.getMatName()); // 产品描述 wrkDetl.setSpecs(locDetl.getSpecs()); // 规格 wrkDetl.setUnit(locDetl.getUnit()); // 单位 wrkDetl.setSize(locDetl.getSize()); // 尺寸 wrkDetl.setColor(locDetl.getColor()); // 颜色 wrkDetl.setWeight(locDetl.getWeight()); // 单重 wrkDetl.setZpallet(locDetl.getZpallet()); // 托盘条码 } public static void setLocDetl(LocDetl locDetl, MatCode matCode) { locDetl.setMatnr(matCode.getMatNo()); // 产品编号 locDetl.setMaktx(matCode.getMatName()); // 产品描述 locDetl.setLgnum(matCode.getStr2()); // 规格 locDetl.setColor(matCode.getStr3()); // 助记码 locDetl.setBname(matCode.getStr4()); // 库位名称 locDetl.setAltme(matCode.getStr1()); // 单位 locDetl.setMatNo(matCode.getMatNo()); // 产品编号 locDetl.setMatName(matCode.getMatName()); // 产品描述 locDetl.setSpecs(matCode.getSpecs()); // 规格 locDetl.setUnit(matCode.getUnit()); // 单位 locDetl.setSize(matCode.getSize()); // 尺寸 locDetl.setColor(matCode.getColor()); // 颜色 locDetl.setWeight(matCode.getWeight()); // 单重 } public static void setLocDetl(LocDetl locDetl, WrkDetl wrkDetl) { locDetl.setMatnr(wrkDetl.getMatnr()); // 产品编号 locDetl.setMaktx(wrkDetl.getMaktx()); // 产品描述 locDetl.setLgnum(wrkDetl.getLgnum()); // 规格 locDetl.setColor(wrkDetl.getColor()); // 助记码 locDetl.setBname(wrkDetl.getBname()); // 库位名称 locDetl.setAnfme(wrkDetl.getAnfme()); // 数量 locDetl.setAltme(wrkDetl.getAltme()); // 单位 locDetl.setMatNo(wrkDetl.getMatNo()); // 产品编号 locDetl.setMatName(wrkDetl.getMatName()); // 产品描述 locDetl.setSpecs(wrkDetl.getSpecs()); // 规格 locDetl.setUnit(wrkDetl.getUnit()); // 单位 locDetl.setSize(wrkDetl.getSize()); // 尺寸 locDetl.setColor(wrkDetl.getColor()); // 颜色 locDetl.setQty(wrkDetl.getQty()); // 数量 locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码 } public static void setWaitPakIn(WaitPakin waitPakIn, MatCode matCode) { waitPakIn.setMatnr(matCode.getMatNo()); // 产品编号 waitPakIn.setMaktx(matCode.getMatName()); // 产品描述 waitPakIn.setLgnum(matCode.getStr2()); // 规格 waitPakIn.setColor(matCode.getStr3()); // 助记码 waitPakIn.setAltme(matCode.getStr1()); // 单位 waitPakIn.setBname(matCode.getStr4()); // 库位名称 waitPakIn.setMatNo(matCode.getMatNo()); // 产品编号 waitPakIn.setMatName(matCode.getMatName()); // 产品描述 waitPakIn.setSpecs(matCode.getSpecs()); // 规格 waitPakIn.setUnit(matCode.getUnit()); // 单位 waitPakIn.setSize(matCode.getSize()); // 尺寸 waitPakIn.setColor(matCode.getColor()); // 颜色 waitPakIn.setWeight(matCode.getWeight()); // 单重 } // excel ---------------------------------------------------------------------- src/main/java/com/zy/common/CodeBuilder.java
@@ -15,11 +15,11 @@ // generator.password="xltys1995"; // generator.table="sys_host"; // sqlserver generator.url="127.0.0.1:1433;databasename=jsasrs"; generator.url="127.0.0.1:1433;databasename=whthasrs"; generator.username="sa"; generator.password="sa@123"; generator.table="asr_bas_plcerror"; generator.packagePath="com.zy.asrs"; generator.table="ints_wait_matin"; generator.packagePath="com.zy.ints"; generator.build(); } src/main/java/com/zy/common/model/MobileLocDetlVo.java
@@ -7,9 +7,9 @@ private String locNo; private String matnr; private String matNo; private String maktx; private String matName; private Double count; @@ -23,20 +23,20 @@ this.locNo = locNo; } public String getMatnr() { return matnr; public String getMatNo() { return matNo; } public void setMatnr(String matnr) { this.matnr = matnr; public void setMatNo(String matNo) { this.matNo = matNo; } public String getMaktx() { return maktx; public String getMatName() { return matName; } public void setMaktx(String maktx) { this.maktx = maktx; public void setMatName(String matName) { this.matName = matName; } public Double getCount() { src/main/java/com/zy/common/model/OutLocDto.java
@@ -50,7 +50,7 @@ int sameNumber = 0; for (LocDetl locDetl : locDetls) { for (LocDetlDto dto : this.locDetlDtos) { if (dto.getLocDetl().getMatnr().equals(locDetl.getMatnr()) && dto.getCount().equals(locDetl.getAnfme())) { if (dto.getLocDetl().getMatNo().equals(locDetl.getMatNo()) && dto.getCount().equals(locDetl.getQty())) { sameNumber++; break; } src/main/resources/UpdateThread.cs
File was deleted src/main/resources/mapper/LocDetlMapper.xml
@@ -5,16 +5,17 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocDetl"> <result column="loc_no" property="locNo" /> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="lgnum" property="lgnum" /> <result column="type" property="type" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> <result column="weight" property="weight" /> <result column="supplier" property="supplier" /> <result column="warehouse" property="warehouse" /> <result column="brand" property="brand" /> <result column="anfme" property="anfme" /> <result column="altme" property="altme" /> <result column="qty" property="qty" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> <result column="memo" property="memo" /> @@ -28,17 +29,17 @@ <if test="loc_no!=null and loc_no!='' "> and a.loc_no like '%' + #{loc_no} + '%' </if> <if test="matnr!=null and matnr!='' "> and a.matnr like '%' + #{matnr} + '%' <if test="mat_no!=null and mat_no!='' "> and a.mat_no like '%' + #{mat_no} + '%' </if> <if test="maktx!=null and maktx!='' "> and a.maktx like '%' + #{maktx} + '%' <if test="mat_name!=null and mat_name!='' "> and a.mat_name like '%' + #{mat_name} + '%' </if> <if test="anfme!=null and anfme!='' "> and a.anfme like '%' + #{anfme} + '%' <if test="qty!=null and qty!='' "> and a.qty = #{qty} </if> <if test="altme!=null and altme!='' "> and a.altme like '%' + #{altme} + '%' and a.unit like '%' + #{unit} + '%' </if> <if test="startTime!=null and endTime!=null"> and a.modi_time between #{startTime} and #{endTime} @@ -49,7 +50,7 @@ select * from ( select ROW_NUMBER() over (order by a.appe_time,a.matnr,a.loc_no) as row, ROW_NUMBER() over (order by a.appe_time,a.mat_no,a.loc_no) as row, a.* from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no src/main/resources/mapper/ViewStayTimeMapper.xml
@@ -8,8 +8,8 @@ <if test="loc_no!=null and loc_no!='' "> and loc_no like '%' + #{loc_no} + '%' </if> <if test="matnr!=null and matnr!='' "> and matnr like '%' + #{matnr} + '%' <if test="mat_no!=null and mat_no!='' "> and mat_no like '%' + #{mat_no} + '%' </if> <if test="stay_time!=null and stay_time!='' "> and stay_time > #{stay_time} @@ -17,17 +17,15 @@ <!-- <if test="appe_time!=null and appe_time!='' "> --> <!-- and appe_time > #{appe_time} --> <!-- </if> --> <if test="maktx!=null and maktx!='' "> and (maktx like '%' + #{maktx} + '%' or lgnum like '%' + #{maktx} + '%' or tbnum like '%' + #{maktx} + '%' or tbpos like '%' + #{maktx} + '%' or zmatid like '%' + #{maktx} + '%' or werks like '%' + #{maktx} + '%' or anfme like '%' + #{maktx} + '%' or altme like '%' + #{maktx} + '%' or zpallet like '%' + #{maktx} + '%' or bname like '%' + #{maktx} + '%' <if test="mat_name!=null and mat_name!='' "> and (mat_name like '%' + #{mat_name} + '%' or specs like '%' + #{mat_name} + '%' or size like '%' + #{mat_name} + '%' or color like '%' + #{mat_name} + '%' or weight like '%' + #{mat_name} + '%' or qty like '%' + #{qty} + '%' or unit like '%' + #{mat_name} + '%' or zpallet like '%' + #{mat_name} + '%' ) </if> <if test="begin_date!=null and begin_date!='' "> @@ -45,7 +43,7 @@ <!-- 分页查询所有信息 --> <select id="queryViewStayTimeList" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean"> select * from ( select *,ROW_NUMBER() OVER(Order by appe_time,loc_no,matnr) as rowid select *,ROW_NUMBER() OVER(Order by appe_time,loc_no,mat_no) as rowid from asr_stk_staytime_view <where> 1=1 src/main/resources/mapper/ViewWorkInMapper.xml
@@ -8,22 +8,19 @@ <if test="loc_no!=null and loc_no!='' "> and loc_no like '%' + #{loc_no} + '%' </if> <if test="matnr!=null and matnr!='' "> and matnr like '%' + #{matnr} + '%' <if test="mat_no!=null and mat_no!='' "> and mat_no like '%' + #{mat_no} + '%' </if> <if test="maktx!=null and maktx!='' "> and (maktx like '%' + #{maktx} + '%' or matnr like '%' + #{maktx} + '%' or lgnum like '%' + #{maktx} + '%' or tbnum like '%' + #{maktx} + '%' or tbpos like '%' + #{maktx} + '%' or zmatid like '%' + #{maktx} + '%' or maktx like '%' + #{maktx} + '%' or werks like '%' + #{maktx} + '%' or anfme like '%' + #{maktx} + '%' or altme like '%' + #{maktx} + '%' or zpallet like '%' + #{maktx} + '%' or bname like '%' + #{maktx} + '%' <if test="mat_name!=null and mat_name!='' "> and (loc_no like '%' + #{mat_name} + '%' or mat_name like '%' + #{mat_name} + '%' or specs like '%' + #{mat_name} + '%' or size like '%' + #{mat_name} + '%' or color like '%' + #{mat_name} + '%' or weight like '%' + #{mat_name} + '%' or qty like '%' + #{qty} + '%' or unit like '%' + #{mat_name} + '%' or zpallet like '%' + #{mat_name} + '%' ) </if> <if test="begin_date!=null and begin_date!='' "> @@ -42,22 +39,19 @@ <if test="loc_no!=null and loc_no!='' "> and loc_no like '%' + #{loc_no} + '%' </if> <if test="matnr!=null and matnr!='' "> and matnr like '%' + #{matnr} + '%' <if test="mat_no!=null and mat_no!='' "> and mat_no like '%' + #{mat_no} + '%' </if> <if test="maktx!=null and maktx!='' "> and (maktx like '%' + #{maktx} + '%' or matnr like '%' + #{maktx} + '%' or lgnum like '%' + #{maktx} + '%' or tbnum like '%' + #{maktx} + '%' or tbpos like '%' + #{maktx} + '%' or zmatid like '%' + #{maktx} + '%' or maktx like '%' + #{maktx} + '%' or werks like '%' + #{maktx} + '%' or anfme like '%' + #{maktx} + '%' or altme like '%' + #{maktx} + '%' or zpallet like '%' + #{maktx} + '%' or bname like '%' + #{maktx} + '%' <if test="mat_name!=null and mat_name!='' "> and (loc_no like '%' + #{mat_name} + '%' or mat_name like '%' + #{mat_name} + '%' or specs like '%' + #{mat_name} + '%' or size like '%' + #{mat_name} + '%' or color like '%' + #{mat_name} + '%' or weight like '%' + #{mat_name} + '%' or qty like '%' + #{qty} + '%' or unit like '%' + #{mat_name} + '%' or zpallet like '%' + #{mat_name} + '%' ) </if> <if test="begin_date!=null and begin_date!='' "> src/main/resources/mapper/WaitPakinLogMapper.xml
@@ -4,16 +4,16 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WaitPakinLog"> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="lgnum" property="lgnum" /> <result column="type" property="type" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> <result column="supplier" property="supplier" /> <result column="warehouse" property="warehouse" /> <result column="brand" property="brand" /> <result column="anfme" property="anfme" /> <result column="altme" property="altme" /> <result column="qty" property="qty" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> <result column="loc_no" property="locNo" /> src/main/resources/mapper/WaitPakinMapper.xml
@@ -4,16 +4,16 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WaitPakin"> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="lgnum" property="lgnum" /> <result column="type" property="type" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> <result column="supplier" property="supplier" /> <result column="warehouse" property="warehouse" /> <result column="brand" property="brand" /> <result column="anfme" property="anfme" /> <result column="altme" property="altme" /> <result column="qty" property="qty" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> <result column="loc_no" property="locNo" /> src/main/resources/mapper/WrkDetlLogMapper.xml
@@ -6,16 +6,17 @@ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkDetlLog"> <result column="wrk_no" property="wrkNo" /> <result column="io_time" property="ioTime" /> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="lgnum" property="lgnum" /> <result column="type" property="type" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> <result column="supplier" property="supplier" /> <result column="warehouse" property="warehouse" /> <result column="weight" property="weight" /> <result column="bill_no" property="billNo" /> <result column="seq_no" property="seqNo" /> <result column="brand" property="brand" /> <result column="anfme" property="anfme" /> <result column="altme" property="altme" /> <result column="qty" property="qty" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> <result column="memo" property="memo" /> src/main/resources/mapper/WrkDetlMapper.xml
@@ -6,16 +6,17 @@ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkDetl"> <result column="wrk_no" property="wrkNo" /> <result column="io_time" property="ioTime" /> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="lgnum" property="lgnum" /> <result column="type" property="type" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> <result column="supplier" property="supplier" /> <result column="warehouse" property="warehouse" /> <result column="weight" property="weight" /> <result column="bill_no" property="billNo" /> <result column="seq_no" property="seqNo" /> <result column="brand" property="brand" /> <result column="anfme" property="anfme" /> <result column="altme" property="altme" /> <result column="qty" property="qty" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> <result column="memo" property="memo" /> @@ -26,8 +27,8 @@ </resultMap> <select id="queryWrkDetl" resultMap="BaseResultMap"> select a.wrk_no, a.matnr, a.maktx, a.anfme select a.wrk_no, a.mat_no, a.mat_name, a.qty from asr_wrk_detl a left join asr_wrk_mast b on a.wrk_no = b.wrk_no where 1=1 and a.matnr = #{matnr,jdbcType=VARCHAR} and (b.loc_no = #{locNo,jdbcType=VARCHAR} or b.source_loc_no = #{locNo,jdbcType=VARCHAR}) where 1=1 and a.mat_no = #{matNo,jdbcType=VARCHAR} and (b.loc_no = #{locNo,jdbcType=VARCHAR} or b.source_loc_no = #{locNo,jdbcType=VARCHAR}) </select> </mapper> src/main/webapp/static/css/admin.css
New file @@ -0,0 +1,2 @@ /** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */ *{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif}body{color:#595959;background-color:#f5f7f9}.layui-layout-body{overflow:auto}.layui-layout-admin{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;-webkit-transition:left .3s,right .3s;transition:left .3s,right .3s}.layui-layout-admin .layui-header{position:absolute;top:0;left:0;right:0;height:50px;background-color:#fff;box-shadow:0 1px 0 0 rgba(0,0,0,.03);z-index:999}.layui-layout-admin .layui-header .layui-logo{color:#ddd;width:235px;line-height:50px;background-color:#191a23;box-shadow:1px 2px 2px 0 rgba(0,0,0,.05);position:relative;vertical-align:top;white-space:nowrap;display:inline-block;-webkit-transition:width .3s;transition:width .3s;overflow:hidden}.layui-layout-admin .layui-header .layui-logo img{height:28px;vertical-align:middle}.layui-layout-admin .layui-header .layui-logo cite{font-style:normal;vertical-align:middle}.layui-layout-admin .layui-header .layui-layout-left{padding:0;vertical-align:top;display:inline-block;position:static!important}.layui-layout-admin .layui-header .layui-layout-right{padding:0}.layui-layout-admin .layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{height:2px;top:0!important;background-color:#191a23}.layui-layout-admin .layui-header .layui-nav .layui-nav-item{line-height:50px;vertical-align:top}.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child{top:55px}.layui-layout-admin .layui-header .layui-nav-item .layui-icon{font-size:16px}.layui-layout-admin .layui-header a{color:#595959;padding:0 15px;cursor:pointer}.layui-layout-admin .layui-header a:hover{color:#595959}.layui-layout-admin .layui-header .layui-nav-child a{color:#595959;text-align:center}.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#8c8c8c transparent transparent}.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #8c8c8c}.layui-layout-admin .layui-header .layui-nav-img{width:26px;height:26px;margin-right:2px;vertical-align:middle}.layui-layout-admin .layui-header .layui-nav-img+cite{margin-right:3px;vertical-align:middle}.layui-layout-admin .layui-header .layui-badge-dot{right:8px;margin:-10px 0 0 0}.layui-layout-admin .layui-body{position:absolute;left:235px;top:50px;z-index:auto;overflow:auto;-webkit-transition:left .3s;transition:left .3s;-webkit-overflow-scrolling:touch}.admin-iframe{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.layui-fluid{padding:15px}.layui-layout-admin .layui-footer{position:absolute;left:235px;background:#fff;box-sizing:border-box;border-top:1px solid #f5f7f9;-webkit-transition:left .3s;transition:left .3s;overflow:hidden}.close-footer .layui-layout-admin .layui-footer{display:none}.close-footer .layui-layout-admin .layui-body{bottom:0}.layui-layout-admin .layui-side{position:absolute;top:50px;width:235px;background-color:#191a23;box-shadow:1px 2px 2px 0 rgba(0,0,0,.05);-webkit-transition:width .3s;transition:width .3s;-webkit-user-select:none;user-select:none;z-index:1000}.layui-layout-admin .layui-side .layui-side-scroll{width:255px;-webkit-transition:width .3s;transition:width .3s}.layui-layout-admin .layui-side .layui-nav{width:235px;background-color:transparent;-webkit-transition:width .3s;transition:width .3s}.layui-layout-admin .layui-side>.layui-side-scroll>.layui-nav:first-child{margin-top:10px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item>a{cursor:pointer;padding-top:5px;padding-bottom:5px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item a{-webkit-transition:color .3s,background-color .3s;transition:color .3s,background-color .3s}.layui-layout-admin .layui-side .layui-nav .layui-nav-more{right:15px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item>.layui-nav-child{position:static}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a{padding-left:50px;cursor:pointer}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a{padding-left:70px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:90px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:110px}@media screen and (min-width:769px){.layui-layout-admin.admin-nav-mini .layui-header .layui-logo{width:60px}.layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite{display:none}.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before{content:"\e66b"}.layui-layout-admin.admin-nav-mini .layui-body,.layui-layout-admin.admin-nav-mini .layui-footer{left:60px}.layui-layout-admin.admin-nav-mini .layui-side,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav{width:60px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a{overflow:visible}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a>cite,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a .layui-nav-more,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed>.layui-nav-child{display:none!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:rgba(0,0,0,.3)}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a>.layui-icon{font-size:16px;-webkit-transition:font-size .3s;transition:font-size .3s}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child{position:fixed;top:60px;left:60px;padding:5px;min-width:150px;display:block!important;background:transparent!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{content:'';position:absolute;right:5px;left:5px;bottom:0;top:0;border-radius:4px;background:#191a23;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:first-child>.layui-nav-child{margin-top:-5px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:last-child>.layui-nav-child.show-top{margin-top:5px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a{padding:0 20px!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(255,255,255,.7);right:7px;margin-top:-6px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg);width:6px;height:10px;right:10px;margin-top:-5px;font-weight:600}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before{content:"\e602";left:-4px;top:-2px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before{-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@media screen and (max-width:768px){.layui-layout-admin{left:-235px}.layui-layout-admin .layui-side,.layui-layout-admin .layui-header .layui-logo{box-shadow:none!important}.layui-layout-admin .layui-header .layui-icon-shrink-right:before{content:"\e66b"}.layui-layout-admin.admin-nav-mini{left:0;right:-235px;position:fixed}.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before{content:"\e668"}.layui-layout-admin.admin-nav-mini .layui-side,.layui-layout-admin.admin-nav-mini .layui-header .layui-logo{box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layui-layout-admin.admin-nav-mini .site-mobile-shade{position:absolute;top:0;right:0;bottom:0;left:235px;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;z-index:1000}}.ew-anim-drop-in{-webkit-animation:ewTransitionDropIn .3s ease-in-out;animation:ewTransitionDropIn .3s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}@-webkit-keyframes ewTransitionDropIn{from{opacity:0;-webkit-transform:scale(0.8)}to{opacity:1;-webkit-transform:scale(1)}}@keyframes ewTransitionDropIn{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}.layui-nav-tree .layui-nav-bar{display:none}.layui-nav-tree>.layui-nav-item>a:before{content:"";position:absolute;top:0;left:0;bottom:100%;width:4px;background-color:#009688;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree>.layui-nav-item:hover>a:before{bottom:0}.layui-nav-tree .layui-nav-item a:hover{background-color:transparent}.layui-nav-tree .layui-this>a:hover{background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-this{background:transparent}.layui-nav-tree .layui-nav-item .layui-nav-child{padding:5px 0;background-color:rgba(0,0,0,.3)!important}.layui-nav-tree.arrow2 .layui-nav-more{font-family:layui-icon!important;font-size:12px;font-weight:600;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;line-height:normal;border:0;margin:-3px 0 0 0;padding:0;width:10px;height:6px;top:50%;display:inline-block;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree.arrow2 .layui-nav-more:before{content:"\e61a";position:absolute;right:-1px;top:-4px}.layui-nav-tree.arrow2 .layui-nav-itemed>a>.layui-nav-more{-ms-transform:rotate(-180deg);-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-o-transform:rotate(-180deg);transform:rotate(-180deg)}.layui-nav-tree.arrow3 .layui-nav-more{font-family:layui-icon!important;font-size:12px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;line-height:normal;border:0;margin:-5px 0 0 0;padding:0;width:10px;height:10px;top:50%;display:inline-block;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree.arrow3 .layui-nav-more:before{content:"\e654";position:absolute;top:-2px;left:-1px}.layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more{-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{content:'';width:8px;height:2px;background-color:rgba(255,255,255,.7);top:4px;left:1px;-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.layui-layout-admin .layui-body>.layui-tab{position:absolute;top:0;left:0;right:0;bottom:0;margin:0}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content{position:absolute;left:0;right:0;bottom:0;top:40px;padding:0}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item{position:absolute;bottom:0;right:0;top:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;display:block;visibility:hidden;opacity:0;filter:Alpha(opacity=0)}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item.layui-show{visibility:visible;opacity:1;filter:Alpha(opacity=100)}.layui-layout-admin.admin-side-flexible .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item{display:none}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{height:40px;line-height:40px;padding:0 80px 0 40px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);position:absolute;top:0;left:0;right:0;border:0;overflow:hidden;-webkit-transition:none;transition:none;z-index:998}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{min-width:auto;max-width:160px;line-height:40px;padding:0 30px 0 15px;border-right:1px solid #f6f6f6;overflow:hidden;text-overflow:ellipsis;vertical-align:top;-webkit-transition:background-color .2s;transition:background-color .2s}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this,.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#f6f6f6}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{height:2px;border:0;border-radius:0;background-color:#191a23}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:first-child{padding:0 15px}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li cite{font-style:normal}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title .layui-tab-bar{display:none}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close{width:16px;height:16px;line-height:16px;font-size:12px;border-radius:50%;position:absolute;top:12px;right:8px;-webkit-transition:background-color .2s,color .2s;transition:background-color .2s,color .2s}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:first-child .layui-tab-close{display:none}.admin-tabs-control{position:absolute;top:0;width:40px;height:40px;line-height:40px;background-color:#fff;border-left:1px solid #f6f6f6;-webkit-transition:background-color .2s;transition:background-color .2s;text-align:center;cursor:pointer;z-index:998}.admin-tabs-control:hover{background-color:#f6f6f6}.admin-tabs-control.layui-icon-prev{left:0;border-left:none;border-right:1px solid #f6f6f6}.admin-tabs-control.layui-icon-next{right:40px}.admin-tabs-control.layui-icon-down{right:0}.admin-tabs-control>.layui-nav,.admin-tabs-control>.layui-nav .layui-nav-item{position:absolute;top:0;left:0;padding:0;width:100%;height:100%;background:transparent}.admin-tabs-control>.layui-nav .layui-nav-child{right:0;top:40px;left:auto}.admin-tabs-control>.layui-nav .layui-nav-child a{color:#595959}.admin-tabs-control>.layui-nav .layui-nav-bar,.admin-tabs-control>.layui-nav .layui-nav-more{display:none}.layui-body-header{padding:0 20px;height:40px;line-height:40px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-sizing:border-box;position:absolute;left:0;right:0;z-index:998;display:none}.layui-body-header.show{display:block}.layui-body-header-title{padding-left:6px;border-left:4px solid #009688}.layui-body-header.show+div{position:absolute;left:0;right:0;top:40px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}.hide-body-title .layui-body-header.show{display:none}.hide-body-title .layui-body-header.show+div{top:0}.layui-layout-admin .layui-body>.page-loading,.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,.layui-layout-admin .layui-body>div>iframe[lay-id]+.page-loading{z-index:997}.layui-layer.layui-layer-adminRight{bottom:0;top:50px!important;border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important;overflow:auto}.layui-layer.layui-layer-adminRight>.layui-layer-content,.layui-layer.layui-layer-adminRight>.layui-layer-content>iframe{height:100%!important}.layui-layer.layui-layer-adminRight>.layui-layer-title+.layui-layer-content{position:absolute;top:43px;left:0;right:0;bottom:0;height:auto!important}.layui-anim-rl{-webkit-animation-name:layui-rl;animation-name:layui-rl}@-webkit-keyframes layui-rl{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes layui-rl{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}.layui-anim-lr,.layui-anim-rl.layer-anim-close{-webkit-animation-name:layui-lr;animation-name:layui-lr}@-webkit-keyframes layui-lr{from{-webkit-transform:translate3d(0,0,0);opacity:1}to{-webkit-transform:translate3d(100%,0,0);opacity:1}}@keyframes layui-lr{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.layui-layer.layui-layer-admin{border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important}.layui-layer.layui-layer-admin .layui-layer-title{color:#fff;height:50px;line-height:50px;background-color:#191a23;border:0}.layui-layer.layui-layer-admin .layui-layer-setwin{top:17px}.layui-layer.layui-layer-admin .layui-layer-setwin a{color:#fff;font-size:16px;font-style:normal;font-family:layui-icon!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1{background:0;margin-top:-1px}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1:before{content:"\1006"}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#ddd}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max{font-size:14px;padding-top:1px;background:0}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max:before{content:"\e622"}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-maxmin:before{content:"\e758"}.layui-layer.layui-layer-admin .layui-layer-btn{padding-bottom:15px}.layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#009688;background-color:#009688}.layui-layer.layui-layer-admin .layui-layer-btn a{height:34px;line-height:34px}.layui-layer-admin{max-width:100%}.layui-layer-iframe .layui-layer-content{overflow:auto;-webkit-overflow-scrolling:touch}@media screen and (max-width:768px){.layui-layer-admin{max-width:98%;max-width:-webkit-calc(100% - 30px);max-width:-moz-calc(100% - 30px);max-width:calc(100% - 30px);width:max-content;left:0!important;right:0!important;margin:auto!important;margin-bottom:15px!important}.layui-layer-admin[area]{max-width:100%;margin-bottom:0!important}}body .layui-layer-msg{border:0;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,0.1)}body .layui-layer-load{background:transparent}.page-loading{position:absolute;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;z-index:19891017;background-color:#fff}body>.page-loading{position:fixed;background-color:#f5f7f9}.layui-layout-admin>.layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,.layui-layout-admin>.layui-body>.page-loading,.layui-layout-admin>.layui-body>div>iframe[lay-id]+.page-loading{background-color:#f5f7f9}.layui-layout-admin>.layui-body>.layui-body-header.show+div+.page-loading{top:40px;height:auto}.page-no-scroll{overflow-x:hidden!important;overflow-y:hidden!important;min-height:80px}.rubik-loader,.ball-loader,.signal-loader,.layui-loader{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ball-loader>span,.signal-loader>span{background-color:#4aca85;display:inline-block}.ball-loader>span:nth-child(1),.ball-loader.sm>span:nth-child(1),.signal-loader>span:nth-child(1),.signal-loader.sm>span:nth-child(1){-webkit-animation-delay:0s;animation-delay:0s}.ball-loader>span:nth-child(2),.ball-loader.sm>span:nth-child(2),.signal-loader>span:nth-child(2),.signal-loader.sm>span:nth-child(2){-webkit-animation-delay:.1s;animation-delay:.1s}.ball-loader>span:nth-child(3),.ball-loader.sm>span:nth-child(3),.signal-loader>span:nth-child(3),.signal-loader.sm>span:nth-child(3){-webkit-animation-delay:.15s;animation-delay:.15s}.ball-loader>span:nth-child(4),.ball-loader.sm>span:nth-child(4),.signal-loader>span:nth-child(4),.signal-loader.sm>span:nth-child(4){-webkit-animation-delay:.2s;animation-delay:.2s}.rubik-loader{width:64px;height:64px;background-image:url(img/ic_loading.gif);background-repeat:no-repeat;background-position:center;background-size:contain}.rubik-loader.sm{width:50px;height:50px}.ball-loader>span{width:20px;height:20px;margin:0 3px;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:1s ball-load ease-in-out infinite;animation:ball-load 1s ease-in-out infinite}@-webkit-keyframes ball-load{0%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}100%{-webkit-transform:scale(0)}}@keyframes ball-load{0%{transform:scale(0)}50%{transform:scale(1)}100%{transform:scale(0)}}.ball-loader.sm>span{width:15px;height:15px;margin:0 2px}.signal-loader{width:50px;height:22px}.signal-loader>span{width:8px;height:0;position:absolute;bottom:0;left:0;margin:0;-webkit-animation:signal-load 1s infinite;animation:signal-load 1s infinite}.signal-loader>span:nth-child(2){left:14px}.signal-loader>span:nth-child(3){left:28px}.signal-loader>span:nth-child(4){left:42px}@-webkit-keyframes signal-load{0%{height:0}50%{height:22px}100%{height:0}}@keyframes signal-load{0%{height:0}50%{height:22px}100%{height:0}}.signal-loader.sm{width:32px;height:15px}.signal-loader.sm>span{width:5px;-webkit-animation:signal-load-sm 1s infinite;animation:signal-load-sm 1s infinite}.signal-loader.sm>span:nth-child(2){left:9px}.signal-loader.sm>span:nth-child(3){left:18px}.signal-loader.sm>span:nth-child(4){left:27px}@-webkit-keyframes signal-load-sm{0%{height:0}50%{height:15px}100%{height:0}}@keyframes signal-load-sm{0%{height:0}50%{height:15px}100%{height:0}}.layui-loader .layui-icon{font-size:36px;color:#bbb}.layui-loader.sm .layui-icon{font-size:30px}.layui-form.toolbar .layui-form-item,.layui-form.toolbar .layui-form-item .layui-inline>.layui-input-inline{margin-bottom:0}.layui-form.toolbar .layui-form-item .layui-inline{margin-bottom:10px}.toolbar+.layui-table,.layui-card-body>.layui-table,.toolbar+table+.layui-table-view,.layui-card-body>.layui-table-view,.toolbar+table+.ew-tree-table{margin:0}.mr0,.layui-form.toolbar .layui-form-item .layui-inline>.layui-input-inline{margin-right:0!important}.w-auto{width:auto!important}.model-form{padding:25px 30px 0 0}.model-form.no-padding{padding:0}.model-form .model-form-body{overflow-y:auto;padding:25px 30px 0 0;max-height:calc(100vh - 180px)}.model-form.no-padding .model-form-footer{padding-top:10px;padding-right:30px}.layui-form.model-form>.layui-form-item:last-child{margin-bottom:0;padding-bottom:20px}.layui-form-required:before{content:"*";display:inline-block;font-family:SimSun;margin-right:4px;font-size:14px;line-height:1;color:#ed4014}.layui-input,.layui-textarea{color:#595959}.layui-form-select .layui-input{padding-right:0}.layui-form-select-top .layui-form-select>dl{top:auto;bottom:42px}.ew-select-fixed .layui-form-selected dl{position:fixed;min-width:auto;bottom:auto;right:auto}body .layui-form-checked[lay-skin=primary] i,body .layui-form-checked[lay-skin=primary]:hover i{color:#fff}body .layui-form-checkbox[lay-skin=primary] span,body .layui-form-checkbox[lay-skin=primary]:hover span{background-color:transparent}body .layui-form-danger+.layui-form-select .layui-input,body .layui-input.layui-form-danger:focus,body .layui-textarea.layui-form-danger:focus{border-color:#ff5722!important}body .layui-laypage input.layui-input{height:30px;line-height:30px}body .layui-table-page .layui-laypage input.layui-input{height:26px;line-height:26px}body .layui-form-onswitch em{margin-left:3px;margin-right:18px}.layui-btn{-webkit-transition:background-color .2s;transition:background-color .2s}body .layui-btn.layui-btn-radius{border-radius:100px}.layui-btn-primary{color:#595959;border-color:#e6e6e6}.layui-btn-primary:hover{border-color:#bbb}.layui-btn-group .layui-btn-primary:hover{border-color:#e6e6e6}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #e6e6e6}body .layui-btn.layui-btn-disabled,body .layui-transfer-active .layui-btn.layui-btn-disabled{background-color:#fbfbfb!important;border-color:#e6e6e6!important;color:#c9c9c9!important}body .layui-btn.layui-btn-primary{background-color:#fff}body .layui-btn.layui-btn-normal{background-color:#1e9fff}body .layui-btn.layui-btn-warm{background-color:#ffb800}body .layui-btn.layui-btn-danger{background-color:#ff5722}.layui-btn-group>.layui-btn+.layui-btn{border-radius:0}.layui-btn-group>.layui-btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}body .layui-transfer-active .layui-btn{background-color:#5fb878!important;border-color:#5fb878!important;color:#fff!important}.btn-circle{width:50px;height:50px;line-height:50px;border-radius:50%;background:#009688;position:fixed;right:15px;bottom:15px;color:#fff;text-align:center;box-shadow:0 0 8px rgba(0,0,0,.2);cursor:pointer}.btn-circle:hover{color:#fff;opacity:.8}.btn-circle .layui-icon{font-size:24px}.icon-date,.date-icon{background-image:url(img/icon_date.png);background-repeat:no-repeat;background-position:right center;padding-right:28px}.icon-search{background-image:url(img/icon_search.png);background-repeat:no-repeat;background-position:right center;padding-right:26px}span.icon-text>.layui-icon,a.icon-text>.layui-icon,.layui-form-label.icon-text>.layui-icon{font-size:14px;margin:0 2px}.layui-btn.icon-btn{padding:0 10px}.layui-btn.layui-btn-sm.icon-btn{padding:0 6px}.bg-white,html.bg-white>body{background-color:white}[ew-href],[lay-tips]{cursor:pointer}.inline-block{display:inline-block}.pull-right{float:right}.pull-left{float:left}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary,.layui-link{color:#009688!important}.text-success{color:#5fb878!important}.text-warning{color:#ffb800!important}.text-danger{color:#ff5722!important}.text-info{color:#01aaed!important}.text-muted{color:#c2c2c2!important}.layui-text a:not(.layui-btn){color:#2d8cf0;cursor:pointer}.layui-text a:not(.layui-btn):hover{text-decoration:none}.ew-console-wrapper .layui-card{box-shadow:none;border-radius:4px}.layui-card-header{color:#595959}.lay-big-font{font-size:36px;line-height:36px;padding:5px 0 10px;overflow:hidden;white-space:nowrap;word-break:break-all;text-overflow:ellipsis}.no-scrollbar{overflow-x:hidden!important;overflow-y:hidden!important}input.layui-disabled,input.layui-disabled:hover,textarea.layui-disabled,textarea.layui-disabled:hover{color:#595959!important;background-color:#f6f6f6}.layui-input::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{color:#ccc}.layui-input::-moz-placeholder,.layui-textarea::-moz-placeholder{color:#ccc}.layui-input::-ms-input-placeholder,.layui-textarea::-ms-input-placeholder{color:#ccc}.dropdown-menu{display:inline-block}.dropdown-menu .dropdown-menu-nav{display:none}.dropdown-menu+.dropdown-menu,.layui-btn+.dropdown-menu,.dropdown-menu+.layui-btn{margin-left:10px}::-webkit-scrollbar{width:10px;height:10px;background:transparent}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:5px;background-color:#c1c1c1}::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8}.mini-bar::-webkit-scrollbar{width:6px;height:6px}.mini-bar::-webkit-scrollbar-thumb{border-radius:3px}@media screen and (max-width:768px){::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{border-radius:0}}#ew-map-select-map{height:450px}#ew-map-select-pois{height:450px;overflow-x:hidden;overflow-y:auto}.ew-map-select-search-list-item{padding:10px 30px 10px 15px;border-bottom:1px solid #e8e8e8;cursor:pointer;position:relative}.ew-map-select-search-list-item:hover{background:#f2f2f2}.ew-map-select-search-list-item:last-child{border-bottom:0}.ew-map-select-search-list-item .ew-map-select-search-list-item-title{font-size:14px;color:#262626}.ew-map-select-search-list-item .ew-map-select-search-list-item-address{font-size:12px;color:#595959;padding-top:5px}.ew-map-select-search-list-item-icon-ok{position:absolute;right:15px;top:50%;transform:translateY(-50%)}.ew-map-select-search-list-item-icon-ok .layui-icon{color:#3b74ff}.ew-map-select-tool{padding:5px 15px;box-shadow:0 1px 0 0 rgba(0,0,0,.05)}#ew-map-select-center-img{position:absolute;bottom:50%;left:50%;width:26px;margin-left:-13px}#ew-map-select-center-img2{position:absolute;left:50%;top:50%;font-size:12px;display:inline-block;margin-left:-6px;margin-top:-7px;color:#3b74ff}.bounceInDown{animation:bounceInDown 500ms;animation-direction:alternate;-webkit-animation:bounceInDown 500ms;-webkit-animation-direction:alternate}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%,to{-webkit-transform:translate3d(0,0,0)}25%{-webkit-transform:translate3d(0,-30px,0)}50%{-webkit-transform:translate3d(0,-15px,0)}75%{-webkit-transform:translate3d(0,-4px,0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%,to{transform:translate3d(0,0,0)}25%{transform:translate3d(0,-10px,0)}50%{transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,-10px,0)}}#ew-map-select-tips{position:absolute;z-index:999;background:#fff;max-height:430px;overflow:auto;top:48px;left:56px;width:280px;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2}#ew-map-select-tips .ew-map-select-search-list-item{padding:10px 15px 10px 35px}.ew-map-select-search-list-item-icon-search{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ew-map-select-search-list-item-icon-search .layui-icon{color:#8c8c8c}.table-tool-mini .layui-table-view{position:relative}.table-tool-mini .layui-table-tool{position:absolute;min-height:unset;height:auto;padding:3px 10px;width:auto;top:-38px;right:-1px;border-top-right-radius:8px;border-top-left-radius:8px;border:1px solid #e6e6e6;border-bottom:0}.table-tool-mini .layui-table-tool .layui-table-tool-temp{padding-right:0;display:inline-block}.table-tool-mini .layui-table-tool .layui-table-tool-self{position:static;display:inline-block}.table-tool-mini .layui-table-tool .layui-table-tool-self .layui-inline[lay-event]:first-child{margin:0}.table-tool-mini.full-table .layui-table-tool{top:-35px;height:1px;padding:0 10px;background:transparent;border:0}.table-tool-mini.full-table .layui-table-tool:before{content:"";position:absolute;top:-3px;right:0;left:0;height:36px;background-color:#f2f2f2;border-top-right-radius:8px;border-top-left-radius:8px;border:1px solid #e6e6e6;border-bottom:0}@media screen and (max-width:768px){.layui-laydate-range{left:0!important;top:0!important;right:0!important;margin:10px auto!important;max-width:95%}.layui-laydate-range .layui-laydate-main,.layui-laydate-range .layui-laydate-content table{width:100%}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:inline-block!important}.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-top:1px solid #e2e2e2}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:none!important}.layui-laydate-range .laydate-time-list ol li{padding-left:0!important;text-align:center}.layui-laydate-range .laydate-time-list ol{overflow:auto!important}}.layui-tree-spread>div>div>span>.layui-tree-iconArrow:after{border-color:#c0c4cc transparent transparent transparent;top:6px;left:0}.layui-tree .layui-tree-iconArrow:after{transition:none}.ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary]{padding-left:22px}.ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary] span{padding-right:5px}.ew-field-group>.layui-elem-field{border-bottom:0;margin:0}.ew-field-group>.ew-field-box{border:1px solid #e6e6e6;padding:10px 15px;border-top:0}body .layui-elem-quote.layui-quote-nm{border-color:#e6e6e6}.layui-card>.layui-tab-brief>.layui-tab-title li{padding:0 5px;margin:0 10px;line-height:43px;height:43px;transition:color .2s;-webkit-transition:color .2s}.layui-card>.layui-tab-brief>.layui-tab-title li:after{height:43px}.layui-card>.layui-tab-brief>.layui-tab-title{border-bottom-color:#f6f6f6;height:42px;transition:none;-webkit-transition:none}.layui-card>.layui-tab-brief>.layui-tab-content{padding:10px 15px}.layui-tab.layui-tab-vertical{position:relative}.layui-tab.layui-tab-vertical:after{content:"";clear:both;display:block}.layui-tab.layui-tab-vertical>.layui-tab-title{width:130px;height:auto;border:0;border-right:1px solid #e9e9e9;box-sizing:border-box;padding:10px 0;float:left}.layui-tab.layui-tab-vertical>.layui-tab-title>li{display:block;margin-right:-1px;border-right:2px solid transparent;white-space:normal;line-height:normal;padding:10px 20px;text-align:right}.layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-right:2px solid #5fb878;color:#5fb878}.layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this:after{display:none}.layui-tab.layui-tab-vertical>.layui-tab-title>li>.layui-icon{font-size:14px;margin-right:5px}.layui-tab.layui-tab-vertical>.layui-tab-content{margin-left:130px}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title{float:right;border-right:0;border-left:1px solid #e9e9e9}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-content{margin-left:0;margin-right:130px}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li{text-align:left;border-left:2px solid transparent;border-right:0}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li.layui-this{border-left:2px solid #5fb878}.layui-tab.layui-tab-vertical.layui-tab-vertical-full>.layui-tab-title{position:absolute;top:0;left:0;right:auto;min-height:100%}.layui-tab.layui-tab-vertical.layui-tab-vertical-right.layui-tab-vertical-full>.layui-tab-title{right:0;left:auto}.ew-btn-loading{opacity:.8;pointer-events:none;font-size:0!important}.ew-btn-loading *{display:none!important}.ew-btn-loading>.ew-btn-loading-text{font-size:14px!important;display:inline-block!important}.ew-btn-loading.layui-btn-sm>.ew-btn-loading-text,.ew-btn-loading.layui-btn-xs>.ew-btn-loading-text{font-size:12px!important}.ew-btn-loading.layui-btn-lg>.ew-btn-loading-text{font-size:16px!important}.ew-btn-loading>.ew-btn-loading-text *{display:inline-block!important}.form-search-expand,.form-search-expand:hover{padding:0!important;color:#2d8cf0!important;border:none!important;box-shadow:none!important;background-color:transparent!important}.form-search-expand .layui-icon{font-size:12px!important;font-weight:600!important}.form-search-show-expand{display:none!important}.layui-badge-green{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.layui-badge-blue{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff}.layui-badge-red{color:#f5222d;background:#fff1f0;border:1px solid #ffa39e}.layui-badge-yellow{color:#faad14;background:#fffbe6;border:1px solid #ffe58f}.layui-badge-gray{color:#8c8c8c;background:#fafafa;border:1px solid #ccc}.layui-badge{height:20px;line-height:19px;box-sizing:border-box}.layui-badge-list .layui-badge{height:23px;line-height:22px;margin:0 6px 8px 0}.layui-badge-list .layui-badge.layui-bg-gray{border:1px solid #ccc;background-color:#fafafa!important}.layui-card .layui-card-header .layui-badge.pull-right{top:50%;margin-top:-10px}#ew-lock-screen-group{position:fixed;top:0;left:0;right:0;bottom:0;z-index:19891099}.ios-iframe-body{position:absolute;top:0;left:0;right:0;bottom:0}xm-select>.xm-body{margin-left:-2px}xm-select>.xm-body .xm-option{background-color:transparent!important}xm-select>.xm-body .xm-option.hide-icon.selected{background-color:#5fb878!important}xm-select>.xm-body .xm-option:hover{background-color:#f2f2f2!important}.xm-body .xm-tree{min-width:200px}.xm-body .xm-tree .xm-option-content{padding-left:6px}xm-select{border-color:#e6e6e6!important}xm-select:hover{border-color:#d2d2d2!important}xm-select[style="border-color: rgb(229, 77, 66);"]{border-color:#e54d42!important}body .ew-xmselect-tree xm-select .xm-body .xm-option .xm-option-icon{position:absolute;left:30px;top:0;right:0;bottom:0;width:auto;height:auto;border:none!important;z-index:1}body .ew-xmselect-tree xm-select .xm-body .xm-option .xm-option-icon:before{display:none}body .ew-xmselect-tree xm-select .xm-body .xm-option.selected{background-color:#f2f2f2!important}body .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#5fb878!important}.theme-blue .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-blue .layui-layout-admin .layui-header{background-color:#3c8dbc}.theme-blue .layui-layout-admin .layui-header a{color:#fff}.theme-blue .layui-layout-admin .layui-header a:hover{color:#fff}.theme-blue .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-blue .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-blue .layui-layout-admin .layui-side{background-color:#222d32}.theme-blue .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-blue .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-blue .layui-nav-tree .layui-this>a,.theme-blue .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#3c8dbc}.theme-blue .layui-nav-tree>.layui-nav-item>a:before{background-color:#3c8dbc}.theme-blue .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-blue .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#3c8dbc;top:38px}.theme-blue .layui-body-header-title{border-left-color:#3c8dbc}.theme-blue .layui-layer.layui-layer-admin .layui-layer-title{background-color:#3c8dbc}.theme-blue .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#3c8dbc;background-color:#3c8dbc}.theme-blue .ball-loader>span,.theme-blue .signal-loader>span{background-color:#3c8dbc}.theme-blue .btn-circle{background:#3c8dbc}.theme-blue .more-theme-item:hover,.theme-blue .more-theme-item.active{border-color:#3c8dbc}.theme-blue .text-primary,.theme-blue .layui-link{color:#3c8dbc!important}.theme-blue .layui-btn{background-color:#3c8dbc}.theme-blue .layui-form-onswitch{border-color:#3c8dbc;background-color:#3c8dbc}.theme-blue .layui-form-radio>i:hover,.theme-blue .layui-form-radioed>i,.theme-blue .layui-form-checked i,.theme-blue .layui-form-checked:hover i{color:#3c8dbc}.theme-blue .layui-form-checked[lay-skin=primary] i,.theme-blue .layui-form-checked span,.theme-blue .layui-form-checked:hover span{border-color:#3c8dbc!important;background-color:#3c8dbc}.theme-blue .layui-form-checked[lay-skin=primary] i:hover,.theme-blue .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#3c8dbc!important}.theme-blue .layui-form-select dl dd.layui-this{background-color:#3c8dbc}.theme-blue .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#3c8dbc}.theme-blue .layui-laypage input:focus,.theme-blue .layui-laypage select:focus{border-color:#3c8dbc!important}.theme-blue .layui-laypage a:hover{color:#3c8dbc}.theme-blue .layui-tab-brief>.layui-tab-title .layui-this{color:#3c8dbc}.theme-blue .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-blue .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#3c8dbc!important}.theme-blue .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#3c8dbc;color:#3c8dbc}.theme-blue .layui-breadcrumb a:hover{color:#3c8dbc!important}.theme-blue .layui-laydate-footer span:hover,.theme-blue .layui-laydate-header i:hover,.theme-blue .layui-laydate-header span:hover{color:#3c8dbc}.theme-blue .layui-laydate .layui-this{background-color:#3c8dbc!important}.theme-blue .layui-laydate-content td.laydate-selected{background-color:rgba(60,141,188,.1)}.theme-blue .laydate-selected:hover{background-color:rgba(60,141,188,.1)!important}.theme-blue .layui-timeline-axis{color:#3c8dbc}.theme-blue .layui-transfer-active .layui-btn{background-color:#3c8dbc!important;border-color:#3c8dbc!important}.theme-blue .layui-progress-bar{background-color:#3c8dbc}.theme-blue .layui-slider-bar{background-color:#3c8dbc!important}.theme-blue .layui-slider-wrap-btn{border-color:#3c8dbc!important}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#3c8dbc}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-blue .layui-elem-quote{border-color:#3c8dbc}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-blue .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#3c8dbc}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#9dc6dd}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#3c8dbc}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#9dc6dd!important}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#3c8dbc!important}.theme-blue .ew-cascader-dropdown-list-item.active,.theme-blue .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#3c8dbc}.theme-blue div.tagsinput span.tag{background:#3c8dbc}.theme-blue xm-select .xm-body .xm-option .xm-option-icon{border-color:#3c8dbc!important}.theme-blue xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-blue xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-blue .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#3c8dbc!important}.theme-blue xm-select .xm-label .xm-label-block,.theme-blue xm-select .xm-body .xm-option.hide-icon.selected{background-color:#3c8dbc!important}.theme-blue .city-select a.active{color:#fff!important;background-color:#3c8dbc!important}.theme-blue .city-select a:hover,.theme-blue .city-select a:focus{background-color:rgba(60,141,188,.1);color:#3c8dbc}.theme-blue .city-picker-span>.title>span:hover{background-color:rgba(60,141,188,.1)}.theme-blue .city-select-tab>a.active{color:#3c8dbc}.theme-green .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-green .layui-layout-admin .layui-header{background-color:#00a65a}.theme-green .layui-layout-admin .layui-header a{color:#fff}.theme-green .layui-layout-admin .layui-header a:hover{color:#fff}.theme-green .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-green .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-green .layui-layout-admin .layui-side{background-color:#222d32}.theme-green .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-green .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-green .layui-nav-tree .layui-this>a,.theme-green .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#00a65a}.theme-green .layui-nav-tree>.layui-nav-item>a:before{background-color:#00a65a}.theme-green .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-green .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#00a65a;top:38px}.theme-green .layui-body-header-title{border-left-color:#00a65a}.theme-green .layui-layer.layui-layer-admin .layui-layer-title{background-color:#00a65a}.theme-green .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#00a65a;background-color:#00a65a}.theme-green .more-theme-item:hover,.theme-green .more-theme-item.active{border-color:#00a65a}.theme-green .btn-circle{background:#00a65a}.theme-green .ball-loader>span,.theme-green .signal-loader>span{background-color:#00a65a}.theme-green .text-primary,.theme-green .layui-link{color:#00a65a!important}.theme-green .layui-btn{background-color:#00a65a}.theme-green .layui-form-onswitch{border-color:#00a65a;background-color:#00a65a}.theme-green .layui-form-radio>i:hover,.theme-green .layui-form-radioed>i,.theme-green .layui-form-checked i,.theme-green .layui-form-checked:hover i{color:#00a65a}.theme-green .layui-form-checked[lay-skin=primary] i,.theme-green .layui-form-checked span,.theme-green .layui-form-checked:hover span{border-color:#00a65a!important;background-color:#00a65a}.theme-green .layui-form-checked[lay-skin=primary] i:hover,.theme-green .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#00a65a!important}.theme-green .layui-form-select dl dd.layui-this{background-color:#00a65a}.theme-green .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#00a65a}.theme-green .layui-laypage input:focus,.theme-green .layui-laypage select:focus{border-color:#00a65a!important}.theme-green .layui-laypage a:hover{color:#00a65a}.theme-green .layui-tab-brief>.layui-tab-title .layui-this{color:#00a65a}.theme-green .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-green .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#00a65a!important}.theme-green .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#00a65a;color:#00a65a}.theme-green .layui-breadcrumb a:hover{color:#00a65a!important}.theme-green .layui-laydate-footer span:hover,.theme-green .layui-laydate-header i:hover,.theme-green .layui-laydate-header span:hover{color:#00a65a}.theme-green .layui-laydate .layui-this{background-color:#00a65a!important}.theme-green .layui-laydate-content td.laydate-selected{background-color:rgba(0,166,90,.1)}.theme-green .laydate-selected:hover{background-color:rgba(0,166,90,.1)!important}.theme-green .layui-timeline-axis{color:#00a65a}.theme-green .layui-transfer-active .layui-btn{background-color:#00a65a!important;border-color:#00a65a!important}.theme-green .layui-progress-bar{background-color:#00a65a}.theme-green .layui-slider-bar{background-color:#00a65a!important}.theme-green .layui-slider-wrap-btn{border-color:#00a65a!important}.theme-green .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#00a65a}.theme-green .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-green .layui-elem-quote{border-color:#00a65a}.theme-green .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-green .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#00a65a}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#7fd2ac}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#00a65a}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#7fd2ac!important}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#00a65a!important}.theme-green .ew-cascader-dropdown-list-item.active,.theme-green .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#00a65a}.theme-green div.tagsinput span.tag{background:#00a65a}.theme-green xm-select .xm-body .xm-option .xm-option-icon{border-color:#00a65a!important}.theme-green xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-green xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-green .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#00a65a!important}.theme-green xm-select .xm-label .xm-label-block,.theme-green xm-select .xm-body .xm-option.hide-icon.selected{background-color:#00a65a!important}.theme-green .city-select a.active{color:#fff!important;background-color:#00a65a!important}.theme-green .city-select a:hover,.theme-green .city-select a:focus{background-color:rgba(0,166,90,.1);color:#00a65a}.theme-green .city-picker-span>.title>span:hover{background-color:rgba(0,166,90,.1)}.theme-green .city-select-tab>a.active{color:#00a65a}.theme-purple .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-purple .layui-layout-admin .layui-header{background-color:#722ed1}.theme-purple .layui-layout-admin .layui-header a{color:#fff}.theme-purple .layui-layout-admin .layui-header a:hover{color:#fff}.theme-purple .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-purple .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-purple .layui-layout-admin .layui-side{background-color:#222d32}.theme-purple .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-purple .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-purple .layui-nav-tree .layui-this>a,.theme-purple .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#722ed1}.theme-purple .layui-nav-tree>.layui-nav-item>a:before{background-color:#722ed1}.theme-purple .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-purple .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#722ed1;top:38px}.theme-purple .layui-body-header-title{border-left-color:#722ed1}.theme-purple .layui-layer.layui-layer-admin .layui-layer-title{background-color:#722ed1}.theme-purple .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#722ed1;background-color:#722ed1}.theme-purple .more-theme-item:hover,.theme-purple .more-theme-item.active{border-color:#722ed1}.theme-purple .btn-circle{background:#722ed1}.theme-purple .ball-loader>span,.theme-purple .signal-loader>span{background-color:#722ed1}.theme-purple .text-primary,.theme-purple .layui-link{color:#722ed1!important}.theme-purple .layui-btn{background-color:#722ed1}.theme-purple .layui-form-onswitch{border-color:#722ed1;background-color:#722ed1}.theme-purple .layui-form-radio>i:hover,.theme-purple .layui-form-radioed>i,.theme-purple .layui-form-checked i,.theme-purple .layui-form-checked:hover i{color:#722ed1}.theme-purple .layui-form-checked[lay-skin=primary] i,.theme-purple .layui-form-checked span,.theme-purple .layui-form-checked:hover span{border-color:#722ed1!important;background-color:#722ed1}.theme-purple .layui-form-checked[lay-skin=primary] i:hover,.theme-purple .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#722ed1!important}.theme-purple .layui-form-select dl dd.layui-this{background-color:#722ed1}.theme-purple .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#722ed1}.theme-purple .layui-laypage input:focus,.theme-purple .layui-laypage select:focus{border-color:#722ed1!important}.theme-purple .layui-laypage a:hover{color:#722ed1}.theme-purple .layui-tab-brief>.layui-tab-title .layui-this{color:#722ed1}.theme-purple .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-purple .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#722ed1!important}.theme-purple .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#722ed1;color:#722ed1}.theme-purple .layui-breadcrumb a:hover{color:#722ed1!important}.theme-purple .layui-laydate-footer span:hover,.theme-purple .layui-laydate-header i:hover,.theme-purple .layui-laydate-header span:hover{color:#722ed1}.theme-purple .layui-laydate .layui-this{background-color:#722ed1!important}.theme-purple .layui-laydate-content td.laydate-selected{background-color:rgba(114,46,209,.1)}.theme-purple .laydate-selected:hover{background-color:rgba(114,46,209,.1)!important}.theme-purple .layui-timeline-axis{color:#722ed1}.theme-purple .layui-transfer-active .layui-btn{background-color:#722ed1!important;border-color:#722ed1!important}.theme-purple .layui-progress-bar{background-color:#722ed1}.theme-purple .layui-slider-bar{background-color:#722ed1!important}.theme-purple .layui-slider-wrap-btn{border-color:#722ed1!important}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#722ed1}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-purple .layui-elem-quote{border-color:#722ed1}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-purple .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#722ed1}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#b896e8}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#722ed1}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#b896e8!important}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#722ed1!important}.theme-purple .ew-cascader-dropdown-list-item.active,.theme-purple .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#722ed1}.theme-purple div.tagsinput span.tag{background:#722ed1}.theme-purple xm-select .xm-body .xm-option .xm-option-icon{border-color:#722ed1!important}.theme-purple xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-purple xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-purple .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#722ed1!important}.theme-purple xm-select .xm-label .xm-label-block,.theme-purple xm-select .xm-body .xm-option.hide-icon.selected{background-color:#722ed1!important}.theme-purple .city-select a.active{color:#fff!important;background-color:#722ed1!important}.theme-purple .city-select a:hover,.theme-purple .city-select a:focus{background-color:rgba(114,46,209,.1);color:#722ed1}.theme-purple .city-picker-span>.title>span:hover{background-color:rgba(114,46,209,.1)}.theme-purple .city-select-tab>a.active{color:#722ed1}.theme-red .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-red .layui-layout-admin .layui-header{background-color:#dd4b39}.theme-red .layui-layout-admin .layui-header a{color:#fff}.theme-red .layui-layout-admin .layui-header a:hover{color:#fff}.theme-red .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-red .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-red .layui-layout-admin .layui-side{background-color:#28333e}.theme-red .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-red .layui-nav-tree .layui-this>a,.theme-red .layui-nav-tree .layui-this>a:hover{background-color:#dd4b39}.theme-red .layui-nav-tree>.layui-nav-item>a:before{background-color:#dd4b39}.theme-red .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#28333e!important}.theme-red .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#dd4b39;top:38px}.theme-red .layui-body-header-title{border-left-color:#dd4b39}.theme-red .layui-layer.layui-layer-admin .layui-layer-title{background-color:#dd4b39}.theme-red .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#dd4b39;background-color:#dd4b39}.theme-red .more-theme-item:hover,.theme-red .more-theme-item.active{border-color:#dd4b39}.theme-red .btn-circle{background:#dd4b39}.theme-red .ball-loader>span,.theme-red .signal-loader>span{background-color:#dd4b39}.theme-red .text-primary,.theme-red .layui-link{color:#dd4b39!important}.theme-red .layui-btn{background-color:#dd4b39}.theme-red .layui-form-onswitch{border-color:#dd4b39;background-color:#dd4b39}.theme-red .layui-form-radio>i:hover,.theme-red .layui-form-radioed>i,.theme-red .layui-form-checked i,.theme-red .layui-form-checked:hover i{color:#dd4b39}.theme-red .layui-form-checked[lay-skin=primary] i,.theme-red .layui-form-checked span,.theme-red .layui-form-checked:hover span{border-color:#dd4b39!important;background-color:#dd4b39}.theme-red .layui-form-checked[lay-skin=primary] i:hover,.theme-red .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#dd4b39!important}.theme-red .layui-form-select dl dd.layui-this{background-color:#dd4b39}.theme-red .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#dd4b39}.theme-red .layui-laypage input:focus,.theme-red .layui-laypage select:focus{border-color:#dd4b39!important}.theme-red .layui-laypage a:hover{color:#dd4b39}.theme-red .layui-tab-brief>.layui-tab-title .layui-this{color:#dd4b39}.theme-red .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-red .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#dd4b39!important}.theme-red .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#dd4b39;color:#dd4b39}.theme-red .layui-breadcrumb a:hover{color:#dd4b39!important}.theme-red .layui-laydate-footer span:hover,.theme-red .layui-laydate-header i:hover,.theme-red .layui-laydate-header span:hover{color:#dd4b39}.theme-red .layui-laydate .layui-this{background-color:#dd4b39!important}.theme-red .layui-laydate-content td.laydate-selected{background-color:rgba(221,75,57,.1)}.theme-red .laydate-selected:hover{background-color:rgba(221,75,57,.1)!important}.theme-red .layui-timeline-axis{color:#dd4b39}.theme-red .layui-transfer-active .layui-btn{background-color:#dd4b39!important;border-color:#dd4b39!important}.theme-red .layui-progress-bar{background-color:#dd4b39}.theme-red .layui-slider-bar{background-color:#dd4b39!important}.theme-red .layui-slider-wrap-btn{border-color:#dd4b39!important}.theme-red .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#dd4b39}.theme-red .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-red .layui-elem-quote{border-color:#dd4b39}.theme-red .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-red .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#dd4b39}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#eea39a}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#dd4b39}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#eea39a!important}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#dd4b39!important}.theme-red .ew-cascader-dropdown-list-item.active,.theme-red .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#dd4b39}.theme-red div.tagsinput span.tag{background:#dd4b39}.theme-red xm-select .xm-body .xm-option .xm-option-icon{border-color:#dd4b39!important}.theme-red xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-red xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-red .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#dd4b39!important}.theme-red xm-select .xm-label .xm-label-block,.theme-red xm-select .xm-body .xm-option.hide-icon.selected{background-color:#dd4b39!important}.theme-red .city-select a.active{color:#fff!important;background-color:#dd4b39!important}.theme-red .city-select a:hover,.theme-red .city-select a:focus{background-color:rgba(221,75,57,.1);color:#dd4b39}.theme-red .city-picker-span>.title>span:hover{background-color:rgba(221,75,57,.1)}.theme-red .city-select-tab>a.active{color:#dd4b39}.theme-cyan .layui-layout-admin .layui-header .layui-logo{background-color:#001529}.theme-cyan .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-cyan .layui-layout-admin .layui-header .layui-nav-bar{background-color:#001529}.theme-cyan .layui-layout-admin .layui-side{background-color:#001529}.theme-cyan .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-cyan .layui-nav-tree .layui-this>a,.theme-cyan .layui-nav-tree .layui-this>a:hover{background-color:#1890ff}.theme-cyan .layui-nav-tree>.layui-nav-item>a:before{background-color:#1890ff}.theme-cyan .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#001529!important}.theme-cyan .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#001529}.theme-cyan .layui-body-header-title{border-left-color:#1890ff}.theme-cyan .layui-layer.layui-layer-admin{border-radius:4px}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-title{color:#333;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#1890ff;background-color:#1890ff}.theme-cyan .more-theme-item:hover,.theme-cyan .more-theme-item.active{border-color:#1890ff}.theme-cyan .btn-circle{background:#1890ff}.theme-cyan .ball-loader>span,.theme-cyan .signal-loader>span{background-color:#1890ff}.theme-cyan .text-primary,.theme-cyan .layui-link{color:#1890ff!important}.theme-cyan .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#1890ff;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-cyan .layui-btn-lg{height:42px;line-height:42px}.theme-cyan .layui-btn-sm{height:28px;line-height:28px}.theme-cyan .layui-btn-xs{height:22px;line-height:22px}.theme-cyan .layui-input,.theme-cyan .layui-select,.theme-cyan .layui-textarea,.theme-cyan xm-select{height:36px;border-radius:4px}.theme-cyan .layui-input:focus,.theme-cyan .layui-textarea:focus,.theme-cyan xm-select:hover{border-color:#40a9ff!important}.theme-cyan .layui-form-label,.theme-cyan .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-cyan .layui-input-block{min-height:36px}.theme-cyan .layui-form-radio{margin-top:4px}.theme-cyan .layui-form-onswitch{border-color:#1890ff;background-color:#1890ff}.theme-cyan .layui-form-radio>i:hover,.theme-cyan .layui-form-radioed>i,.theme-cyan .layui-form-checked i,.theme-cyan .layui-form-checked:hover i{color:#1890ff}.theme-cyan .layui-form-checked[lay-skin=primary] i,.theme-cyan .layui-form-checked span,.theme-cyan .layui-form-checked:hover span{border-color:#1890ff!important;background-color:#1890ff}.theme-cyan .layui-form-checked[lay-skin=primary] i:hover,.theme-cyan .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#1890ff!important}.theme-cyan .layui-form-select dl dd.layui-this{background-color:#1890ff}.theme-cyan .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#1890ff}.theme-cyan .layui-laypage input:focus,.theme-cyan .layui-laypage select:focus{border-color:#1890ff!important}.theme-cyan .layui-laypage a:hover{color:#1890ff}.theme-cyan .layui-tab-brief>.layui-tab-title .layui-this{color:#1890ff}.theme-cyan .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-cyan .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#1890ff!important}.theme-cyan .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-cyan .layui-breadcrumb a:hover{color:#1890ff!important}.theme-cyan .layui-laydate-footer span:hover,.theme-cyan .layui-laydate-header i:hover,.theme-cyan .layui-laydate-header span:hover{color:#1890ff}.theme-cyan .layui-laydate .layui-this{background-color:#1890ff!important}.theme-cyan .layui-laydate-content td.laydate-selected{background-color:rgba(24,144,255,.1)}.theme-cyan .laydate-selected:hover{background-color:rgba(24,144,255,.1)!important}.theme-cyan .layui-timeline-axis{color:#1890ff}.theme-cyan .layui-transfer-active .layui-btn{background-color:#1890ff!important;border-color:#1890ff!important}.theme-cyan .layui-progress-bar{background-color:#1890ff}.theme-cyan .layui-slider-bar{background-color:#1890ff!important}.theme-cyan .layui-slider-wrap-btn{border-color:#1890ff!important}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#1890ff}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-cyan .layui-elem-quote{border-color:#1890ff}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#1890ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#89c6ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#1890ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#89c6ff!important}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#1890ff!important}.theme-cyan .ew-cascader-dropdown-list-item.active,.theme-cyan .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#1890ff}.theme-cyan div.tagsinput span.tag{background:#1890ff}.theme-cyan xm-select .xm-body .xm-option .xm-option-icon{border-color:#1890ff!important}.theme-cyan xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-cyan xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-cyan .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#1890ff!important}.theme-cyan xm-select .xm-label .xm-label-block,.theme-cyan xm-select .xm-body .xm-option.hide-icon.selected{background-color:#1890ff!important}.theme-cyan .city-select a.active{color:#fff!important;background-color:#1890ff!important}.theme-cyan .city-select a:hover,.theme-cyan .city-select a:focus{background-color:#f0faff;color:#1890ff}.theme-cyan .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-cyan .city-select-tab>a.active{color:#1890ff}.theme-white .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-white .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-white .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-white .layui-layout-admin .layui-header .layui-nav-bar{background-color:#2d8cf0}.theme-white .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-white .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-white .layui-side .layui-nav .layui-nav-item a:hover{color:#2d8cf0}.theme-white .layui-side .layui-nav-itemed>a,.theme-white .layui-side .layui-nav-tree .layui-nav-title a,.theme-white .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-white .layui-side .layui-nav-itemed>a:hover{color:#2d8cf0!important}.theme-white .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-white .layui-side .layui-nav-tree .layui-this>a,.theme-white .layui-side .layui-nav-tree .layui-this>a:hover{color:#2d8cf0;background:#f0faff;border-right:2px solid #2d8cf0}.theme-white .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#f0faff;color:#2d8cf0!important}}.theme-white .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-white .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-white .layui-side .layui-nav .layui-nav-mored,.theme-white .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-white .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#2d8cf0;background-color:#fff}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-white .layui-layout-admin .layui-body .admin-tabs-control,.theme-white .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-white .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-white .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-white .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-white .layui-body-header-title{border-left-color:#2d8cf0}.theme-white .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-white .layui-layer.layui-layer-admin{border-radius:4px}.theme-white .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-white .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-white .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-white .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-white .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#2d8cf0;background-color:#2d8cf0}.theme-white .more-theme-item:hover,.theme-white .more-theme-item.active{border-color:#2d8cf0}.theme-white .btn-circle{background:#2d8cf0}.theme-white .ball-loader>span,.theme-white .signal-loader>span{background-color:#2d8cf0}.theme-white .text-primary,.theme-white .layui-link{color:#2d8cf0!important}.theme-white .layui-card{border-radius:4px;box-shadow:none}.theme-white .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#2d8cf0;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-white .layui-btn-lg{height:42px;line-height:42px}.theme-white .layui-btn-sm{height:28px;line-height:28px}.theme-white .layui-btn-xs{height:22px;line-height:22px}.theme-white .layui-input,.theme-white .layui-select,.theme-white .layui-textarea,.theme-white xm-select{height:36px;border-radius:4px}.theme-white .layui-input:focus,.theme-white .layui-textarea:focus,.theme-white xm-select:hover{border-color:#2d8cf0!important}.theme-white .layui-form-label,.theme-white .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-white .layui-input-block{min-height:36px}.theme-white .layui-form-radio{margin-top:4px}.theme-white .layui-form-onswitch{border-color:#2d8cf0;background-color:#2d8cf0}.theme-white .layui-form-radio>i:hover,.theme-white .layui-form-radioed>i,.theme-white .layui-form-checked i,.theme-white .layui-form-checked:hover i{color:#2d8cf0}.theme-white .layui-form-checked[lay-skin=primary] i,.theme-white .layui-form-checked span,.theme-white .layui-form-checked:hover span{border-color:#2d8cf0!important;background-color:#2d8cf0}.theme-white .layui-form-checked[lay-skin=primary] i:hover,.theme-white .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#2d8cf0!important}.theme-white .layui-form-select dl dd.layui-this{background-color:#2d8cf0}.theme-white .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#2d8cf0}.theme-white .layui-laypage input:focus,.theme-white .layui-laypage select:focus{border-color:#2d8cf0!important}.theme-white .layui-laypage a:hover{color:#2d8cf0}.theme-white .layui-tab-brief>.layui-tab-title .layui-this{color:#2d8cf0}.theme-white .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-white .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#2d8cf0!important}.theme-white .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-white .layui-breadcrumb a:hover{color:#2d8cf0!important}.theme-white .layui-laydate-footer span:hover,.theme-white .layui-laydate-header i:hover,.theme-white .layui-laydate-header span:hover{color:#2d8cf0}.theme-white .layui-laydate .layui-this{background-color:#2d8cf0!important}.theme-white .layui-laydate-content td.laydate-selected{background-color:rgba(45,140,240,.1)}.theme-white .laydate-selected:hover{background-color:rgba(45,140,240,.1)!important}.theme-white .layui-timeline-axis{color:#2d8cf0}.theme-white .layui-transfer-active .layui-btn{background-color:#2d8cf0!important;border-color:#2d8cf0!important}.theme-white .layui-progress-bar{background-color:#2d8cf0}.theme-white .layui-slider-bar{background-color:#2d8cf0!important}.theme-white .layui-slider-wrap-btn{border-color:#2d8cf0!important}.theme-white .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#2d8cf0}.theme-white .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-white .layui-elem-quote{border-color:#2d8cf0}.theme-white .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-white .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#2d8cf0}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#95c5f7}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#2d8cf0}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#95c5f7!important}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#2d8cf0!important}.theme-white .ew-cascader-dropdown-list-item.active,.theme-white .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#2d8cf0}.theme-white div.tagsinput span.tag{background:#2d8cf0}.theme-white xm-select .xm-body .xm-option .xm-option-icon{border-color:#2d8cf0!important}.theme-white xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-white xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-white .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#2d8cf0!important}.theme-white xm-select .xm-label .xm-label-block,.theme-white xm-select .xm-body .xm-option.hide-icon.selected{background-color:#2d8cf0!important}.theme-white .city-select a.active{color:#fff!important;background-color:#2d8cf0!important}.theme-white .city-select a:hover,.theme-white .city-select a:focus{background-color:#f0faff;color:#2d8cf0}.theme-white .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-white .city-select-tab>a.active{color:#2d8cf0}.theme-pink .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-pink .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-pink .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-pink .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fb7299}.theme-pink .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-pink .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-pink .layui-side .layui-nav .layui-nav-item a:hover{color:#fb7299}.theme-pink .layui-side .layui-nav-itemed>a,.theme-pink .layui-side .layui-nav-tree .layui-nav-title a,.theme-pink .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-pink .layui-side .layui-nav-itemed>a:hover{color:#fb7299!important}.theme-pink .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-pink .layui-side .layui-nav-tree .layui-this>a,.theme-pink .layui-side .layui-nav-tree .layui-this>a:hover{color:#fb7299;background:#fff7f9;border-right:2px solid #fb7299}.theme-pink .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#fff1f5;color:#fb7299!important}}.theme-pink .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-pink .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-pink .layui-side .layui-nav .layui-nav-mored,.theme-pink .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-pink .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#fb7299;background-color:#fff}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control,.theme-pink .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-pink .layui-body-header-title{border-left-color:#fb7299}.theme-pink .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-pink .layui-layer.layui-layer-admin{border-radius:4px}.theme-pink .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-pink .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-pink .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-pink .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-pink .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#fb7299;background-color:#fb7299}.theme-pink .more-theme-item:hover,.theme-pink .more-theme-item.active{border-color:#fb7299}.theme-pink .btn-circle{background:#fb7299}.theme-pink .ball-loader>span,.theme-pink .signal-loader>span{background-color:#fb7299}.theme-pink .text-primary,.theme-pink .layui-link{color:#fb7299!important}.theme-pink .layui-card{border-radius:4px;box-shadow:none}.theme-pink .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#fb7299;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-pink .layui-btn-lg{height:42px;line-height:42px}.theme-pink .layui-btn-sm{height:28px;line-height:28px}.theme-pink .layui-btn-xs{height:22px;line-height:22px}.theme-pink .layui-input,.theme-pink .layui-select,.theme-pink .layui-textarea,.theme-pink xm-select{height:36px;border-radius:4px}.theme-pink .layui-input:focus,.theme-pink .layui-textarea:focus,.theme-pink xm-select:hover{border-color:#fb7299!important}.theme-pink .layui-form-label,.theme-pink .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-pink .layui-input-block{min-height:36px}.theme-pink .layui-form-radio{margin-top:4px}.theme-pink .layui-form-onswitch{border-color:#fb7299;background-color:#fb7299}.theme-pink .layui-form-radio>i:hover,.theme-pink .layui-form-radioed>i,.theme-pink .layui-form-checked i,.theme-pink .layui-form-checked:hover i{color:#fb7299}.theme-pink .layui-form-checked[lay-skin=primary] i,.theme-pink .layui-form-checked span,.theme-pink .layui-form-checked:hover span{border-color:#fb7299!important;background-color:#fb7299}.theme-pink .layui-form-checked[lay-skin=primary] i:hover,.theme-pink .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#fb7299!important}.theme-pink .layui-form-select dl dd.layui-this{background-color:#fb7299}.theme-pink .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#fb7299}.theme-pink .layui-laypage input:focus,.theme-pink .layui-laypage select:focus{border-color:#fb7299!important}.theme-pink .layui-laypage a:hover{color:#fb7299}.theme-pink .layui-tab-brief>.layui-tab-title .layui-this{color:#fb7299}.theme-pink .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-pink .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#fb7299!important}.theme-pink .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#fb7299;color:#fb7299}.theme-pink .layui-breadcrumb a:hover{color:#fb7299!important}.theme-pink .layui-laydate-footer span:hover,.theme-pink .layui-laydate-header i:hover,.theme-pink .layui-laydate-header span:hover{color:#fb7299}.theme-pink .layui-laydate .layui-this{background-color:#fb7299!important}.theme-pink .layui-laydate-content td.laydate-selected{background-color:#fff1f5}.theme-pink .laydate-selected:hover{background-color:#fff1f5!important}.theme-pink .layui-timeline-axis{color:#fb7299}.theme-pink .layui-transfer-active .layui-btn{background-color:#fb7299!important;border-color:#fb7299!important}.theme-pink .layui-progress-bar{background-color:#fb7299}.theme-pink .layui-slider-bar{background-color:#fb7299!important}.theme-pink .layui-slider-wrap-btn{border-color:#fb7299!important}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#fb7299}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-pink .layui-elem-quote{border-color:#fb7299}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-pink .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#fb7299}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#fdb8cc}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#fb7299}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#fdb8cc!important}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#fb7299!important}.theme-pink .ew-cascader-dropdown-list-item.active,.theme-pink .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#fb7299}.theme-pink div.tagsinput span.tag{background:#fb7299}.theme-pink xm-select .xm-body .xm-option .xm-option-icon{border-color:#fb7299!important}.theme-pink xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-pink xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-pink .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#fb7299!important}.theme-pink xm-select .xm-label .xm-label-block,.theme-pink xm-select .xm-body .xm-option.hide-icon.selected{background-color:#fb7299!important}.theme-pink .city-select a.active{color:#fff!important;background-color:#fb7299!important}.theme-pink .city-select a:hover,.theme-pink .city-select a:focus{background-color:#fff1f5;color:#fb7299}.theme-pink .city-picker-span>.title>span:hover{background-color:#fff1f5}.theme-pink .city-select-tab>a.active{color:#fb7299}.theme-colorful .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-colorful .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-colorful .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-colorful .layui-layout-admin .layui-header .layui-nav-bar{background-color:#2d8cf0}.theme-colorful .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-colorful .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-colorful .layui-side .layui-nav .layui-nav-item a:hover{color:#2d8cf0}.theme-colorful .layui-side .layui-nav-itemed>a,.theme-colorful .layui-side .layui-nav-tree .layui-nav-title a,.theme-colorful .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-colorful .layui-side .layui-nav-itemed>a:hover{color:#2d8cf0!important}.theme-colorful .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-colorful .layui-side .layui-nav-tree .layui-this>a,.theme-colorful .layui-side .layui-nav-tree .layui-this>a:hover{color:#2d8cf0;background:#f0faff;border-right:2px solid #2d8cf0}.theme-colorful .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#f0faff;color:#2d8cf0!important}}.theme-colorful .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-colorful .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-colorful .layui-side .layui-nav .layui-nav-mored,.theme-colorful .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-colorful .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-colorful .layui-side .layui-nav .layui-nav-item a cite{vertical-align:middle}.theme-colorful .layui-side .layui-nav-item>a>.layui-icon{color:#fff;width:28px;height:28px;font-size:12px!important;line-height:28px;text-align:center;border-radius:50%;display:inline-block;vertical-align:middle;background-color:#61b2fc}.theme-colorful .layui-side .layui-nav-item:nth-child(even)>a>.layui-icon{background-color:#7dd733}.theme-colorful .layui-side .layui-nav-item:nth-child(3)>a>.layui-icon{background-color:#32a2d4}.theme-colorful .layui-side .layui-nav-item:nth-child(4)>a>.layui-icon{background-color:#2bccce}.theme-colorful .layui-side .layui-nav-item:nth-child(5)>a>.layui-icon{background-color:#7383cf}@media screen and (min-width:768px){.theme-colorful .admin-nav-mini .layui-side .layui-nav-item>a{padding-left:16px}}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a{padding-left:63px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a{padding-left:83px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:103px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:123px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#2d8cf0;background-color:#fff}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control,.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-colorful .layui-body-header-title{border-left-color:#2d8cf0}.theme-colorful .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-colorful .layui-layer.layui-layer-admin{border-radius:4px}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#2d8cf0;background-color:#2d8cf0}.theme-colorful .more-theme-item:hover,.theme-colorful .more-theme-item.active{border-color:#2d8cf0}.theme-colorful .btn-circle{background:#2d8cf0}.theme-colorful .ball-loader>span,.theme-colorful .signal-loader>span{background-color:#2d8cf0}.theme-colorful .text-primary,.theme-colorful .layui-link{color:#2d8cf0!important}.theme-colorful .layui-card{border-radius:4px;box-shadow:none}.theme-colorful .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#2d8cf0;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-colorful .layui-btn-lg{height:42px;line-height:42px}.theme-colorful .layui-btn-sm{height:28px;line-height:28px}.theme-colorful .layui-btn-xs{height:22px;line-height:22px}.theme-colorful .layui-input,.theme-colorful .layui-select,.theme-colorful .layui-textarea,.theme-colorful xm-select{height:36px;border-radius:4px}.theme-colorful .layui-input:focus,.theme-colorful .layui-textarea:focus,.theme-colorful xm-select:hover{border-color:#2d8cf0!important}.theme-colorful .layui-form-label,.theme-colorful .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-colorful .layui-input-block{min-height:36px}.theme-colorful .layui-form-radio{margin-top:4px}.theme-colorful .layui-form-onswitch{border-color:#2d8cf0;background-color:#2d8cf0}.theme-colorful .layui-form-radio>i:hover,.theme-colorful .layui-form-radioed>i,.theme-colorful .layui-form-checked i,.theme-colorful .layui-form-checked:hover i{color:#2d8cf0}.theme-colorful .layui-form-checked[lay-skin=primary] i,.theme-colorful .layui-form-checked span,.theme-colorful .layui-form-checked:hover span{border-color:#2d8cf0!important;background-color:#2d8cf0}.theme-colorful .layui-form-checkbox[lay-skin=primary] i:hover,.theme-colorful .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#2d8cf0}.theme-colorful .layui-form-select dl dd.layui-this{background-color:#2d8cf0}.theme-colorful .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#2d8cf0}.theme-colorful .layui-laypage input:focus,.theme-colorful .layui-laypage select:focus{border-color:#2d8cf0!important}.theme-colorful .layui-laypage a:hover{color:#2d8cf0}.theme-colorful .layui-tab-brief>.layui-tab-title .layui-this{color:#2d8cf0}.theme-colorful .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-colorful .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#2d8cf0!important}.theme-colorful .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-colorful .layui-breadcrumb a:hover{color:#2d8cf0!important}.theme-colorful .layui-laydate-footer span:hover,.theme-colorful .layui-laydate-header i:hover,.theme-colorful .layui-laydate-header span:hover{color:#2d8cf0}.theme-colorful .layui-laydate .layui-this{background-color:#2d8cf0!important}.theme-colorful .layui-laydate-content td.laydate-selected{background-color:rgba(45,140,240,.1)}.theme-colorful .laydate-selected:hover{background-color:rgba(45,140,240,.1)!important}.theme-colorful .layui-timeline-axis{color:#2d8cf0}.theme-colorful .layui-transfer-active .layui-btn{background-color:#2d8cf0!important;border-color:#2d8cf0!important}.theme-colorful .layui-progress-bar{background-color:#2d8cf0}.theme-colorful .layui-slider-bar{background-color:#2d8cf0!important}.theme-colorful .layui-slider-wrap-btn{border-color:#2d8cf0!important}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#2d8cf0}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-colorful .layui-elem-quote{border-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#96c6f8}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#96c6f8!important}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#2d8cf0!important}.theme-colorful .ew-cascader-dropdown-list-item.active,.theme-colorful .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#2d8cf0}.theme-colorful div.tagsinput span.tag{background:#2d8cf0}.theme-colorful xm-select .xm-body .xm-option .xm-option-icon{border-color:#2d8cf0!important}.theme-colorful xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-colorful xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-colorful .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#2d8cf0!important}.theme-colorful xm-select .xm-label .xm-label-block,.theme-colorful xm-select .xm-body .xm-option.hide-icon.selected{background-color:#2d8cf0!important}.theme-colorful .city-select a.active{color:#fff!important;background-color:#2d8cf0!important}.theme-colorful .city-select a:hover,.theme-colorful .city-select a:focus{background-color:#f0faff;color:#2d8cf0}.theme-colorful .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-colorful .city-select-tab>a.active{color:#2d8cf0} src/main/webapp/static/js/matCode/matCode.js
@@ -7,7 +7,7 @@ cols.push.apply(cols, matCols); cols.push({field: 'modiUser$', align: 'center',title: '修改人员', hide: true} ,{field: 'modiTime$', align: 'center',title: '修改时间', hide: true} ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:80}) ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:110}) return cols; } layui.use(['table','laydate', 'form','upload'], function(){ @@ -236,6 +236,27 @@ table.on('tool(matCode)', function(obj){ var data = obj.data; switch (obj.event) { // 编辑 case 'edit': layer.open({ type: 2, title: '编辑', maxmin: true, area: [top.detailWidth, top.detailHeight], shadeClose: true, content: 'matCode_detail.html', success: function(layero, index){ setFormVal(layer.getChildFrame('#detail', index), data, true); // top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true); top.convertDisabled(layer.getChildFrame('#matNo', index), true); // layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide(); layer.getChildFrame('#data-detail-submit-save,#prompt', index).hide(); layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); layero.find('iframe')[0].contentWindow.layui.form.render('select'); layero.find('iframe')[0].contentWindow.layui.form.render('checkbox'); } }); break; // 详情 case 'detail': layer.open({ src/main/webapp/static/layui/lay/modules/admin.js
New file @@ -0,0 +1,1667 @@ /** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */ layui.define(['layer'], function (exports) { var $ = layui.jquery; var layer = layui.layer; var setter = layui.cache; var bodyDOM = '.layui-layout-admin>.layui-body'; var tabDOM = bodyDOM + '>.layui-tab'; var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll'; var headerDOM = '.layui-layout-admin>.layui-header'; var navFilter = 'admin-side-nav'; var admin = {version: '3.1.8', layerData: {}}; /** 设置侧栏折叠 */ admin.flexible = function (expand) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.flexible(expand); var $layout = $('.layui-layout-admin'); var isExapnd = $layout.hasClass('admin-nav-mini'); if (expand === undefined) expand = isExapnd; if (isExapnd === expand) { if (window.sideFlexTimer) clearTimeout(window.sideFlexTimer); $layout.addClass('admin-side-flexible'); window.sideFlexTimer = setTimeout(function () { $layout.removeClass('admin-side-flexible'); }, 600); if (expand) { admin.hideTableScrollBar(); $layout.removeClass('admin-nav-mini'); } else { $layout.addClass('admin-nav-mini'); } layui.event.call(this, 'admin', 'flexible({*})', {expand: expand}); } }; /** 设置导航栏选中 */ admin.activeNav = function (url) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.activeNav(url); if (!url) return console.warn('active url is null'); $(sideDOM + '>.layui-nav .layui-nav-item .layui-nav-child dd.layui-this').removeClass('layui-this'); $(sideDOM + '>.layui-nav .layui-nav-item.layui-this').removeClass('layui-this'); var $a = $(sideDOM + '>.layui-nav a[lay-href="' + url + '"]'); if ($a.length === 0) return console.warn(url + ' not found'); var isMini = $('.layui-layout-admin').hasClass('admin-nav-mini'); if ($(sideDOM + '>.layui-nav').attr('lay-shrink') === '_all') { // 手风琴效果 var $pChilds = $a.parent('dd').parents('.layui-nav-child'); if (!isMini) { $(sideDOM + '>.layui-nav .layui-nav-itemed>.layui-nav-child').not($pChilds) .css('display', 'block').slideUp('fast', function () { $(this).css('display', ''); }); } $(sideDOM + '>.layui-nav .layui-nav-itemed').not($pChilds.parent()).removeClass('layui-nav-itemed'); } $a.parent().addClass('layui-this'); // 选中当前 // 展开所有父级 var $asParents = $a.parent('dd').parents('.layui-nav-child').parent(); if (!isMini) { var $childs = $asParents.not('.layui-nav-itemed').children('.layui-nav-child'); $childs.slideDown('fast', function () { if ($(this).is($childs.last())) { $childs.css('display', ''); // 菜单超出屏幕自动滚动 var topBeyond = $a.offset().top + $a.outerHeight() + 30 - admin.getPageHeight(); var topDisparity = 50 + 65 - $a.offset().top; if (topBeyond > 0) { $(sideDOM).animate({'scrollTop': $(sideDOM).scrollTop() + topBeyond}, 300); } else if (topDisparity > 0) { $(sideDOM).animate({'scrollTop': $(sideDOM).scrollTop() - topDisparity}, 300); } } }); } $asParents.addClass('layui-nav-itemed'); // 适配多系统模式 $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide'); var $aUl = $a.parents('.layui-nav'); $aUl.removeClass('layui-hide'); $(headerDOM + '>.layui-nav>.layui-nav-item').removeClass('layui-this'); $(headerDOM + '>.layui-nav>.layui-nav-item>a[nav-bind="' + $aUl.attr('nav-id') + '"]').parent().addClass('layui-this'); }; /** 右侧弹出 */ admin.popupRight = function (param) { param.anim = -1; param.offset = 'r'; param.move = false; param.fixed = true; if (param.area === undefined) param.area = '336px'; if (param.title === undefined) param.title = false; if (param.closeBtn === undefined) param.closeBtn = false; if (param.shadeClose === undefined) param.shadeClose = true; if (param.skin === undefined) param.skin = 'layui-anim layui-anim-rl layui-layer-adminRight'; return admin.open(param); }; /** 封装layer.open */ admin.open = function (param) { if (param.content && param.type === 2) param.url = undefined; // 参数纠正 if (param.url && (param.type === 2 || param.type === undefined)) param.type = 1; // 参数纠正 if (param.area === undefined) param.area = param.type === 2 ? ['360px', '300px'] : '360px'; if (param.offset === undefined) param.offset = '70px'; if (param.shade === undefined) param.shade = .1; if (param.fixed === undefined) param.fixed = false; if (param.resize === undefined) param.resize = false; if (param.skin === undefined) param.skin = 'layui-layer-admin'; var eCallBack = param.end; param.end = function () { layer.closeAll('tips'); // 关闭表单验证的tips eCallBack && eCallBack(); }; if (param.url) { var sCallBack = param.success; param.success = function (layero, index) { $(layero).data('tpl', param.tpl || ''); admin.reloadLayer(index, param.url, sCallBack); }; } else if (param.tpl && param.content) { param.content = admin.util.tpl(param.content, param.data, setter.tplOpen, setter.tplClose); } var layIndex = layer.open(param); if (param.data) admin.layerData['d' + layIndex] = param.data; return layIndex; }; /** 获取弹窗数据 */ admin.getLayerData = function (index, key) { if (index === undefined) { index = parent.layer.getFrameIndex(window.name); if (index === undefined) return null; else return parent.layui.admin.getLayerData(parseInt(index), key); } else if (isNaN(index)) { index = admin.getLayerIndex(index); } if (index === undefined) return; var layerData = admin.layerData['d' + index]; if (key && layerData) return layerData[key]; return layerData; }; /** 放入弹窗数据 */ admin.putLayerData = function (key, value, index) { if (index === undefined) { index = parent.layer.getFrameIndex(window.name); if (index === undefined) return; else return parent.layui.admin.putLayerData(key, value, parseInt(index)); } else if (isNaN(index)) { index = admin.getLayerIndex(index); } if (index === undefined) return; var layerData = admin.getLayerData(index); if (!layerData) layerData = {}; layerData[key] = value; admin.layerData['d' + index] = layerData; }; /** 刷新url方式的layer */ admin.reloadLayer = function (index, url, success) { if (typeof url === 'function') { success = url; url = undefined; } if (isNaN(index)) index = admin.getLayerIndex(index); if (index === undefined) return; var $layero = $('#layui-layer' + index); if (url === undefined) url = $layero.data('url'); if (!url) return; $layero.data('url', url); admin.showLoading($layero); admin.ajax({ url: url, dataType: 'html', success: function (res) { admin.removeLoading($layero, false); if (typeof res !== 'string') res = JSON.stringify(res); var tpl = $layero.data('tpl'); // 模板解析 if (tpl === true || tpl === 'true') { var data = admin.getLayerData(index) || {}; data.layerIndex = index; // 模板里面有动态模板处理 var $html = $('<div>' + res + '</div>'), tplAll = {}; $html.find('script,[tpl-ignore]').each(function (i) { var $this = $(this); tplAll['temp_' + i] = $this[0].outerHTML; $this.after('${temp_' + i + '}').remove(); }); res = admin.util.tpl($html.html(), data, setter.tplOpen, setter.tplClose); for (var f in tplAll) res = res.replace('${' + f + '}', tplAll[f]); } $layero.children('.layui-layer-content').html(res); admin.renderTpl('#layui-layer' + index + ' [ew-tpl]'); success && success($layero[0], index); } }); }; /** 封装layer.alert */ admin.alert = function (content, options, yes) { if (typeof options === 'function') { yes = options; options = {}; } if (options.skin === undefined) options.skin = 'layui-layer-admin'; if (options.shade === undefined) options.shade = .1; return layer.alert(content, options, yes); }; /** 封装layer.confirm */ admin.confirm = function (content, options, yes, cancel) { if (typeof options === 'function') { cancel = yes; yes = options; options = {}; } if (options.skin === undefined) options.skin = 'layui-layer-admin'; if (options.shade === undefined) options.shade = .1; return layer.confirm(content, options, yes, cancel); }; /** 封装layer.prompt */ admin.prompt = function (options, yes) { if (typeof options === 'function') { yes = options; options = {}; } if (options.skin === undefined) options.skin = 'layui-layer-admin layui-layer-prompt'; if (options.shade === undefined) options.shade = .1; return layer.prompt(options, yes); }; /** 封装ajax请求,返回数据类型为json */ admin.req = function (url, data, success, method, option) { if (typeof data === 'function') { option = method; method = success; success = data; data = {}; } if (method !== undefined && typeof method !== 'string') { option = method; method = undefined; } if (!method) method = 'GET'; if (typeof data === 'string') { if (!option) option = {}; if (!option.contentType) option.contentType = 'application/json;charset=UTF-8'; } else if (setter.reqPutToPost) { if ('put' === method.toLowerCase()) { method = 'POST'; data._method = 'PUT'; } else if ('delete' === method.toLowerCase()) { method = 'GET'; data._method = 'DELETE'; } } return admin.ajax($.extend({ url: (setter.baseServer || '') + url, data: data, type: method, dataType: 'json', success: success }, option)); }; /** 封装ajax请求 */ admin.ajax = function (param) { var oldParam = admin.util.deepClone(param); if (!param.dataType) param.dataType = 'json'; if (!param.headers) param.headers = {}; // 统一设置header var headers = setter.getAjaxHeaders(param.url); if (headers) { for (var i = 0; i < headers.length; i++) { if (param.headers[headers[i].name] === undefined) param.headers[headers[i].name] = headers[i].value; } } // success预处理 var success = param.success; param.success = function (result, status, xhr) { var before = setter.ajaxSuccessBefore(admin.parseJSON(result), param.url, { param: oldParam, reload: function (p) { admin.ajax($.extend(true, oldParam, p)); }, update: function (r) { result = r; }, xhr: xhr }); if (before !== false) success && success(result, status, xhr); else param.cancel && param.cancel(); }; param.error = function (xhr, status) { param.success({code: xhr.status, msg: xhr.statusText}, status, xhr); }; // 解决缓存问题 if (layui.cache.version && (!setter.apiNoCache || param.dataType.toLowerCase() !== 'json')) { if (param.url.indexOf('?') === -1) param.url += '?v='; else param.url += '&v='; if (layui.cache.version === true) param.url += new Date().getTime(); else param.url += layui.cache.version; } return $.ajax(param); }; /** 解析json */ admin.parseJSON = function (str) { if (typeof str === 'string') { try { return JSON.parse(str); } catch (e) { } } return str; }; /** 显示加载动画 */ admin.showLoading = function (elem, type, opacity, size) { if (elem !== undefined && (typeof elem !== 'string') && !(elem instanceof $)) { type = elem.type; opacity = elem.opacity; size = elem.size; elem = elem.elem; } if (type === undefined) type = setter.defaultLoading || 1; if (size === undefined) size = 'sm'; if (elem === undefined) elem = 'body'; var loader = [ '<div class="ball-loader ' + size + '"><span></span><span></span><span></span><span></span></div>', '<div class="rubik-loader ' + size + '"></div>', '<div class="signal-loader ' + size + '"><span></span><span></span><span></span><span></span></div>', '<div class="layui-loader ' + size + '"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>' ]; $(elem).addClass('page-no-scroll'); // 禁用滚动条 $(elem).scrollTop(0); var $loading = $(elem).children('.page-loading'); if ($loading.length <= 0) { $(elem).append('<div class="page-loading">' + loader[type - 1] + '</div>'); $loading = $(elem).children('.page-loading'); } if (opacity !== undefined) $loading.css('background-color', 'rgba(255,255,255,' + opacity + ')'); $loading.show(); }; /** 移除加载动画 */ admin.removeLoading = function (elem, fade, del) { if (elem === undefined) elem = 'body'; if (fade === undefined) fade = true; var $loading = $(elem).children('.page-loading'); if (del) $loading.remove(); else if (fade) $loading.fadeOut('fast'); else $loading.hide(); $(elem).removeClass('page-no-scroll'); }; /** 缓存临时数据 */ admin.putTempData = function (key, value, local) { var tableName = local ? setter.tableName : setter.tableName + '_tempData'; if (value === undefined || value === null) { if (local) layui.data(tableName, {key: key, remove: true}); else layui.sessionData(tableName, {key: key, remove: true}); } else { if (local) layui.data(tableName, {key: key, value: value}); else layui.sessionData(tableName, {key: key, value: value}); } }; /** 获取缓存临时数据 */ admin.getTempData = function (key, local) { if (typeof key === 'boolean') { local = key; key = undefined; } var tableName = local ? setter.tableName : setter.tableName + '_tempData'; var tempData = local ? layui.data(tableName) : layui.sessionData(tableName); if (!key) return tempData; return tempData ? tempData[key] : undefined; }; /** 滑动选项卡 */ admin.rollPage = function (d) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.rollPage(d); var $tabTitle = $(tabDOM + '>.layui-tab-title'); var left = $tabTitle.scrollLeft(); if ('left' === d) { $tabTitle.animate({'scrollLeft': left - 120}, 100); } else if ('auto' === d) { var autoLeft = 0; $tabTitle.children("li").each(function () { if ($(this).hasClass('layui-this')) return false; else autoLeft += $(this).outerWidth(); }); $tabTitle.animate({'scrollLeft': autoLeft - 120}, 100); } else { $tabTitle.animate({'scrollLeft': left + 120}, 100); } }; /** 刷新当前选项卡 */ admin.refresh = function (url, isIndex) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.refresh(url); var $iframe; if (!url) { $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item.layui-show>.admin-iframe'); if (!$iframe || $iframe.length <= 0) $iframe = $(bodyDOM + '>div>.admin-iframe'); } else { $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item>.admin-iframe[lay-id="' + url + '"]'); if (!$iframe || $iframe.length <= 0) $iframe = $(bodyDOM + '>.admin-iframe'); } if (!$iframe || !$iframe[0]) return console.warn(url + ' is not found'); try { if (isIndex && $iframe[0].contentWindow.refreshTab) { $iframe[0].contentWindow.refreshTab(); } else { admin.showLoading({elem: $iframe.parent(), size: ''}); $iframe[0].contentWindow.location.reload(); } } catch (e) { console.warn(e); $iframe.attr('src', $iframe.attr('src')); } }; /** 关闭当前选项卡 */ admin.closeThisTabs = function (url) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeThisTabs(url); admin.closeTabOperNav(); var $title = $(tabDOM + '>.layui-tab-title'); if (!url) { if ($title.find('li').first().hasClass('layui-this')) return layer.msg('主页不能关闭', {icon: 2}); $title.find('li.layui-this').find('.layui-tab-close').trigger('click'); } else { if (url === $title.find('li').first().attr('lay-id')) return layer.msg('主页不能关闭', {icon: 2}); $title.find('li[lay-id="' + url + '"]').find('.layui-tab-close').trigger('click'); } }; /** 关闭其他选项卡 */ admin.closeOtherTabs = function (url) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeOtherTabs(url); if (!url) { $(tabDOM + '>.layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click'); } else { $(tabDOM + '>.layui-tab-title li:gt(0)').each(function () { if (url !== $(this).attr('lay-id')) $(this).find('.layui-tab-close').trigger('click'); }); } admin.closeTabOperNav(); }; /** 关闭所有选项卡 */ admin.closeAllTabs = function () { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeAllTabs(); $(tabDOM + '>.layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click'); $(tabDOM + '>.layui-tab-title li:eq(0)').trigger('click'); admin.closeTabOperNav(); }; /** 关闭选项卡操作菜单 */ admin.closeTabOperNav = function () { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeTabOperNav(); $('.layui-icon-down .layui-nav .layui-nav-child').removeClass('layui-show'); }; /** 设置主题 */ admin.changeTheme = function (theme, win, noCache, noChild) { if (!noCache) admin.putSetting('defaultTheme', theme); if (!win) win = top; admin.removeTheme(win); if (theme) { try { var $body = win.layui.jquery('body'); $body.addClass(theme); $body.data('theme', theme); } catch (e) { } } if (noChild) return; var ifs = win.frames; for (var i = 0; i < ifs.length; i++) admin.changeTheme(theme, ifs[i], true, false); }; /** 移除主题 */ admin.removeTheme = function (w) { if (!w) w = window; try { var $body = w.layui.jquery('body'); var theme = $body.data('theme'); if (theme) $body.removeClass(theme); $body.removeData('theme'); } catch (e) { } }; /** 关闭当前iframe层弹窗 */ admin.closeThisDialog = function () { return admin.closeDialog(); }; /** 关闭elem所在的页面层弹窗 */ admin.closeDialog = function (elem) { if (elem) layer.close(admin.getLayerIndex(elem)); else parent.layer.close(parent.layer.getFrameIndex(window.name)); }; /** 获取页面层弹窗的index */ admin.getLayerIndex = function (elem) { if (!elem) return parent.layer.getFrameIndex(window.name); var id = $(elem).parents('.layui-layer').first().attr('id'); if (id && id.length >= 11) return id.substring(11); }; /** 让当前的iframe弹层自适应高度 */ admin.iframeAuto = function () { return parent.layer.iframeAuto(parent.layer.getFrameIndex(window.name)); }; /** 获取浏览器高度 */ admin.getPageHeight = function () { return document.documentElement.clientHeight || document.body.clientHeight; }; /** 获取浏览器宽度 */ admin.getPageWidth = function () { return document.documentElement.clientWidth || document.body.clientWidth; }; /** 绑定表单弹窗 */ admin.modelForm = function (layero, btnFilter, formFilter) { var $layero = $(layero); $layero.addClass('layui-form'); if (formFilter) $layero.attr('lay-filter', formFilter); // 确定按钮绑定submit var $btnSubmit = $layero.find('.layui-layer-btn .layui-layer-btn0'); $btnSubmit.attr('lay-submit', ''); $btnSubmit.attr('lay-filter', btnFilter); }; /** loading按钮 */ admin.btnLoading = function (elem, text, loading) { if (text !== undefined && (typeof text === 'boolean')) { loading = text; text = undefined; } if (text === undefined) text = ' 加载中'; if (loading === undefined) loading = true; var $elem = $(elem); if (loading) { $elem.addClass('ew-btn-loading'); $elem.prepend('<span class="ew-btn-loading-text"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>' + text + '</span>'); $elem.attr('disabled', 'disabled').prop('disabled', true); } else { $elem.removeClass('ew-btn-loading'); $elem.children('.ew-btn-loading-text').remove(); $elem.removeProp('disabled').removeAttr('disabled'); } }; /** 鼠标移入侧边栏自动展开 */ admin.openSideAutoExpand = function () { var $side = $('.layui-layout-admin>.layui-side'); $side.off('mouseenter.openSideAutoExpand').on("mouseenter.openSideAutoExpand", function () { if (!$(this).parent().hasClass('admin-nav-mini')) return; admin.flexible(true); $(this).addClass('side-mini-hover'); }); $side.off('mouseleave.openSideAutoExpand').on("mouseleave.openSideAutoExpand", function () { if (!$(this).hasClass('side-mini-hover')) return; admin.flexible(false); $(this).removeClass('side-mini-hover'); }); }; /** 表格单元格超出内容自动展开 */ admin.openCellAutoExpand = function () { var $body = $('body'); $body.off('mouseenter.openCellAutoExpand').on('mouseenter.openCellAutoExpand', '.layui-table-view td', function () { $(this).find('.layui-table-grid-down').trigger('click'); }); $body.off('mouseleave.openCellAutoExpand').on('mouseleave.openCellAutoExpand', '.layui-table-tips>.layui-layer-content', function () { $('.layui-table-tips-c').trigger('click'); }); }; /** open事件解析layer参数 */ admin.parseLayerOption = function (option) { // 数组类型进行转换 for (var f in option) { if (!option.hasOwnProperty(f)) continue; if (option[f] && option[f].toString().indexOf(',') !== -1) option[f] = option[f].toString().split(','); } // function类型参数转换 var fs = {'success': 'layero,index', 'cancel': 'index,layero', 'end': '', 'full': '', 'min': '', 'restore': ''}; for (var k in fs) { if (!fs.hasOwnProperty(k) || !option[k]) continue; try { if (/^[a-zA-Z_]+[a-zA-Z0-9_]+$/.test(option[k])) option[k] += '()'; option[k] = new Function(fs[k], option[k]); } catch (e) { option[k] = undefined; } } // content取内容 if (option.content && (typeof option.content === 'string') && option.content.indexOf('#') === 0) { if ($(option.content).is('script')) option.content = $(option.content).html(); else option.content = $(option.content); } if (option.type === undefined && option.url === undefined) option.type = 2; // 默认为iframe类型 return option; }; /** 字符串形式的parent.parent转window对象 */ admin.strToWin = function (str) { var win = window; if (!str) return win; var ws = str.split('.'); for (var i = 0; i < ws.length; i++) win = win[ws[i]]; return win; }; /** 解决折叠侧边栏表格滚动条闪现 */ admin.hideTableScrollBar = function (win) { if (admin.getPageWidth() <= 768) return; if (!win) { var $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item.layui-show>.admin-iframe'); if ($iframe.length <= 0) $iframe = $(bodyDOM + '>div>.admin-iframe'); if ($iframe.length > 0) win = $iframe[0].contentWindow; } try { // 可能会跨域 if (window.hsbTimer) clearTimeout(window.hsbTimer); win.layui.jquery('.layui-table-body.layui-table-main').addClass('no-scrollbar'); window.hsbTimer = setTimeout(function () { win.layui.jquery('.layui-table-body.layui-table-main').removeClass('no-scrollbar'); }, 800); } catch (e) { } }; /** 判断是否是主框架 */ admin.isTop = function () { return $(bodyDOM).length > 0; }; /** admin提供的事件 */ admin.events = { /* 折叠侧导航 */ flexible: function () { admin.strToWin($(this).data('window')).layui.admin.flexible(); }, /* 刷新主体部分 */ refresh: function () { admin.strToWin($(this).data('window')).layui.admin.refresh(); }, /* 后退 */ back: function () { admin.strToWin($(this).data('window')).history.back(); }, /* 设置主题 */ theme: function () { var option = admin.util.deepClone($(this).data()); admin.strToWin(option.window).layui.admin.popupRight($.extend({ id: 'layer-theme', url: option.url || 'tpl/tpl-theme.html' }, admin.parseLayerOption(option))); }, /* 打开便签 */ note: function () { var option = admin.util.deepClone($(this).data()); admin.strToWin(option.window).layui.admin.popupRight($.extend({ id: 'layer-note', url: option.url || 'tpl/tpl-note.html' }, admin.parseLayerOption(option))); }, /* 打开消息 */ message: function () { var option = admin.util.deepClone($(this).data()); admin.strToWin(option.window).layui.admin.popupRight($.extend({ id: 'layer-notice', url: option.url || 'tpl/tpl-message.html' }, admin.parseLayerOption(option))); }, /* 打开修改密码弹窗 */ psw: function () { var option = admin.util.deepClone($(this).data()); admin.strToWin(option.window).layui.admin.open($.extend({ id: 'layer-psw', title: '修改密码', shade: 0, url: option.url || 'tpl/tpl-password.html' }, admin.parseLayerOption(option))); }, /* 退出登录 */ logout: function () { var option = admin.util.deepClone($(this).data()); admin.unlockScreen(); function doLogout() { if (option.ajax) { var loadIndex = layer.load(2); admin.req(option.ajax, function (res) { layer.close(loadIndex); if (option.parseData) { try { var parseData = new Function('res', option.parseData); res = parseData(res); } catch (e) { console.error(e); } } if (res.code == (option.code || 0)) { setter.removeToken && setter.removeToken(); location.replace(option.url || '/'); } else { layer.msg(res.msg, {icon: 2}); } }, option.method || 'delete'); } else { setter.removeToken && setter.removeToken(); location.replace(option.url || '/'); } } if (false === option.confirm || 'false' === option.confirm) return doLogout(); admin.strToWin(option.window).layui.layer.confirm(option.content || '确定要退出登录吗?', $.extend({ title: '温馨提示', skin: 'layui-layer-admin', shade: .1 }, admin.parseLayerOption(option)), function () { doLogout(); }); }, /* 打开弹窗 */ open: function () { var option = admin.util.deepClone($(this).data()); admin.strToWin(option.window).layui.admin.open(admin.parseLayerOption(option)); }, /* 打开右侧弹窗 */ popupRight: function () { var option = admin.util.deepClone($(this).data()); admin.strToWin(option.window).layui.admin.popupRight(admin.parseLayerOption(option)); }, /* 全屏 */ fullScreen: function () { var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore'; var $ti = $(this).find('i'); var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false; if (isFullscreen) { var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen; if (efs) { efs.call(document); } else if (window.ActiveXObject) { var ws = new ActiveXObject('WScript.Shell'); ws && ws.SendKeys('{F11}'); } $ti.addClass(ac).removeClass(ic); } else { var el = document.documentElement; var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen; if (rfs) { rfs.call(el); } else if (window.ActiveXObject) { var wss = new ActiveXObject('WScript.Shell'); wss && wss.SendKeys('{F11}'); } $ti.addClass(ic).removeClass(ac); } }, /* 左滑动tab */ leftPage: function () { admin.strToWin($(this).data('window')).layui.admin.rollPage('left'); }, /* 右滑动tab */ rightPage: function () { admin.strToWin($(this).data('window')).layui.admin.rollPage(); }, /* 关闭当前选项卡 */ closeThisTabs: function () { var url = $(this).data('url'); admin.strToWin($(this).data('window')).layui.admin.closeThisTabs(url); }, /* 关闭其他选项卡 */ closeOtherTabs: function () { admin.strToWin($(this).data('window')).layui.admin.closeOtherTabs(); }, /* 关闭所有选项卡 */ closeAllTabs: function () { admin.strToWin($(this).data('window')).layui.admin.closeAllTabs(); }, /* 关闭当前弹窗(智能) */ closeDialog: function () { if ($(this).parents('.layui-layer').length > 0) admin.closeDialog(this); else admin.closeDialog(); }, /* 关闭当前iframe弹窗 */ closeIframeDialog: function () { admin.closeDialog(); }, /* 关闭当前页面层弹窗 */ closePageDialog: function () { admin.closeDialog(this); }, /* 锁屏 */ lockScreen: function () { admin.strToWin($(this).data('window')).layui.admin.lockScreen($(this).data('url')); } }; /** 选择位置 */ admin.chooseLocation = function (param) { var dialogTitle = param.title; // 弹窗标题 var onSelect = param.onSelect; // 选择回调 var needCity = param.needCity; // 是否返回行政区 var mapCenter = param.center; // 地图中心 var defaultZoom = param.defaultZoom; // 地图默认缩放级别 var pointZoom = param.pointZoom; // 选中时地图缩放级别 var searchKeywords = param.keywords; // poi检索关键字 var searchPageSize = param.pageSize; // poi检索最大数量 var mapJsUrl = param.mapJsUrl; // 高德地图js的url if (dialogTitle === undefined) dialogTitle = '选择位置'; if (defaultZoom === undefined) defaultZoom = 11; if (pointZoom === undefined) pointZoom = 17; if (searchKeywords === undefined) searchKeywords = ''; if (searchPageSize === undefined) searchPageSize = 30; if (mapJsUrl === undefined) mapJsUrl = 'https://webapi.amap.com/maps?v=1.4.14&key=006d995d433058322319fa797f2876f5'; var isSelMove = false, selLocation; // 搜索附近 var searchNearBy = function (lat, lng) { AMap.service(['AMap.PlaceSearch'], function () { var placeSearch = new AMap.PlaceSearch({ type: '', pageSize: searchPageSize, pageIndex: 1 }); var cpoint = [lng, lat]; placeSearch.searchNearBy(searchKeywords, cpoint, 1000, function (status, result) { if (status === 'complete') { var pois = result.poiList.pois; var htmlList = ''; for (var i = 0; i < pois.length; i++) { var poiItem = pois[i]; if (poiItem.location !== undefined) { htmlList += '<div data-lng="' + poiItem.location.lng + '" data-lat="' + poiItem.location.lat + '" class="ew-map-select-search-list-item">'; htmlList += ' <div class="ew-map-select-search-list-item-title">' + poiItem.name + '</div>'; htmlList += ' <div class="ew-map-select-search-list-item-address">' + poiItem.address + '</div>'; htmlList += ' <div class="ew-map-select-search-list-item-icon-ok layui-hide"><i class="layui-icon layui-icon-ok-circle"></i></div>'; htmlList += '</div>'; } } $('#ew-map-select-pois').html(htmlList); } }); }); }; // 渲染地图 var renderMap = function () { var mapOption = { resizeEnable: true, // 监控地图容器尺寸变化 zoom: defaultZoom // 初缩放级别 }; mapCenter && (mapOption.center = mapCenter); var map = new AMap.Map('ew-map-select-map', mapOption); // 地图加载完成 map.on('complete', function () { var center = map.getCenter(); searchNearBy(center.lat, center.lng); }); // 地图移动结束事件 map.on('moveend', function () { if (isSelMove) { isSelMove = false; } else { $('#ew-map-select-tips').addClass('layui-hide'); $('#ew-map-select-center-img').removeClass('bounceInDown'); setTimeout(function () { $('#ew-map-select-center-img').addClass('bounceInDown'); }); var center = map.getCenter(); searchNearBy(center.lat, center.lng); } }); // poi列表点击事件 $('#ew-map-select-pois').off('click').on('click', '.ew-map-select-search-list-item', function () { $('#ew-map-select-tips').addClass('layui-hide'); $('#ew-map-select-pois .ew-map-select-search-list-item-icon-ok').addClass('layui-hide'); $(this).find('.ew-map-select-search-list-item-icon-ok').removeClass('layui-hide'); $('#ew-map-select-center-img').removeClass('bounceInDown'); setTimeout(function () { $('#ew-map-select-center-img').addClass('bounceInDown'); }); var lng = $(this).data('lng'); var lat = $(this).data('lat'); var name = $(this).find('.ew-map-select-search-list-item-title').text(); var address = $(this).find('.ew-map-select-search-list-item-address').text(); selLocation = {name: name, address: address, lat: lat, lng: lng}; isSelMove = true; map.setZoomAndCenter(pointZoom, [lng, lat]); }); // 确定按钮点击事件 $('#ew-map-select-btn-ok').click(function () { if (selLocation === undefined) { layer.msg('请点击位置列表选择', {icon: 2, anim: 6}); } else if (onSelect) { if (needCity) { var loadIndex = layer.load(2); map.setCenter([selLocation.lng, selLocation.lat]); map.getCity(function (result) { layer.close(loadIndex); selLocation.city = result; admin.closeDialog('#ew-map-select-btn-ok'); onSelect(selLocation); }); } else { admin.closeDialog('#ew-map-select-btn-ok'); onSelect(selLocation); } } else { admin.closeDialog('#ew-map-select-btn-ok'); } }); // 搜索提示 var $inputSearch = $('#ew-map-select-input-search'); $inputSearch.off('input').on('input', function () { var keywords = $(this).val(); var $selectTips = $('#ew-map-select-tips'); if (!keywords) { $selectTips.html(''); $selectTips.addClass('layui-hide'); } AMap.plugin('AMap.Autocomplete', function () { var autoComplete = new AMap.Autocomplete({city: '全国'}); autoComplete.search(keywords, function (status, result) { if (result.tips) { var tips = result.tips; var htmlList = ''; for (var i = 0; i < tips.length; i++) { var tipItem = tips[i]; if (tipItem.location !== undefined) { htmlList += '<div data-lng="' + tipItem.location.lng + '" data-lat="' + tipItem.location.lat + '" class="ew-map-select-search-list-item">'; htmlList += ' <div class="ew-map-select-search-list-item-icon-search"><i class="layui-icon layui-icon-search"></i></div>'; htmlList += ' <div class="ew-map-select-search-list-item-title">' + tipItem.name + '</div>'; htmlList += ' <div class="ew-map-select-search-list-item-address">' + tipItem.address + '</div>'; htmlList += '</div>'; } } $selectTips.html(htmlList); if (tips.length === 0) $('#ew-map-select-tips').addClass('layui-hide'); else $('#ew-map-select-tips').removeClass('layui-hide'); } else { $selectTips.html(''); $selectTips.addClass('layui-hide'); } }); }); }); $inputSearch.off('blur').on('blur', function () { var keywords = $(this).val(); var $selectTips = $('#ew-map-select-tips'); if (!keywords) { $selectTips.html(''); $selectTips.addClass('layui-hide'); } }); $inputSearch.off('focus').on('focus', function () { var keywords = $(this).val(); if (keywords) $('#ew-map-select-tips').removeClass('layui-hide'); }); // tips列表点击事件 $('#ew-map-select-tips').off('click').on('click', '.ew-map-select-search-list-item', function () { $('#ew-map-select-tips').addClass('layui-hide'); var lng = $(this).data('lng'); var lat = $(this).data('lat'); selLocation = undefined; map.setZoomAndCenter(pointZoom, [lng, lat]); }); }; // 显示弹窗 var htmlStr = [ '<div class="ew-map-select-tool" style="position: relative;">', ' 搜索:<input id="ew-map-select-input-search" class="layui-input icon-search inline-block" style="width: 190px;" placeholder="输入关键字搜索" autocomplete="off" />', ' <button id="ew-map-select-btn-ok" class="layui-btn icon-btn pull-right" type="button"><i class="layui-icon"></i>确定</button>', ' <div id="ew-map-select-tips" class="ew-map-select-search-list layui-hide">', ' </div>', '</div>', '<div class="layui-row ew-map-select">', ' <div class="layui-col-sm7 ew-map-select-map-group" style="position: relative;">', ' <div id="ew-map-select-map"></div>', ' <i id="ew-map-select-center-img2" class="layui-icon layui-icon-add-1"></i>', ' <img id="ew-map-select-center-img" src="https://3gimg.qq.com/lightmap/components/locationPicker2/image/marker.png" alt=""/>', ' </div>', ' <div id="ew-map-select-pois" class="layui-col-sm5 ew-map-select-search-list">', ' </div>', '</div>'].join(''); admin.open({ id: 'ew-map-select', type: 1, title: dialogTitle, area: '750px', content: htmlStr, success: function (layero, dIndex) { var $content = $(layero).children('.layui-layer-content'); $content.css('overflow', 'visible'); admin.showLoading($content); if (undefined === window.AMap) { $.getScript(mapJsUrl, function () { renderMap(); admin.removeLoading($content); }); } else { renderMap(); admin.removeLoading($content); } } }); }; /** 裁剪图片 */ admin.cropImg = function (param) { var uploadedImageType = 'image/jpeg'; // 当前图片的类型 var aspectRatio = param.aspectRatio; // 裁剪比例 var imgSrc = param.imgSrc; // 裁剪图片 var imgType = param.imgType; // 图片类型 var onCrop = param.onCrop; // 裁剪完成回调 var limitSize = param.limitSize; // 限制选择的图片大小 var acceptMime = param.acceptMime; // 限制选择的图片类型 var imgExts = param.exts; // 限制选择的图片类型 var dialogTitle = param.title; // 弹窗的标题 if (aspectRatio === undefined) aspectRatio = 1; if (dialogTitle === undefined) dialogTitle = '裁剪图片'; if (imgType) uploadedImageType = imgType; layui.use(['Cropper', 'upload'], function () { var Cropper = layui.Cropper, upload = layui.upload; // 渲染组件 function renderElem() { var imgCropper, $cropImg = $('#ew-crop-img'); // 上传文件按钮绑定事件 var uploadOptions = { elem: '#ew-crop-img-upload', auto: false, drag: false, choose: function (obj) { obj.preview(function (index, file, result) { uploadedImageType = file.type; $cropImg.attr('src', result); if (!imgSrc || !imgCropper) { imgSrc = result; renderElem(); } else { imgCropper.destroy(); imgCropper = new Cropper($cropImg[0], options); } }); } }; if (limitSize !== undefined) uploadOptions.size = limitSize; if (acceptMime !== undefined) uploadOptions.acceptMime = acceptMime; if (imgExts !== undefined) uploadOptions.exts = imgExts; upload.render(uploadOptions); // 没有传图片触发上传图片 if (!imgSrc) return $('#ew-crop-img-upload').trigger('click'); // 渲染裁剪组件 var options = {aspectRatio: aspectRatio, preview: '#ew-crop-img-preview'}; imgCropper = new Cropper($cropImg[0], options); // 操作按钮绑定事件 $('.ew-crop-tool').on('click', '[data-method]', function () { var data = $(this).data(), cropped, result; if (!imgCropper || !data.method) return; data = $.extend({}, data); cropped = imgCropper.cropped; switch (data.method) { case 'rotate': if (cropped && options.viewMode > 0) imgCropper.clear(); break; case 'getCroppedCanvas': if (uploadedImageType === 'image/jpeg') { if (!data.option) data.option = {}; data.option.fillColor = '#fff'; } break; } result = imgCropper[data.method](data.option, data.secondOption); switch (data.method) { case 'rotate': if (cropped && options.viewMode > 0) imgCropper.crop(); break; case 'scaleX': case 'scaleY': $(this).data('option', -data.option); break; case 'getCroppedCanvas': if (result) { onCrop && onCrop(result.toDataURL(uploadedImageType)); admin.closeDialog('#ew-crop-img'); } else { layer.msg('裁剪失败', {icon: 2, anim: 6}); } break; } }); } // 显示弹窗 var htmlStr = [ '<div class="layui-row">', ' <div class="layui-col-sm8" style="min-height: 9rem;">', ' <img id="ew-crop-img" src="', imgSrc || '', '" style="max-width:100%;" alt=""/>', ' </div>', ' <div class="layui-col-sm4 layui-hide-xs" style="padding: 15px;text-align: center;">', ' <div id="ew-crop-img-preview" style="width: 100%;height: 9rem;overflow: hidden;display: inline-block;border: 1px solid #dddddd;"></div>', ' </div>', '</div>', '<div class="text-center ew-crop-tool" style="padding: 15px 10px 5px 0;">', ' <div class="layui-btn-group" style="margin-bottom: 10px;margin-left: 10px;">', ' <button title="放大" data-method="zoom" data-option="0.1" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-add-1"></i></button>', ' <button title="缩小" data-method="zoom" data-option="-0.1" class="layui-btn icon-btn" type="button"><span style="display: inline-block;width: 12px;height: 2.5px;background: rgba(255, 255, 255, 0.9);vertical-align: middle;margin: 0 4px;"></span></button>', ' </div>', ' <div class="layui-btn-group layui-hide-xs" style="margin-bottom: 10px;">', ' <button title="向左旋转" data-method="rotate" data-option="-45" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh-1" style="transform: rotateY(180deg) rotate(40deg);display: inline-block;"></i></button>', ' <button title="向右旋转" data-method="rotate" data-option="45" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh-1" style="transform: rotate(30deg);display: inline-block;"></i></button>', ' </div>', ' <div class="layui-btn-group" style="margin-bottom: 10px;">', ' <button title="左移" data-method="move" data-option="-10" data-second-option="0" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-left"></i></button>', ' <button title="右移" data-method="move" data-option="10" data-second-option="0" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-right"></i></button>', ' <button title="上移" data-method="move" data-option="0" data-second-option="-10" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-up"></i></button>', ' <button title="下移" data-method="move" data-option="0" data-second-option="10" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-down"></i></button>', ' </div>', ' <div class="layui-btn-group" style="margin-bottom: 10px;">', ' <button title="左右翻转" data-method="scaleX" data-option="-1" class="layui-btn icon-btn" type="button" style="position: relative;width: 41px;"><i class="layui-icon layui-icon-triangle-r" style="position: absolute;left: 9px;top: 0;transform: rotateY(180deg);font-size: 16px;"></i><i class="layui-icon layui-icon-triangle-r" style="position: absolute; right: 3px; top: 0;font-size: 16px;"></i></button>', ' <button title="上下翻转" data-method="scaleY" data-option="-1" class="layui-btn icon-btn" type="button" style="position: relative;width: 41px;"><i class="layui-icon layui-icon-triangle-d" style="position: absolute;left: 11px;top: 6px;transform: rotateX(180deg);line-height: normal;font-size: 16px;"></i><i class="layui-icon layui-icon-triangle-d" style="position: absolute; left: 11px; top: 14px;line-height: normal;font-size: 16px;"></i></button>', ' </div>', ' <div class="layui-btn-group" style="margin-bottom: 10px;">', ' <button title="重新开始" data-method="reset" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh"></i></button>', ' <button title="选择图片" id="ew-crop-img-upload" class="layui-btn icon-btn" type="button" style="border-radius: 0 2px 2px 0;"><i class="layui-icon layui-icon-upload-drag"></i></button>', ' </div>', ' <button data-method="getCroppedCanvas" data-option="{ "maxWidth": 4096, "maxHeight": 4096 }" class="layui-btn icon-btn" type="button" style="margin-left: 10px;margin-bottom: 10px;"><i class="layui-icon"></i>完成</button>', '</div>'].join(''); admin.open({ title: dialogTitle, area: '665px', type: 1, content: htmlStr, success: function (layero, dIndex) { $(layero).children('.layui-layer-content').css('overflow', 'visible'); renderElem(); } }); }); }; /** 工具类 */ admin.util = { /* 百度地图坐标转高德地图坐标 */ Convert_BD09_To_GCJ02: function (point) { var x_pi = (3.14159265358979324 * 3000.0) / 180.0; var x = point.lng - 0.0065, y = point.lat - 0.006; var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi); var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi); return {lng: z * Math.cos(theta), lat: z * Math.sin(theta)}; }, /* 高德地图坐标转百度地图坐标 */ Convert_GCJ02_To_BD09: function (point) { var x_pi = (3.14159265358979324 * 3000.0) / 180.0; var x = point.lng, y = point.lat; var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); return {lng: z * Math.cos(theta) + 0.0065, lat: z * Math.sin(theta) + 0.006}; }, /* 动态数字 */ animateNum: function (elem, isThd, delay, grain) { isThd = isThd === null || isThd === undefined || isThd === true || isThd === 'true'; // 是否是千分位 delay = isNaN(delay) ? 500 : delay; // 动画延迟 grain = isNaN(grain) ? 100 : grain; // 动画粒度 var getPref = function (str) { var pref = ''; for (var i = 0; i < str.length; i++) if (!isNaN(str.charAt(i))) return pref; else pref += str.charAt(i); }, getSuf = function (str) { var suf = ''; for (var i = str.length - 1; i >= 0; i--) if (!isNaN(str.charAt(i))) return suf; else suf = str.charAt(i) + suf; }, toThd = function (num, isThd) { if (!isThd) return num; if (!/^[0-9]+.?[0-9]*$/.test(num)) return num; num = num.toString(); return num.replace(num.indexOf('.') > 0 ? /(\d)(?=(\d{3})+(?:\.))/g : /(\d)(?=(\d{3})+(?:$))/g, '$1,'); }; $(elem).each(function () { var $this = $(this); var num = $this.data('num'); if (!num) { num = $this.text().replace(/,/g, ''); // 内容 $this.data('num', num); } var flag = 'INPUT,TEXTAREA'.indexOf($this.get(0).tagName) >= 0; // 是否是输入框 var pref = getPref(num.toString()), suf = getSuf(num.toString()); var strNum = num.toString().replace(pref, '').replace(suf, ''); if (isNaN(strNum * 1) || strNum === '0') { flag ? $this.val(num) : $this.html(num); return console.error('not a number'); } var int_dec = strNum.split('.'); var deciLen = int_dec[1] ? int_dec[1].length : 0; var startNum = 0.0, endNum = strNum; if (Math.abs(endNum * 1) > 10) startNum = parseFloat(int_dec[0].substring(0, int_dec[0].length - 1) + (int_dec[1] ? '.0' + int_dec[1] : '')); var oft = (endNum - startNum) / grain, temp = 0; var mTime = setInterval(function () { var str = pref + toThd(startNum.toFixed(deciLen), isThd) + suf; flag ? $this.val(str) : $this.html(str); startNum += oft; temp++; if (Math.abs(startNum) >= Math.abs(endNum * 1) || temp > 5000) { str = pref + toThd(endNum, isThd) + suf; flag ? $this.val(str) : $this.html(str); clearInterval(mTime); } }, delay / grain); }); }, /* 深度克隆对象 */ deepClone: function (obj) { var result; var oClass = admin.util.isClass(obj); if (oClass === 'Object') result = {}; else if (oClass === 'Array') result = []; else return obj; for (var key in obj) { if (!obj.hasOwnProperty(key)) continue; var copy = obj[key], cClass = admin.util.isClass(copy); if (cClass === 'Object') result[key] = arguments.callee(copy); // 递归调用 else if (cClass === 'Array') result[key] = arguments.callee(copy); else result[key] = obj[key]; } return result; }, /* 获取变量类型 */ isClass: function (o) { if (o === null) return 'Null'; if (o === undefined) return 'Undefined'; return Object.prototype.toString.call(o).slice(8, -1); }, /* 判断富文本是否为空 */ fullTextIsEmpty: function (text) { if (!text) return true; var noTexts = ['img', 'audio', 'video', 'iframe', 'object']; for (var i = 0; i < noTexts.length; i++) { if (text.indexOf('<' + noTexts[i]) > -1) return false; } var str = text.replace(/\s*/g, ''); // 去掉所有空格 if (!str) return true; str = str.replace(/ /ig, ''); // 去掉所有 if (!str) return true; str = str.replace(/<[^>]+>/g, ''); // 去掉所有html标签 return !str; }, /* 移除元素的style */ removeStyle: function (elem, names) { if (typeof names === 'string') names = [names]; for (var i = 0; i < names.length; i++) $(elem).css(names[i], ''); }, /* 滚动到顶部 */ scrollTop: function (elem) { $(elem || 'html,body').animate({scrollTop: 0}, 300); }, /* 模板解析 */ tpl: function (html, data, openCode, closeCode) { if (html === undefined || html === null || typeof html !== 'string') return html; if (!data) data = {}; if (!openCode) openCode = '{{'; if (!closeCode) closeCode = '}}'; var tool = { exp: function (str) { return new RegExp(str, 'g'); }, // 匹配满足规则内容 query: function (type, _, __) { var types = ['#([\\s\\S])+?', '([^{#}])*?'][type || 0]; return tool.exp((_ || '') + openCode + types + closeCode + (__ || '')); }, escape: function (str) { return String(str || '').replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&') .replace(/</g, '<').replace(/>/g, '>') .replace(/'/g, ''').replace(/"/g, '"'); }, error: function (e, tplog) { console.error('Laytpl Error:' + e + '\n' + (tplog || '')); }, parse: function (tpl, data) { var tplog = tpl; try { var jss = tool.exp('^' + openCode + '#'), jsse = tool.exp(closeCode + '$'); tpl = tpl.replace(tool.exp(openCode + '#'), openCode + '# ') .replace(tool.exp(closeCode + '}'), '} ' + closeCode).replace(/\\/g, '\\\\') // 不匹配指定区域的内容 .replace(tool.exp(openCode + '!(.+?)!' + closeCode), function (str) { str = str.replace(tool.exp('^' + openCode + '!'), '') .replace(tool.exp('!' + closeCode), '') .replace(tool.exp(openCode + '|' + closeCode), function (tag) { return tag.replace(/(.)/g, '\\$1') }); return str }) // 匹配JS规则内容 .replace(/(?="|')/g, '\\').replace(tool.query(), function (str) { str = str.replace(jss, '').replace(jsse, ''); return '";' + str.replace(/\\/g, '') + ';view+="'; }) // 匹配普通字段 .replace(tool.query(1), function (str) { var start = '"+('; if (str.replace(/\s/g, '') === openCode + closeCode) return ''; str = str.replace(tool.exp(openCode + '|' + closeCode), ''); if (/^=/.test(str)) { str = str.replace(/^=/, ''); start = '"+_escape_('; } return start + str.replace(/\\/g, '') + ')+"'; }) // 换行符处理 .replace(/\r\n/g, '\\r\\n" + "').replace(/\n/g, '\\n" + "').replace(/\r/g, '\\r" + "'); tpl = '"use strict";var view = "' + tpl + '";return view;'; tpl = new Function('d, _escape_', tpl); return tpl(data, tool.escape); } catch (e) { tool.error(e, tplog); return tplog; } } }; return tool.parse(html, data); }, /* 渲染动态模板 */ render: function (option) { if (typeof option.url === 'string') { option.success = function (res) { admin.util.render($.extend({}, option, {url: res})); }; if (option.ajax === 'ajax') admin.ajax(option); else admin.req(option.url, option.where, option.success, option.method, option); return; } var html = admin.util.tpl(option.tpl, option.url, option.open || setter.tplOpen, option.close || setter.tplClose); $(option.elem).next('[ew-tpl-rs]').remove(); $(option.elem).after(html); $(option.elem).next().attr('ew-tpl-rs', ''); option.done && option.done(option.url); } }; /** 锁屏功能 */ admin.lockScreen = function (url) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.lockScreen(url); if (!url) url = 'tpl/tpl-lock-screen.html'; var $lock = $('#ew-lock-screen-group'); if ($lock.length > 0) { $lock.fadeIn('fast'); admin.isLockScreen = true; admin.putTempData('isLockScreen', admin.isLockScreen, true); } else { var loadIndex = layer.load(2); admin.ajax({ url: url, dataType: 'html', success: function (res) { layer.close(loadIndex); if (typeof res === 'string') { $('body').append('<div id="ew-lock-screen-group">' + res + '</div>'); admin.isLockScreen = true; admin.putTempData('isLockScreen', admin.isLockScreen, true); admin.putTempData('lockScreenUrl', url, true); } else { console.error(res); layer.msg(JSON.stringify(res), {icon: 2, anim: 6}); } } }); } }; /** 解除锁屏 */ admin.unlockScreen = function (isRemove) { if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.unlockScreen(isRemove); var $lock = $('#ew-lock-screen-group'); isRemove ? $lock.remove() : $lock.fadeOut('fast'); admin.isLockScreen = false; admin.putTempData('isLockScreen', null, true); }; /** tips方法封装 */ admin.tips = function (option) { return layer.tips(option.text, option.elem, { tips: [option.direction || 1, option.bg || '#191a23'], tipsMore: option.tipsMore, time: option.time || -1, success: function (layero) { var $content = $(layero).children('.layui-layer-content'); if (option.padding || option.padding === 0) $content.css('padding', option.padding); if (option.color) $content.css('color', option.color); if (option.bgImg) $content.css('background-image', option.bgImg).children('.layui-layer-TipsG').css('z-index', '-1'); if (option.fontSize) $content.css('font-size', option.fontSize); if (!option.offset) return; var offset = option.offset.split(','); var top = offset[0], left = offset.length > 1 ? offset[1] : undefined; if (top) $(layero).css('margin-top', top); if (left) $(layero).css('margin-left', left); } }); }; /** 渲染动态模板 */ admin.renderTpl = function (elem) { if (!layui.admin) layui.admin = admin; // 解析数据 function parseData(data) { if (!data) return; try { return new Function('return ' + data + ';')(); } catch (e) { console.error(e + '\nlay-data: ' + data); } } $(elem || '[ew-tpl]').each(function () { var $this = $(this); var option = admin.util.deepClone($(this).data()); option.elem = $this; option.tpl = $this.html(); option.url = parseData($this.attr('ew-tpl')); option.headers = parseData(option.headers); option.where = parseData(option.where); if (option.done) { try { option.done = new Function('res', option.done); } catch (e) { console.error(e + '\nlay-data:' + option.done); option.done = undefined; } } admin.util.render(option); }); }; /** 事件监听 */ admin.on = function (events, callback) { return layui.onevent.call(this, 'admin', events, callback); }; /** 修改配置信息 */ admin.putSetting = function (key, value) { setter[key] = value; admin.putTempData(key, value, true); }; /** 恢复配置信息 */ admin.recoverState = function () { // 恢复锁屏状态 if (admin.getTempData('isLockScreen', true)) admin.lockScreen(admin.getTempData('lockScreenUrl', true)); // 恢复配置的主题 if (setter.defaultTheme) admin.changeTheme(setter.defaultTheme, window, true, true); // 恢复页脚状态、导航箭头 if (setter.closeFooter) $('body').addClass('close-footer'); if (setter.navArrow !== undefined) { var $nav = $(sideDOM + '>.layui-nav-tree'); $nav.removeClass('arrow2 arrow3'); if (setter.navArrow) $nav.addClass(setter.navArrow); } // 恢复tab自动刷新 if (setter.pageTabs && setter.tabAutoRefresh == 'true') $(tabDOM).attr('lay-autoRefresh', 'true'); }; /* 事件监听 */ admin.on = function (events, callback) { return layui.onevent.call(this, 'admin', events, callback); }; /** 侧导航折叠状态下鼠标经过无限悬浮效果 */ var navItemDOM = '.layui-layout-admin.admin-nav-mini>.layui-side .layui-nav .layui-nav-item'; $(document).on('mouseenter', navItemDOM + ',' + navItemDOM + ' .layui-nav-child>dd', function () { if (admin.getPageWidth() > 768) { var $that = $(this), $navChild = $that.find('>.layui-nav-child'); if ($navChild.length > 0) { $that.addClass('admin-nav-hover'); $navChild.css('left', $that.offset().left + $that.outerWidth()); var top = $that.offset().top; if (top + $navChild.outerHeight() > admin.getPageHeight()) { top = top - $navChild.outerHeight() + $that.outerHeight(); if (top < 60) top = 60; $navChild.addClass('show-top'); } $navChild.css('top', top); $navChild.addClass('ew-anim-drop-in'); } else if ($that.hasClass('layui-nav-item')) { admin.tips({elem: $that, text: $that.find('cite').text(), direction: 2, offset: '12px'}); } } }).on('mouseleave', navItemDOM + ',' + navItemDOM + ' .layui-nav-child>dd', function () { layer.closeAll('tips'); var $this = $(this); $this.removeClass('admin-nav-hover'); var $child = $this.find('>.layui-nav-child'); $child.removeClass('show-top ew-anim-drop-in'); $child.css({'left': 'auto', 'top': 'auto'}); }); /** 所有ew-event */ $(document).on('click', '*[ew-event]', function () { var te = admin.events[$(this).attr('ew-event')]; te && te.call(this, $(this)); }); /** 所有lay-tips处理 */ $(document).on('mouseenter', '*[lay-tips]', function () { var $this = $(this); admin.tips({ elem: $this, text: $this.attr('lay-tips'), direction: $this.attr('lay-direction'), bg: $this.attr('lay-bg'), offset: $this.attr('lay-offset'), padding: $this.attr('lay-padding'), color: $this.attr('lay-color'), bgImg: $this.attr('lay-bgImg'), fontSize: $this.attr('lay-fontSize') }); }).on('mouseleave', '*[lay-tips]', function () { layer.closeAll('tips'); }); /** 表单搜索展开更多 */ $(document).on('click', '.form-search-expand,[search-expand]', function () { var $this = $(this); var $form = $this.parents('.layui-form').first(); var expand = $this.data('expand'); var change = $this.attr('search-expand'); if (expand === undefined || expand === true) { expand = true; $this.data('expand', false); $this.html('收起 <i class="layui-icon layui-icon-up"></i>'); var $elem = $form.find('.form-search-show-expand'); $elem.attr('expand-show', ''); $elem.removeClass('form-search-show-expand'); } else { expand = false; $this.data('expand', true); $this.html('展开 <i class="layui-icon layui-icon-down"></i>'); $form.find('[expand-show]').addClass('form-search-show-expand'); } if (!change) return; new Function('d', change)({expand: expand, elem: $this}); }); /** select使用fixed定位显示 */ $(document).on('click.ew-sel-fixed', '.ew-select-fixed .layui-form-select .layui-select-title', function () { var $this = $(this), $dl = $this.parent().children('dl'), tTop = $this.offset().top; var tWidth = $this.outerWidth(), tHeight = $this.outerHeight(), scrollT = $(document).scrollTop(); var dWidth = $dl.outerWidth(), dHeight = $dl.outerHeight(); var top = tTop + tHeight + 5 - scrollT, left = $this.offset().left; if (top + dHeight > admin.getPageHeight()) top = top - dHeight - tHeight - 10; if (left + dWidth > admin.getPageWidth()) left = left - dWidth + tWidth; $dl.css({'left': left, 'top': top, 'min-width': tWidth}); }); /** 用于滚动时关闭一些fixed的组件 */ admin.hideFixedEl = function () { $('.ew-select-fixed .layui-form-select').removeClass('layui-form-selected layui-form-selectup'); // select $('body>.layui-laydate').remove(); // laydate }; /** 垂直导航栏展开折叠增加过渡效果 */ $(document).on('click', '.layui-nav-tree>.layui-nav-item a', function () { var $this = $(this), $child = $this.siblings('.layui-nav-child'), $parent = $this.parent(); if ($child.length === 0) return; if ($parent.hasClass('admin-nav-hover')) return; if ($parent.hasClass('layui-nav-itemed')) { // 因为layui会处理一遍所以这里状态是相反的 $child.css('display', 'none').slideDown('fast', function () { $(this).css('display', ''); }); } else { $child.css('display', 'block').slideUp('fast', function () { $(this).css('display', ''); }); } if ($this.parents('.layui-nav').attr('lay-shrink') === '_all') { // 手风琴效果 var $siblings = $this.parent().siblings('.layui-nav-itemed'); $siblings.children('.layui-nav-child').css('display', 'block').slideUp('fast', function () { $(this).css('display', ''); }); $siblings.removeClass('layui-nav-itemed'); } }); $('.layui-nav-tree[lay-shrink="all"]').attr('lay-shrink', '_all'); // 让layui不处理手风琴效果 /** 折叠面板展开折叠增加过渡效果 */ $(document).on('click', '.layui-collapse>.layui-colla-item>.layui-colla-title', function () { var $this = $(this), $content = $this.siblings('.layui-colla-content') , $collapse = $this.parent().parent(), isNone = $content.hasClass('layui-show'); if (isNone) { // 因为layui会处理一遍所以这里状态是相反的 $content.removeClass('layui-show').slideDown('fast').addClass('layui-show'); } else { $content.css('display', 'block').slideUp('fast', function () { $(this).css('display', ''); }); } $this.children('.layui-colla-icon').html('') .css({'transition': 'all .3s', 'transform': 'rotate(' + (isNone ? '90deg' : '0deg') + ')'}); if ($collapse.attr('lay-shrink') === '_all') { // 手风琴效果 var $show = $collapse.children('.layui-colla-item').children('.layui-colla-content.layui-show').not($content); $show.css('display', 'block').slideUp('fast', function () { $(this).css('display', ''); }); $show.removeClass('layui-show'); $show.siblings('.layui-colla-title').children('.layui-colla-icon').html('') .css({'transition': 'all .3s', 'transform': 'rotate(0deg)'}); } }); $('.layui-collapse[lay-accordion]').attr('lay-shrink', '_all').removeAttr('lay-accordion'); // 让layui不处理手风琴效果 /** 表单验证tips提示样式修改 */ layer.oldTips = layer.tips; layer.tips = function (content, follow, options) { var $fFip; // 判断是否是表单验证调用的tips if ($(follow).length > 0 && $(follow).parents('.layui-form').length > 0) { if ($(follow).is('input') || $(follow).is('textarea')) { $fFip = $(follow); } else if ($(follow).hasClass('layui-form-select') || $(follow).hasClass('layui-form-radio') || $(follow).hasClass('layui-form-checkbox') || $(follow).hasClass('layui-form-switch')) { $fFip = $(follow).prev(); } } if (!$fFip) return layer.oldTips(content, follow, options); options.tips = [$fFip.attr('lay-direction') || 3, $fFip.attr('lay-bg') || '#ff4c4c']; setTimeout(function () { options.success = function (layero) { $(layero).children('.layui-layer-content').css('padding', '6px 12px'); }; layer.oldTips(content, follow, options); }, 100); }; /** 所有ew-href处理 */ $(document).on('click', '*[ew-href]', function () { var $this = $(this); var href = $this.attr('ew-href'); if (!href || href === '#') return; if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))(); var title = $this.attr('ew-title') || $this.text(); var win = $this.data('window'); win ? (win = admin.strToWin(win)) : (win = top); var end = $this.attr('ew-end'); try { if (end) end = new Function(end); else end = undefined; } catch (e) { console.error(e); } if (win.layui && win.layui.index) win.layui.index.openTab({title: title || '', url: href, end: end}); else location.href = href; }); /** 帮助鼠标右键菜单完成点击空白关闭的功能 */ if (!layui.contextMenu) { $(document).off('click.ctxMenu').on('click.ctxMenu', function () { try { var ifs = top.window.frames; for (var i = 0; i < ifs.length; i++) { var tif = ifs[i]; try { // 可能会跨域 if (tif.layui && tif.layui.jquery) tif.layui.jquery('body>.ctxMenu').remove(); } catch (e) { } } try { // 可能会跨域 if (top.layui && top.layui.jquery) top.layui.jquery('body>.ctxMenu').remove(); } catch (e) { } } catch (e) { } }); } /** 读取缓存的配置信息 */ setter = $.extend({ pageTabs: true, cacheTab: true, openTabCtxMenu: true, maxTabNum: 20, tableName: 'easyweb-iframe', apiNoCache: true, ajaxSuccessBefore: function (res, url, obj) { return admin.ajaxSuccessBefore ? admin.ajaxSuccessBefore(res, url, obj) : true; }, getAjaxHeaders: function (res, url, obj) { return admin.getAjaxHeaders ? admin.getAjaxHeaders(res, url, obj) : []; } }, setter); var cache = admin.getTempData(true); if (cache) { var keys = ['pageTabs', 'cacheTab', 'defaultTheme', 'navArrow', 'closeFooter', 'tabAutoRefresh']; for (var i = 0; i < keys.length; i++) if (cache[keys[i]] !== undefined) setter[keys[i]] = cache[keys[i]]; } admin.recoverState(); // 恢复本地配置 admin.renderTpl(); // 渲染动态模板 admin.setter = setter; if (layui.device().ios) $('body').addClass('ios-iframe-body'); // ios浏览器iframe兼容 exports('admin', admin); }); src/main/webapp/views/matCode/matCode.html
@@ -54,11 +54,11 @@ <div id="search-box" class="layui-form layui-card-header"> <div class="layui-inline"> <div class="layui-input-inline"> <input class="layui-input" type="text" name="mat_no" placeholder="产品代号" autocomplete="off"> <input class="layui-input" type="text" name="mat_no" placeholder="产品编码" autocomplete="off"> </div> </div> <!-- 日期范围 --> <div class="layui-inline" style="width: 300px"> </div> <div class="layui-input-inline"> <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px"> </div> @@ -84,11 +84,14 @@ <button class="layui-btn layui-btn-normal layui-btn-sm" id="btn-export" lay-event="exportData" style="float: inherit">导出</button> <button class="layui-btn layui-btn-sm" id="btn-into" lay-event="intoData">导入</button> <button class="layui-btn layui-btn-danger layui-btn-sm" id="btn-print-batch" lay-event="btnPrintBatch">批量打印</button> <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button> </div> </script> <script type="text/html" id="operate"> <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>--> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a> <button class="layui-btn layui-btn-danger layui-btn-xs btn-print" lay-event="btnPrint">打印</button> </script> src/main/webapp/views/matCode/matCode_detail.html
@@ -24,12 +24,12 @@ </div> --> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label"><span class="not-null">*</span>产品代号:</label> <label class="layui-form-label"><span class="not-null">*</span>产品编码:</label> <div class="layui-input-inline"> <input id="matNo" class="layui-input" type="text" onkeyup="check(this.id, 'matCode')" lay-verify="required" > </div> </div> <div class="layui-inline" style="width:31%;"> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">条 码:</label> <div class="layui-input-inline"> <input id="barcode" class="layui-input" type="text"> @@ -66,7 +66,7 @@ </div> </div> <div class="layui-inline" style="width:31%"> <label class="layui-form-label">:</label> <label class="layui-form-label">单重:</label> <div class="layui-input-inline"> <input id="weight" class="layui-input" type="text" lay-verify="number" > </div>