Browse Source

优化部分移动端页面

lwx_dev
erdanergou 3 years ago
parent
commit
6a9fa27736
  1. 44
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  2. 34
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 98
      src/main/java/com/dreamchaser/depository_manage/entity/Material.java
  4. 120
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  5. 36
      src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java
  6. 124
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  7. 13
      src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java
  8. 27
      src/main/java/com/dreamchaser/depository_manage/utils/DeviceUtil.java
  9. 2
      src/main/resources/application-test.yml
  10. 57
      src/main/resources/static/js/lay-module/layuimini/miniMenu.js
  11. 62
      src/main/resources/static/js/lay-module/layuimini/miniTab.js
  12. 5
      src/main/resources/static/js/lay-module/layuimini/miniTheme.js
  13. 149
      src/main/resources/templates/index_mobile.html
  14. 166
      src/main/resources/templates/pages/application/application-out.html
  15. 38
      src/main/resources/templates/pages/application/application-out_min.html
  16. 2
      src/main/resources/templates/pages/application/application-transfer.html
  17. 59
      src/main/resources/templates/pages/company/company-out.html
  18. 132
      src/main/resources/templates/pages/company/company-out_back.html
  19. 56
      src/main/resources/templates/pages/company/companyByParentId.html
  20. 114
      src/main/resources/templates/pages/depository/table-in.html
  21. 112
      src/main/resources/templates/pages/depository/table-out.html
  22. 54
      src/main/resources/templates/pages/material/material-add.html
  23. 290
      src/main/resources/templates/pages/material/material-out.html
  24. 248
      src/main/resources/templates/pages/material/material-out_back.html
  25. 44
      src/main/resources/templates/pages/material/material-view.html
  26. 138
      src/main/resources/templates/pages/materialBarCode/materialBarCode_out.html
  27. 93
      src/main/resources/templates/pages/materialtype/materialTypeByParentId.html
  28. 215
      src/main/resources/templates/pages/materialtype/materialType_view.html
  29. 236
      src/main/resources/templates/pages/other/welcome_mobile.html
  30. 74
      src/main/resources/templates/pages/post/post-out.html
  31. 96
      src/main/resources/templates/pages/user/table-user.html
  32. 108
      src/main/resources/templates/pages/warehouse/warehouseByParentId.html
  33. 2
      src/test/java/com/dreamchaser/depository_manage/Test.java
  34. 2
      target/classes/application-test.yml
  35. 120
      target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  36. 62
      target/classes/static/js/lay-module/layuimini/miniTab.js
  37. 5
      target/classes/static/js/lay-module/layuimini/miniTheme.js
  38. 166
      target/classes/templates/pages/application/application-out.html
  39. 38
      target/classes/templates/pages/application/application-out_min.html
  40. 2
      target/classes/templates/pages/application/application-transfer.html
  41. 59
      target/classes/templates/pages/company/company-out.html
  42. 132
      target/classes/templates/pages/company/company-out_back.html
  43. 56
      target/classes/templates/pages/company/companyByParentId.html
  44. 114
      target/classes/templates/pages/depository/table-in.html
  45. 112
      target/classes/templates/pages/depository/table-out.html
  46. 54
      target/classes/templates/pages/material/material-add.html
  47. 290
      target/classes/templates/pages/material/material-out.html
  48. 248
      target/classes/templates/pages/material/material-out_back.html
  49. 44
      target/classes/templates/pages/material/material-view.html
  50. 138
      target/classes/templates/pages/materialBarCode/materialBarCode_out.html
  51. 93
      target/classes/templates/pages/materialtype/materialTypeByParentId.html
  52. 215
      target/classes/templates/pages/materialtype/materialType_view.html
  53. 74
      target/classes/templates/pages/post/post-out.html
  54. 96
      target/classes/templates/pages/user/table-user.html
  55. 108
      target/classes/templates/pages/warehouse/warehouseByParentId.html

44
src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java

@ -634,6 +634,50 @@ public class MaterialController {
} }
// 获取扫描结果并跳转到出库
@PostMapping("/qywxApplicationOutScanQrCode")
public RestResponse qywxApplicationOutScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userByPort = (UserByPort) request.getAttribute("userToken");
// 获取当前用户所在部门拥有的仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString());
// 获取当前扫描的二维码
String qrCode = (String) map.get("qrCode");
// 根据扫描的二维码获取对应的物料编码
String mcode = materialService.findMaterialCodeByQrCode(qrCode);
// 根据物料编码获取物料
Material material = materialService.findMaterialByCode(mcode);
Map<String, Object> param = new HashMap<>();
List<PlaceP> placePList = new ArrayList<>();
param.put("mcode", mcode);
MaterialP mp = null;
// 获取物料与条形码的对应关系
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param);
Boolean flag = false;
for (int j = 0; j < depositoryByAdminorg.size(); j++) {
Depository depository = depositoryByAdminorg.get(j);
param.put("code", material.getCode());
param.put("depositoryId", depository.getId());
// 获取当前仓库下是否有当前物料的库存
List<MaterialP> inventory = materialService.findInventory(param);
if (inventory.size() > 0) {
mp = inventory.get(0);
List<PlaceP> place = placeService.findPlaceByMidAndDid(mp.getId(), depository.getId());
placePList.addAll(place);
flag = true;
}
}
if (flag) {
// 设置当前物料在相关仓库下的所有库位
mp.setPlacePList(placePList);
// 设置物料与条形码的对应关系
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition);
}
return new RestResponse(mp);
}
// 获取扫描结果并跳转到盘点 // 获取扫描结果并跳转到盘点
@PostMapping("/stockTaking_scanQrCode") @PostMapping("/stockTaking_scanQrCode")
public RestResponse stockTakingScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { public RestResponse stockTakingScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) {

34
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -103,8 +103,15 @@ public class PageController {
@GetMapping("/") @GetMapping("/")
public ModelAndView Init(HttpServletRequest request) { public ModelAndView Init(HttpServletRequest request) {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
mv.setViewName("index");
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
String userAgent = request.getHeader("user-agent");
// 判断当前使用的设备为移动端还是pc端
boolean b = DeviceUtil.checkAgentIsMobile(userAgent);
if (b) {
mv.setViewName("index_mobile");
} else {
mv.setViewName("index");
}
mv.addObject("user", userToken); mv.addObject("user", userToken);
return mv; return mv;
} }
@ -158,8 +165,15 @@ public class PageController {
@GetMapping("/index") @GetMapping("/index")
public ModelAndView index(HttpServletRequest request) { public ModelAndView index(HttpServletRequest request) {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
mv.setViewName("index");
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
String userAgent = request.getHeader("user-agent");
// 判断当前使用的设备为移动端还是pc端
boolean b = DeviceUtil.checkAgentIsMobile(userAgent);
if (b) {
mv.setViewName("index_mobile");
} else {
mv.setViewName("index");
}
mv.addObject("user", userToken); mv.addObject("user", userToken);
return mv; return mv;
} }
@ -204,6 +218,7 @@ public class PageController {
} }
} }
//定义首页 //定义首页
Map<String, Object> home = new HashMap<>(); Map<String, Object> home = new HashMap<>();
Map<String, Object> homeInfo = new HashMap<>(); Map<String, Object> homeInfo = new HashMap<>();
homeInfo.put("title", "首页"); homeInfo.put("title", "首页");
@ -293,15 +308,24 @@ public class PageController {
} }
@GetMapping("/welcome") @GetMapping("/welcome")
public ModelAndView welcome() { public ModelAndView welcome(HttpServletRequest request) {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
String header = request.getHeader("user-agent");
boolean b = DeviceUtil.checkAgentIsMobile(header);
if (b) {
mv.setViewName("pages/other/welcome_mobile");
} else {
mv.setViewName("pages/other/welcome"); mv.setViewName("pages/other/welcome");
}
Map<String, Object> map = new HashMap<String, Object>(2) { Map<String, Object> map = new HashMap<String, Object>(2) {
{ {
put("beigin", 0); put("beigin", 0);
put("size", 6); put("size", 6);
} }
}; };
mv.addObject("depositoryCount", depositoryService.findAllCountByNoDelete()); mv.addObject("depositoryCount", depositoryService.findAllCountByNoDelete());
mv.addObject("allPrice", materialService.findAllPriceNoDelete()); mv.addObject("allPrice", materialService.findAllPriceNoDelete());
mv.addObject("allMaterial", materialService.findMaterialAll().size()); mv.addObject("allMaterial", materialService.findMaterialAll().size());
@ -368,6 +392,10 @@ public class PageController {
mv.setViewName("pages/material/material-out"); mv.setViewName("pages/material/material-out");
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
Integer isadmin = userToken.getIsadmin(); Integer isadmin = userToken.getIsadmin();
// 获取当天时间戳
String currentDate = DateUtil.getCurrentDate();
Long aLong = DateUtil.DateTimeByMonthToTimeStamp(currentDate);
mv.addObject("nowDay", aLong);
if (isadmin == null) { if (isadmin == null) {
isadmin = 1; isadmin = 1;
} }

98
src/main/java/com/dreamchaser/depository_manage/entity/Material.java

@ -7,42 +7,65 @@ import java.util.List;
/** /**
* 产品信息记录库存(material) * 产品信息记录库存(material)
*
* @author Dreamchaser * @author Dreamchaser
* @version 1.0.0 2021-05-20 * @version 1.0.0 2021-05-20
*/ */
@Data @Data
public class Material { public class Material {
/** 版本号 */ /**
* 版本号
*/
private static final long serialVersionUID = 4604245526757565755L; private static final long serialVersionUID = 4604245526757565755L;
/** 存储id */ /**
* 存储id
*/
private Integer id; private Integer id;
/** 仓库id */ /**
* 仓库id
*/
private Integer depositoryId; private Integer depositoryId;
/** 物料名称 */ /**
* 物料名称
*/
private String mname; private String mname;
/** 数量 */ /**
* 数量
*/
private Integer quantity; private Integer quantity;
/** 总金额 */ /**
* 总金额
*/
private Double amounts; private Double amounts;
/** 物料种类id */ /**
* 物料种类id
*/
private Long materialTypeId; private Long materialTypeId;
/** 物料状态 */ /**
* 物料状态
*/
private Integer state; private Integer state;
/** 存货编码 */ /**
* 存货编码
*/
private String code; private String code;
/** 规格型号 */ /**
* 规格型号
*/
private String version; private String version;
/** 单价 */ /**
* 单价
*/
private Double price; private Double price;
/** /**
* 类型名称 * 类型名称
@ -54,16 +77,24 @@ public class Material {
*/ */
private List<MaterialAndBarCode> materialAndBarCodeList; private List<MaterialAndBarCode> materialAndBarCodeList;
/** 物料类型 */ /**
* 物料类型
*/
private MaterialType materialType; private MaterialType materialType;
/** 所属仓库 */ /**
* 所属仓库
*/
private Depository depository; private Depository depository;
/** 计量单位 */ /**
* 计量单位
*/
private String unit; private String unit;
/** 材质 */ /**
* 材质
*/
private String texture; private String texture;
/** /**
@ -82,4 +113,41 @@ public class Material {
*/ */
private Integer numberOfTemporary; private Integer numberOfTemporary;
/**
* 生产日期
*/
private Long producedDate;
/**
* 保质期
*/
private Long shelfLife;
/**
* 产地
*/
private String productionPlace;
/**
* 生产日期
*/
private String brand;
/**
* 备注
*/
private String remark;
/**
* 生产日期
*/
private String showProducedDate;
/**
* 保质期
*/
private String showShelfLife;
} }

120
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

@ -20,6 +20,11 @@
<result column="unit" property="unit" jdbcType="VARCHAR"/> <result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" jdbcType="VARCHAR"/> <result column="texture" property="texture" jdbcType="VARCHAR"/>
<result column="number_of_temporary" property="numberOfTemporary" jdbcType="INTEGER"/> <result column="number_of_temporary" property="numberOfTemporary" jdbcType="INTEGER"/>
<result column="producedDate" property="producedDate" jdbcType="INTEGER"/>
<result column="shelfLife" property="shelfLife" jdbcType="INTEGER"/>
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<!-- 字段映射--> <!-- 字段映射-->
@ -37,6 +42,11 @@
<result column="unit" property="unit" jdbcType="VARCHAR"/> <result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" jdbcType="VARCHAR"/> <result column="texture" property="texture" jdbcType="VARCHAR"/>
<result column="depositoryCode" property="depositoryCode" jdbcType="VARCHAR"/> <result column="depositoryCode" property="depositoryCode" jdbcType="VARCHAR"/>
<result column="producedDate" property="producedDate" jdbcType="INTEGER"/>
<result column="shelfLife" property="shelfLife" jdbcType="INTEGER"/>
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
<association property="materialType" column="typeId" javaType="com.dreamchaser.depository_manage.entity.MaterialType"> <association property="materialType" column="typeId" javaType="com.dreamchaser.depository_manage.entity.MaterialType">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" /> <result column="tname" property="tname" jdbcType="VARCHAR" />
@ -72,17 +82,17 @@
<!-- 表查询字段 --> <!-- 表查询字段 -->
<sql id="allColumns"> <sql id="allColumns">
m.id, m.depository_id, m.mname, m.quantity, m.price, m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,m.depositoryCode,m.number_of_temporary m.id, m.depository_id, m.mname, m.quantity, m.price, m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,m.depositoryCode,m.number_of_temporary,m.shelfLife,m.producedDate,m.productionPlace,m.brand,m.remark
</sql> </sql>
<!-- 表查询字段,包括物料类型 --> <!-- 表查询字段,包括物料类型 -->
<sql id="allColumnsAndTypeName"> <sql id="allColumnsAndTypeName">
id,depository_id,mname,quantity,price,type_id,state,code ,version ,amounts ,unit ,texture,tname,depositoryCode,dname id,depository_id,mname,quantity,price,type_id,state,code ,version ,amounts ,unit ,texture,tname,depositoryCode,dname,producedDate,shelfLife,productionPlace,brand,remark
</sql> </sql>
<!-- 表查询字段,包括物料类型 用于视图--> <!-- 表查询字段,包括物料类型 用于视图-->
<sql id="allColumnsAndTypeNameOnView"> <sql id="allColumnsAndTypeNameOnView">
id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode,producedDate,shelfLife,productionPlace,brand,remark
</sql> </sql>
@ -122,6 +132,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and m.code = #{code} and m.code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand = #{brand}
</if>
<if test="remark != '' and remark != null">
and remark = #{remark}
</if>
and state != 3 and m.depository_id is null and state != 3 and m.depository_id is null
</select> </select>
@ -156,6 +181,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and code = #{code} and code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
and depository_id is null and depository_id is null
<if test="begin != null and size != null"> <if test="begin != null and size != null">
LIMIT #{begin},#{size} LIMIT #{begin},#{size}
@ -195,6 +235,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and code = #{code} and code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
and depository_id is not null and depository_id is not null
<if test="begin != null and size != null"> <if test="begin != null and size != null">
LIMIT #{begin},#{size} LIMIT #{begin},#{size}
@ -230,6 +285,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and code = #{code} and code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
and depository_id is not null and depository_id is not null
</select> </select>
@ -300,6 +370,21 @@
<if test="tname != null and tname != ''"> <if test="tname != null and tname != ''">
AND tname LIKE CONCAT('%', #{tname}, '%') AND tname LIKE CONCAT('%', #{tname}, '%')
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
group by bmcode group by bmcode
</select> </select>
@ -371,7 +456,7 @@
<!-- 插入数据 --> <!-- 插入数据 -->
<insert id="insertMaterial" useGeneratedKeys="true" keyProperty="id"> <insert id="insertMaterial" useGeneratedKeys="true" keyProperty="id">
INSERT INTO material ( INSERT INTO material (
id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode,producedDate,shelfLife,brand,productionPlace,remark
) VALUES ( ) VALUES (
#{id}, #{id},
<if test="depositoryId != null"> <if test="depositoryId != null">
@ -405,11 +490,16 @@
0, 0,
</if> </if>
<if test="depositoryCode != null"> <if test="depositoryCode != null">
#{depositoryCode} #{depositoryCode},
</if> </if>
<if test="depositoryCode == null"> <if test="depositoryCode == null">
'' '',
</if> </if>
#{producedDate},
#{shelfLife},
#{brand},
#{productionPlace},
#{remark}
) )
</insert> </insert>
@ -516,7 +606,23 @@
number_of_temporary = #{numberOfTemporary}, number_of_temporary = #{numberOfTemporary},
</if> </if>
<if test="texture != null and texture != ''"> <if test="texture != null and texture != ''">
texture = #{texture} texture = #{texture},
</if>
<if test="shelfLife != null">
shelfLife = #{shelfLife},
</if>
<if test="producedDate != null">
producedDate = #{producedDate},
</if>
<if test="productionPlace != null and productionPlace !=''">
productionPlace = #{productionPlace},
</if>
<if test="brand != '' and brand != null">
brand = #{brand},
</if>
<if test="remark != '' and remark != null">
remark = #{remark}
</if> </if>
</set> </set>
WHERE id = #{id} WHERE id = #{id}

36
src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java

@ -2,6 +2,7 @@ package com.dreamchaser.depository_manage.pojo;
import com.dreamchaser.depository_manage.entity.Material; import com.dreamchaser.depository_manage.entity.Material;
import com.dreamchaser.depository_manage.entity.MaterialAndBarCode; import com.dreamchaser.depository_manage.entity.MaterialAndBarCode;
import com.dreamchaser.depository_manage.utils.DateUtil;
import lombok.Data; import lombok.Data;
import java.math.BigInteger; import java.math.BigInteger;
@ -119,6 +120,37 @@ public class MaterialP {
private List<PlaceP> placePList; private List<PlaceP> placePList;
/**
* 生产日期
*/
private String producedDate;
/**
* 保质期
*/
private String shelfLife;
/**
* 产地
*/
private String productionPlace;
/**
* 品牌
*/
private String brand;
/**
* 备注
*/
private String remark;
/**
* 保质期用于计算
*/
private Long shelfLifeForCalc;
public MaterialP(Integer id, Integer depositoryId, String mname, Integer quantity, Double price, String typeName) { public MaterialP(Integer id, Integer depositoryId, String mname, Integer quantity, Double price, String typeName) {
@ -144,6 +176,10 @@ public class MaterialP {
this.depositoryCode = material.getDepositoryCode(); // 仓库编码 this.depositoryCode = material.getDepositoryCode(); // 仓库编码
this.depositoryId = material.getDepositoryId(); // 仓库id this.depositoryId = material.getDepositoryId(); // 仓库id
this.placeCode = material.getPlaceCode(); // 库位编码 this.placeCode = material.getPlaceCode(); // 库位编码
this.productionPlace = material.getProductionPlace(); // 产地
this.brand = material.getBrand(); // 品牌
this.remark = material.getRemark(); // 备注
this.shelfLifeForCalc = material.getShelfLife(); //保质期,用于计算
} }
public MaterialP() { public MaterialP() {

124
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java

@ -66,6 +66,15 @@ public class MaterialServiceImpl implements MaterialService {
map.put("price", price); map.put("price", price);
map.put("amounts", quantity * price); map.put("amounts", quantity * price);
} }
// 判断是否有保质期
if (map.containsKey("shelfLife")) {
Long shelfLife = DateUtil.DateTimeByMonthToTimeStamp(map.get("shelfLife").toString());
map.put("shelfLife", shelfLife);
}
if (map.containsKey("producedDate")) {
Long producedDate = DateUtil.DateTimeByMonthToTimeStamp(map.get("producedDate").toString());
map.put("producedDate", producedDate);
}
// 获取当前类型 // 获取当前类型
if (map.containsKey("typeId")) { if (map.containsKey("typeId")) {
Integer typeId = ObjectFormatUtil.toInteger(map.get("typeId").toString()); Integer typeId = ObjectFormatUtil.toInteger(map.get("typeId").toString());
@ -113,6 +122,15 @@ public class MaterialServiceImpl implements MaterialService {
} }
map.put("price", price); map.put("price", price);
} }
// 判断是否有保质期
if (map.containsKey("shelfLife")) {
Long shelfLife = DateUtil.DateTimeByMonthToTimeStamp(map.get("shelfLife").toString());
map.put("shelfLife", shelfLife);
}
if (map.containsKey("producedDate")) {
Long producedDate = DateUtil.DateTimeByMonthToTimeStamp(map.get("producedDate").toString());
map.put("producedDate", producedDate);
}
return materialMapper.updateMaterial(map); return materialMapper.updateMaterial(map);
@ -279,6 +297,15 @@ public class MaterialServiceImpl implements MaterialService {
Material material = materialMapper.findMaterialAndTypeById(id); Material material = materialMapper.findMaterialAndTypeById(id);
material.setPrice(material.getPrice() / 100); material.setPrice(material.getPrice() / 100);
material.setAmounts(material.getAmounts() / 100); material.setAmounts(material.getAmounts() / 100);
Long producedDate = material.getProducedDate();
if (producedDate != null) {
material.setShowProducedDate(DateUtil.TimeStampToDateTimeForMonth(producedDate));
}
Long shelfLife = material.getShelfLife();
if (shelfLife != null) {
material.setShowShelfLife(DateUtil.TimeStampToDateTimeForMonth(shelfLife));
}
return material; return material;
} }
@ -383,6 +410,15 @@ public class MaterialServiceImpl implements MaterialService {
m.setDepositoryName(depositoryMapper.findDepositoryNameById(depositoryId)); m.setDepositoryName(depositoryMapper.findDepositoryNameById(depositoryId));
m.setWarehouseManager(depositoryMapper.findUserNameByDepositoryId(depositoryId)); m.setWarehouseManager(depositoryMapper.findUserNameByDepositoryId(depositoryId));
} }
Long producedDate = material.getProducedDate();
if (producedDate != null) {
m.setProducedDate(DateUtil.TimeStampToDateTimeForMonth(producedDate));
}
Long shelfLife = material.getShelfLife();
if (shelfLife != null) {
m.setShelfLife(DateUtil.TimeStampToDateTimeForMonth(shelfLife));
}
MaterialType materialTypeByOldId = materialTypeMapper.findMaterialTypeByOldId(material.getMaterialTypeId()); MaterialType materialTypeByOldId = materialTypeMapper.findMaterialTypeByOldId(material.getMaterialTypeId());
m.setTypeName(materialTypeByOldId.getTname()); m.setTypeName(materialTypeByOldId.getTname());
m.setTypeId(materialTypeByOldId.getOldId()); m.setTypeId(materialTypeByOldId.getOldId());
@ -655,7 +691,7 @@ public class MaterialServiceImpl implements MaterialService {
// 获取当前类别级别 // 获取当前类别级别
Integer mtLevel = getMtLevel(mt, 1); Integer mtLevel = getMtLevel(mt, 1);
if(materialTypeByParent.size() > 0) { if (materialTypeByParent.size() > 0) {
String mname = ""; String mname = "";
Object o = map.get("mname"); Object o = map.get("mname");
@ -689,7 +725,7 @@ public class MaterialServiceImpl implements MaterialService {
if (Long.compare(parentMt.getOldId(), id) == 0) { if (Long.compare(parentMt.getOldId(), id) == 0) {
if (mtLevel == 1) { if (mtLevel == 1) {
redisTemplate.opsForList().set("wms_materialTree_result",i,JSONObject.toJSONString(jsonObject)); redisTemplate.opsForList().set("wms_materialTree_result", i, JSONObject.toJSONString(jsonObject));
// redisTemplate.opsForList().leftPop("wms_materialTree_result"); // redisTemplate.opsForList().leftPop("wms_materialTree_result");
// redisTemplate.opsForList().leftPush("wms_materialTree_result",JSONObject.toJSONString(jsonObject)); // redisTemplate.opsForList().leftPush("wms_materialTree_result",JSONObject.toJSONString(jsonObject));
jsonObject.put("spread", true); jsonObject.put("spread", true);
@ -700,19 +736,18 @@ public class MaterialServiceImpl implements MaterialService {
List<Object> childList = (List<Object>) jsonObject.get("children"); List<Object> childList = (List<Object>) jsonObject.get("children");
List<Object> objectList1 = rewriteTree(childList, stringObjectMap, mtLevel - 1, mt); List<Object> objectList1 = rewriteTree(childList, stringObjectMap, mtLevel - 1, mt);
jsonObject.put("children", objectList1); jsonObject.put("children", objectList1);
redisTemplate.opsForList().set("wms_materialTree_result",i,JSONObject.toJSONString(jsonObject)); redisTemplate.opsForList().set("wms_materialTree_result", i, JSONObject.toJSONString(jsonObject));
jsonObject.put("spread", true); jsonObject.put("spread", true);
stringObjectMap.put("spread", true); stringObjectMap.put("spread", true);
result.add(jsonObject); result.add(jsonObject);
} }
} else { } else {
redisTemplate.opsForList().set("wms_materialTree_result",i,JSONObject.toJSONString(jsonObject)); redisTemplate.opsForList().set("wms_materialTree_result", i, JSONObject.toJSONString(jsonObject));
result.add(jsonObject); result.add(jsonObject);
} }
} }
return result; return result;
} } else {
else{
List<String> objectList = redisTemplate.opsForList().range("wms_materialTree_result", 0, -1); List<String> objectList = redisTemplate.opsForList().range("wms_materialTree_result", 0, -1);
try { try {
Thread.sleep(10); Thread.sleep(10);
@ -727,8 +762,8 @@ public class MaterialServiceImpl implements MaterialService {
String s = objectList.get(i); String s = objectList.get(i);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
Long id = Long.valueOf(jsonObject.getString("id")); Long id = Long.valueOf(jsonObject.getString("id"));
if(Long.compare(id,parent.getOldId()) == 0){ if (Long.compare(id, parent.getOldId()) == 0) {
jsonObject = setTreeChildrenSpreadIsTrue(jsonObject, mt, mtLevel - 1,map); jsonObject = setTreeChildrenSpreadIsTrue(jsonObject, mt, mtLevel - 1, map);
} }
result.add(jsonObject); result.add(jsonObject);
} }
@ -736,45 +771,45 @@ public class MaterialServiceImpl implements MaterialService {
} }
} }
public JSONObject setTreeChildrenSpreadIsTrue(JSONObject jsonObject,MaterialType mt,Integer level,Map<String,Object> map){ public JSONObject setTreeChildrenSpreadIsTrue(JSONObject jsonObject, MaterialType mt, Integer level, Map<String, Object> map) {
if(level != 0){ if (level != 0) {
MaterialType parent = mt; MaterialType parent = mt;
for (int i = 0; i < level - 1; i++) { for (int i = 0; i < level - 1; i++) {
parent = materialTypeMapper.findMaterialTypeByOldId(parent.getParentId()); parent = materialTypeMapper.findMaterialTypeByOldId(parent.getParentId());
} }
jsonObject.put("spread",true); jsonObject.put("spread", true);
JSONArray children = jsonObject.getJSONArray("children"); JSONArray children = jsonObject.getJSONArray("children");
for (int i = 0; i < children.size(); i++) { for (int i = 0; i < children.size(); i++) {
JSONObject object = children.getJSONObject(i); JSONObject object = children.getJSONObject(i);
Long id = Long.valueOf(object.getString("id")); Long id = Long.valueOf(object.getString("id"));
if(Long.compare(id,parent.getOldId()) == 0){ if (Long.compare(id, parent.getOldId()) == 0) {
JSONObject object1 = setTreeChildrenSpreadIsTrue(object, mt, level - 1,map); JSONObject object1 = setTreeChildrenSpreadIsTrue(object, mt, level - 1, map);
children.set(i,object1); children.set(i, object1);
}else{ } else {
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
list.add(1); list.add(1);
object.put("children",list); object.put("children", list);
} }
} }
}else{ } else {
Object o2 = map.get("depositoryId"); Object o2 = map.get("depositoryId");
String mname = ""; String mname = "";
Object o = map.get("mname"); Object o = map.get("mname");
if (o != null) { if (o != null) {
mname = o.toString(); mname = o.toString();
} }
if(o2 != null){ if (o2 != null) {
String depositoryId = o2.toString(); String depositoryId = o2.toString();
Object o3 = map.get("placeId"); Object o3 = map.get("placeId");
String placeId = ""; String placeId = "";
if(o3 != null){ if (o3 != null) {
placeId = o3.toString(); placeId = o3.toString();
} }
List<Object> objectList = AddMaterialByType(mt, mname, depositoryId, placeId); List<Object> objectList = AddMaterialByType(mt, mname, depositoryId, placeId);
Map<String, Object> stringObjectMap = new HashMap<>(); Map<String, Object> stringObjectMap = new HashMap<>();
stringObjectMap = InitTreeMenusTest(mt, objectList); stringObjectMap = InitTreeMenusTest(mt, objectList);
jsonObject = new JSONObject(stringObjectMap); jsonObject = new JSONObject(stringObjectMap);
}else{ } else {
Object o1 = map.get("adminorg"); Object o1 = map.get("adminorg");
@ -782,7 +817,7 @@ public class MaterialServiceImpl implements MaterialService {
if (o1 != null) { if (o1 != null) {
adminorg = o1.toString(); adminorg = o1.toString();
} }
List<Object> list = AddMaterialByType(mt,mname,adminorg); List<Object> list = AddMaterialByType(mt, mname, adminorg);
Map<String, Object> stringObjectMap = new HashMap<>(); Map<String, Object> stringObjectMap = new HashMap<>();
stringObjectMap = InitTreeMenusTest(mt, list); stringObjectMap = InitTreeMenusTest(mt, list);
@ -813,28 +848,28 @@ public class MaterialServiceImpl implements MaterialService {
} }
public List<Object> rewriteTree(List<Object> childrenList, Map<String, Object> stringObjectMap, Integer flag, MaterialType mt) { public List<Object> rewriteTree(List<Object> childrenList, Map<String, Object> stringObjectMap, Integer flag, MaterialType mt) {
if(flag != 1){ if (flag != 1) {
mt = materialTypeMapper.findMaterialTypeByOldId(mt.getParentId()); mt = materialTypeMapper.findMaterialTypeByOldId(mt.getParentId());
return rewriteTree(childrenList,stringObjectMap,flag-1,mt); return rewriteTree(childrenList, stringObjectMap, flag - 1, mt);
}else{ } else {
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
Long somId = mt.getOldId(); Long somId = mt.getOldId();
for (int i = 0; i < childrenList.size(); i++) { for (int i = 0; i < childrenList.size(); i++) {
JSONObject jsonObject = (JSONObject) childrenList.get(i); JSONObject jsonObject = (JSONObject) childrenList.get(i);
Long id = Long.valueOf(jsonObject.getString("id")); Long id = Long.valueOf(jsonObject.getString("id"));
if(Long.compare(somId,id)==0){ if (Long.compare(somId, id) == 0) {
Long childrenId = Long.valueOf(stringObjectMap.get("id").toString()); Long childrenId = Long.valueOf(stringObjectMap.get("id").toString());
if(Long.compare(childrenId,id) == 0){ if (Long.compare(childrenId, id) == 0) {
list.add(stringObjectMap); list.add(stringObjectMap);
}else{ } else {
// 获取当前下的子列表 // 获取当前下的子列表
JSONArray children = jsonObject.getJSONArray("children"); JSONArray children = jsonObject.getJSONArray("children");
List<Object> objectList = updateTreeChildren(children, stringObjectMap,childrenId); List<Object> objectList = updateTreeChildren(children, stringObjectMap, childrenId);
jsonObject.put("children",objectList); jsonObject.put("children", objectList);
jsonObject.put("spread",true); jsonObject.put("spread", true);
list.add(jsonObject); list.add(jsonObject);
} }
}else{ } else {
list.add(jsonObject); list.add(jsonObject);
} }
} }
@ -842,16 +877,16 @@ public class MaterialServiceImpl implements MaterialService {
} }
} }
public List<Object> updateTreeChildren(List<Object> childrenList,Map<String,Object> map,Long mtId){ public List<Object> updateTreeChildren(List<Object> childrenList, Map<String, Object> map, Long mtId) {
Long somId = Long.valueOf(map.get("id").toString()); Long somId = Long.valueOf(map.get("id").toString());
List<Object> children = new ArrayList<>(); List<Object> children = new ArrayList<>();
for (int i = 0; i < childrenList.size(); i++) { for (int i = 0; i < childrenList.size(); i++) {
JSONObject o = (JSONObject) childrenList.get(i); JSONObject o = (JSONObject) childrenList.get(i);
Long id = Long.valueOf(o.getString("id")); Long id = Long.valueOf(o.getString("id"));
if(Long.compare(somId,id) == 0){ if (Long.compare(somId, id) == 0) {
children.add(map); children.add(map);
}else{ } else {
children.add(o); children.add(o);
} }
} }
@ -859,7 +894,6 @@ public class MaterialServiceImpl implements MaterialService {
} }
/** /**
* 构造树形选择框 * 构造树形选择框
* *
@ -1288,8 +1322,7 @@ public class MaterialServiceImpl implements MaterialService {
list.add(jsonObject); list.add(jsonObject);
} }
return list; return list;
} } else {
else {
List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent();
@ -1342,7 +1375,7 @@ public class MaterialServiceImpl implements MaterialService {
@Override @Override
public Object call() throws Exception { public Object call() throws Exception {
List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent_Test(mt.getOldId(),1,1); List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent_Test(mt.getOldId(), 1, 1);
Map<String, Object> stringObjectMap = new HashMap<>(); Map<String, Object> stringObjectMap = new HashMap<>();
if (childForMaterialTypeByParent != null) { if (childForMaterialTypeByParent != null) {
stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent); stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent);
@ -1366,8 +1399,9 @@ public class MaterialServiceImpl implements MaterialService {
return null; return null;
} }
} }
// 根据id获取子类(只获取类别) // 根据id获取子类(只获取类别)
public List<Object> findChildForMaterialTypeByParent_OnlyType(Long Oldid){ public List<Object> findChildForMaterialTypeByParent_OnlyType(Long Oldid) {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
List<Object> result = new ArrayList<>(); List<Object> result = new ArrayList<>();
Map<String, Object> children = new HashMap<>(); Map<String, Object> children = new HashMap<>();
@ -1387,21 +1421,19 @@ public class MaterialServiceImpl implements MaterialService {
} }
// 根据id获取子类 // 根据id获取子类
public List<Object> findChildForMaterialTypeByParent_Test(Long Oldid,int level,int staticlevel) { public List<Object> findChildForMaterialTypeByParent_Test(Long Oldid, int level, int staticlevel) {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
List<Object> result = new ArrayList<>(); List<Object> result = new ArrayList<>();
param.put("parentId", Oldid); param.put("parentId", Oldid);
// 获取当前父类的子类 // 获取当前父类的子类
List<MaterialType> materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param); List<MaterialType> materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param);
if(materialTypeByCondition.size() > 0 && (level == staticlevel)){ if (materialTypeByCondition.size() > 0 && (level == staticlevel)) {
for (int i = 0; i < materialTypeByCondition.size(); i++) { for (int i = 0; i < materialTypeByCondition.size(); i++) {
MaterialType mt = materialTypeByCondition.get(i); MaterialType mt = materialTypeByCondition.get(i);
List<Object> childForMaterialTypeByParent_test = findChildForMaterialTypeByParent_Test(mt.getOldId(),level+1,staticlevel); List<Object> childForMaterialTypeByParent_test = findChildForMaterialTypeByParent_Test(mt.getOldId(), level + 1, staticlevel);
Map<String, Object> stringObjectMap = null; Map<String, Object> stringObjectMap = null;
if(childForMaterialTypeByParent_test == null){ if (childForMaterialTypeByParent_test == null) {
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
list.add(1); list.add(1);
stringObjectMap = InitTreeMenus(mt, list); stringObjectMap = InitTreeMenus(mt, list);
@ -1411,7 +1443,7 @@ public class MaterialServiceImpl implements MaterialService {
result.add(stringObjectMap); result.add(stringObjectMap);
} }
return result; return result;
}else{ } else {
List<Object> childForMaterialTypeByParent_onlyType = findChildForMaterialTypeByParent_OnlyType(Oldid); List<Object> childForMaterialTypeByParent_onlyType = findChildForMaterialTypeByParent_OnlyType(Oldid);
return childForMaterialTypeByParent_onlyType; return childForMaterialTypeByParent_onlyType;
} }

13
src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java

@ -78,6 +78,8 @@ public class DateUtil {
} }
// 将日期转为时间戳 // 将日期转为时间戳
public static Long DateTimeByMonthToTimeStamp(String dateTime){ public static Long DateTimeByMonthToTimeStamp(String dateTime){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@ -91,6 +93,17 @@ public class DateUtil {
return ts; return ts;
} }
// 将时间戳转为日期
public static String TimeStampToDateTimeForMonth(Long timeStamp){
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
long lt = new Long(timeStamp);
Date date = new Date(lt);
res = simpleDateFormat.format(date);
return res;
}
// 获取当前日期 // 获取当前日期
public static String getNowTime(){ public static String getNowTime(){

27
src/main/java/com/dreamchaser/depository_manage/utils/DeviceUtil.java

@ -0,0 +1,27 @@
package com.dreamchaser.depository_manage.utils;
public class DeviceUtil {
private final static String[] agent = { "Android", "iPhone", "iPod","iPad", "Windows Phone", "MQQBrowser" }; //定义移动端请求的所有可能类型
/**
* 判断User-Agent 是不是来自于手机
* @param userAgent
* @return
*/
public static boolean checkAgentIsMobile(String userAgent) {
boolean flag = false;
if (!userAgent.contains("Windows NT") || (userAgent.contains("Windows NT") && userAgent.contains("compatible; MSIE "))) {
// 排除 苹果桌面系统
if (!userAgent.contains("Windows NT") && !userAgent.contains("Macintosh")) {
for (String item : agent) {
if (userAgent.contains(item)) {
flag = true;
break;
}
}
}
}
return flag;
}
}

2
src/main/resources/application-test.yml

@ -19,7 +19,7 @@ spring:
datasource: datasource:
username: root username: root
password: root password: root
url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5 initialSize: 5

57
src/main/resources/static/js/lay-module/layuimini/miniMenu.js

@ -115,6 +115,24 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
}); });
return leftMenusHtml; return leftMenusHtml;
}, },
/**
* 判断是否为手机
* @returns {boolean}
*/
checkMobile:function () {
var ua = navigator.userAgent.toLocaleLowerCase();
var pf = navigator.platform.toLocaleLowerCase();
var isAndroid = (/android/i).test(ua) || ((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf))
|| (/ucweb.*linux/i.test(ua));
var isIOS = (/iPhone|iPod|iPad/i).test(ua) && !isAndroid;
var isWinPhone = (/Windows Phone|ZuneWP7/i).test(ua);
var clientWidth = document.documentElement.clientWidth;
if (!isAndroid && !isIOS && !isWinPhone && clientWidth > 1024) {
return false;
} else {
return true;
}
},
/** /**
* 多模块 * 多模块
* @param menuList 菜单数据 * @param menuList 菜单数据
@ -131,15 +149,21 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
headerMenuCheckDefault = 'layui-this'; headerMenuCheckDefault = 'layui-this';
if (menuChildOpen) childOpenClass = ' layui-nav-itemed'; if (menuChildOpen) childOpenClass = ' layui-nav-itemed';
var headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染 if(miniMenu.checkMobile()){
headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染
leftMenuCheckDefault = 'layui-hide';
var menu = 'multi_module_' + index; var menu = 'multi_module_' + index;
let title = val.title;
if(title === '仓库管理'){
leftMenuCheckDefault = 'layui-this';
}
var id = menu + "HeaderId"; var id = menu + "HeaderId";
var topMenuItemHtml = ""; var topMenuItemHtml = "";
topMenuItemHtml = me.compileMenu({ topMenuItemHtml = me.compileMenu({
className: headerMenuCheckDefault, className: headerMenuCheckDefault,
menu: menu, menu: menu,
id: id, id: id,
title: val.title, title: title,
href: "", href: "",
target: "", target: "",
children: "" children: ""
@ -152,7 +176,34 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
headerMobileMenuHtml += me.compileMenu({ headerMobileMenuHtml += me.compileMenu({
id: id, id: id,
menu: menu, menu: menu,
icon: val.icon,
title: title,
}, true);
headerMenuCheckDefault = "";
return topMenuItemHtml;
}).join("");
}else{
headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染
var menu = 'multi_module_' + index;
var id = menu + "HeaderId";
var topMenuItemHtml = "";
topMenuItemHtml = me.compileMenu({
className: headerMenuCheckDefault,
menu: menu,
id: id, id: id,
title: val.title,
href: "",
target: "",
children: ""
});
leftMenuHtml += me.renderLeftMenu(val.child, {
parentMenuId: menu,
childOpenClass: childOpenClass,
leftMenuCheckDefault: leftMenuCheckDefault
});
headerMobileMenuHtml += me.compileMenu({
id: id,
menu: menu,
icon: val.icon, icon: val.icon,
title: val.title, title: val.title,
}, true); }, true);
@ -160,6 +211,7 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
leftMenuCheckDefault = "layui-hide"; leftMenuCheckDefault = "layui-hide";
return topMenuItemHtml; return topMenuItemHtml;
}).join(""); }).join("");
}
$('.layui-layout-body').addClass('layuimini-multi-module'); //多模块标识 $('.layui-layout-body').addClass('layuimini-multi-module'); //多模块标识
$('.layuimini-menu-header-pc').html(headerMenuHtml); //电脑 $('.layuimini-menu-header-pc').html(headerMenuHtml); //电脑
$('.layuimini-menu-left').html(leftMenuHtml); $('.layuimini-menu-left').html(leftMenuHtml);
@ -224,7 +276,6 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
// $(".menu-li").each(function (idx,el) { // $(".menu-li").each(function (idx,el) {
// $(el).addClass("hidden-sub-menu"); // $(el).addClass("hidden-sub-menu");
// }); // });
} else { // 正常 } else { // 正常
$('.layuimini-tool [data-side-fold]').attr('data-side-fold', 1); $('.layuimini-tool [data-side-fold]').attr('data-side-fold', 1);
$('.layuimini-tool [data-side-fold]').attr('class', 'fa fa-outdent'); $('.layuimini-tool [data-side-fold]').attr('class', 'fa fa-outdent');

62
src/main/resources/static/js/lay-module/layuimini/miniTab.js

@ -194,6 +194,24 @@ layui.define(["element", "layer", "jquery"], function (exports) {
return menu; return menu;
}, },
/**
* 判断是否为手机
* @returns {boolean}
*/
checkMobile:function () {
var ua = navigator.userAgent.toLocaleLowerCase();
var pf = navigator.platform.toLocaleLowerCase();
var isAndroid = (/android/i).test(ua) || ((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf))
|| (/ucweb.*linux/i.test(ua));
var isIOS = (/iPhone|iPod|iPad/i).test(ua) && !isAndroid;
var isWinPhone = (/Windows Phone|ZuneWP7/i).test(ua);
var clientWidth = document.documentElement.clientWidth;
if (!isAndroid && !isIOS && !isWinPhone && clientWidth > 1024) {
return false;
} else {
return true;
}
},
/** /**
* 监听 * 监听
* @param options * @param options
@ -276,7 +294,6 @@ layui.define(["element", "layer", "jquery"], function (exports) {
var loading = layer.load(0, {shade: false, time: 2 * 1000}); var loading = layer.load(0, {shade: false, time: 2 * 1000});
var $parent = $(this).parent(); var $parent = $(this).parent();
console.log($parent);
var tabId = $parent.attr('lay-id'); var tabId = $parent.attr('lay-id');
if (tabId !== undefined || tabId !== null) { if (tabId !== undefined || tabId !== null) {
miniTab.delete(tabId); miniTab.delete(tabId);
@ -504,6 +521,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
}); });
}, },
/** /**
* 多模块切换 * 多模块切换
* @param tabId * @param tabId
@ -511,9 +529,44 @@ layui.define(["element", "layer", "jquery"], function (exports) {
listenSwitchMultiModule: function (tabId) { listenSwitchMultiModule: function (tabId) {
$("[layuimini-href]").each(function () { $("[layuimini-href]").each(function () {
if ($(this).attr("layuimini-href") === tabId) { if ($(this).attr("layuimini-href") === tabId) {
var addMenuClass ;
// 如果是移动端
if(miniTab.checkMobile()){
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
// 自动展开菜单栏 } else {
var addMenuClass = function ($element, type) { addMenuClass($element.parent().parent(), 2);
}
} else {
$element.addClass('layui-nav-itemed');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
} else {
addMenuClass($element.parent().parent(), 2);
}
}
};
}else{
addMenuClass = function ($element, type) {
if (type === 1) { if (type === 1) {
$element.addClass('layui-this'); $element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
@ -526,6 +579,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
addMenuClass($element.parent().parent(), 2); addMenuClass($element.parent().parent(), 2);
} }
} else { } else {
$element.addClass('layui-nav-itemed'); $element.addClass('layui-nav-itemed');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) {
var moduleId = $element.parent().attr('id'); var moduleId = $element.parent().attr('id');
@ -538,6 +592,8 @@ layui.define(["element", "layer", "jquery"], function (exports) {
} }
} }
}; };
}
// 自动展开菜单栏
addMenuClass($(this).parent(), 1); addMenuClass($(this).parent(), 1);
return false; return false;
} }

5
src/main/resources/static/js/lay-module/layuimini/miniTheme.js

@ -429,11 +429,6 @@ layui.define(["jquery", "layer"], function (exports) {
'<div class="color-content">\n' + '<div class="color-content">\n' +
'<ul>\n' + bgColorHtml + '</ul>\n' + '<ul>\n' + bgColorHtml + '</ul>\n' +
'</div>\n' + '</div>\n' +
'<div class="more-menu-list">\n' +
'<a class="more-menu-item" href="http://layuimini.99php.cn/docs/index.html" target="_blank"><i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> 开发文档</a>\n' +
'<a class="more-menu-item" href="https://github.com/zhongshaofa/layuimini" target="_blank"><i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> 开源地址</a>\n' +
'<a class="more-menu-item" href="http://layuimini.99php.cn" target="_blank"><i class="layui-icon layui-icon-theme"></i> 官方网站</a>\n' +
'</div>' +
'</div>'; '</div>';
layer.open({ layer.open({
type: 1, type: 1,

149
src/main/resources/templates/index_back.html → src/main/resources/templates/index_mobile.html

@ -1,10 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml"> <html xmlns:th="http://www.w3.org/1999/xhtml">
<html xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>仓库管理系统</title> <title>仓库管理系统</title>
<meta name="keywords" content="layuimini,layui,layui模板,layui后台,后台模板,admin,admin模板,layui mini"> <meta name="keywords" content="layuimini,layui,layui模板,layui后台,后台模板,admin,admin模板,layui mini">
<meta name="description" content="layuimini基于layui的轻量级前端后台管理框架,最简洁、易用的后台框架模板,面向所有层次的前后端程序,只需提供一个接口就直接初始化整个框架,无需复杂操作。"> <meta name="description"
content="layuimini基于layui的轻量级前端后台管理框架,最简洁、易用的后台框架模板,面向所有层次的前后端程序,只需提供一个接口就直接初始化整个框架,无需复杂操作。">
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@ -19,7 +21,14 @@
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]--> <![endif]-->
<!-- vue相关-->
<script src="../static/js/vue/vue.js"></script>
<script src="../static/js/vue/vue.min.js"></script>
<script src="../static/js/vue/vue-router.js"></script>
<script src="../static/lib/http-vue-loader/src/httpVueLoader.js"></script>
<style id="layuimini-bg-color"> <style id="layuimini-bg-color">
</style> </style>
</head> </head>
@ -38,46 +47,42 @@
<ul class="layui-nav layui-layout-left layuimini-header-menu layuimini-menu-header-pc layuimini-pc-show"> <ul class="layui-nav layui-layout-left layuimini-header-menu layuimini-menu-header-pc layuimini-pc-show">
</ul> </ul>
<!--手机端头部菜单-->
<ul class="layui-nav layui-layout-left layuimini-header-menu layuimini-mobile-show">
<li class="layui-nav-item">
<a href="javascript:;"><i class="fa fa-list-ul"></i> 选择模块</a>
<dl class="layui-nav-child layuimini-menu-header-mobile">
</dl>
</li>
</ul>
<ul class="layui-nav layui-layout-right"> <ul class="layui-nav layui-layout-right">
<li class="layui-nav-item" lay-unselect> <li class="layui-nav-item" lay-unselect>
<a href="javascript:;" data-refresh="刷新"><i class="fa fa-refresh"></i></a> <a href="javascript:" id="scan"><i class="fa fa-square-o" aria-hidden="true"></i></a>
</li> </li>
<li class="layui-nav-item" lay-unselect> <li class="layui-nav-item" lay-unselect>
<a href="javascript:;" data-clear="清理" class="layuimini-clear"><i class="fa fa-trash-o"></i></a> <a href="javascript:" data-refresh="刷新"><i class="fa fa-refresh"></i></a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:" data-clear="清理" class="layuimini-clear"><i class="fa fa-trash-o"></i></a>
</li> </li>
<li class="layui-nav-item mobile layui-hide-xs" lay-unselect> <li class="layui-nav-item mobile layui-hide-xs" lay-unselect>
<a href="javascript:;" data-check-screen="full"><i class="fa fa-arrows-alt"></i></a> <a href="javascript:" data-check-screen="full"><i class="fa fa-arrows-alt"></i></a>
</li> </li>
<li class="layui-nav-item layuimini-setting"> <li class="layui-nav-item layuimini-setting">
<a href="javascript:;" th:text="${user.getUname()}"></a> <a href="javascript:" th:text="${user.getName()}"></a>
<div id="authority" th:text="${user.getAuthority()}" style="display: none"></div> <div id="uid" th:text="${user.getId()}" style="display: none"></div>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
<dd> <dd>
<a href="javascript:;" layuimini-content-href="/account_look" data-title="基本资料" data-icon="fa fa-gears">基本资料<span class="layui-badge-dot"></span></a> <a href="javascript:" layuimini-content-href="/account_look" data-title="基本资料"
data-icon="fa fa-gears">基本资料<span class="layui-badge-dot"></span></a>
</dd> </dd>
<dd> <dd style="display: none">
<a href="javascript:;" layuimini-content-href="/user_password" data-title="修改密码" data-icon="fa fa-gears">修改密码</a> <a href="javascript:" layuimini-content-href="/user_password" data-title="修改密码"
data-icon="fa fa-gears">修改密码</a>
</dd> </dd>
<dd> <dd>
<hr> <hr>
</dd> </dd>
<dd> <dd>
<a href="javascript:;" class="login-out">退出登录</a> <a href="javascript:" class="login-out">退出登录</a>
</dd> </dd>
</dl> </dl>
</li> </li>
<li class="layui-nav-item layuimini-select-bgcolor" lay-unselect> <li class="layui-nav-item layuimini-select-bgcolor" lay-unselect>
<a href="javascript:;" data-bgcolor="配色方案"><i class="fa fa-ellipsis-v"></i></a> <a href="javascript:" data-bgcolor="配色方案"><i class="fa fa-ellipsis-v"></i></a>
</li> </li>
</ul> </ul>
</div> </div>
@ -85,6 +90,7 @@
<!--无限极左侧菜单--> <!--无限极左侧菜单-->
<div class="layui-side layui-bg-black layuimini-menu-left"> <div class="layui-side layui-bg-black layuimini-menu-left">
</div> </div>
<!--初始化加载层--> <!--初始化加载层-->
@ -110,11 +116,11 @@
<li class="layui-tab-tool layui-icon layui-icon-down"> <li class="layui-tab-tool layui-icon layui-icon-down">
<ul class="layui-nav close-box"> <ul class="layui-nav close-box">
<li class="layui-nav-item"> <li class="layui-nav-item">
<a href="javascript:;"><span class="layui-nav-more"></span></a> <a href="javascript:"><span class="layui-nav-more"></span></a>
<dl class="layui-nav-child"> <dl class="layui-nav-child">
<dd><a href="javascript:;" layuimini-tab-close="current">关 闭 当 前</a></dd> <dd><a href="javascript:" layuimini-tab-close="current">关 闭 当 前</a></dd>
<dd><a href="javascript:;" layuimini-tab-close="other">关 闭 其 他</a></dd> <dd><a href="javascript:" layuimini-tab-close="other">关 闭 其 他</a></dd>
<dd><a href="javascript:;" layuimini-tab-close="all">关 闭 全 部</a></dd> <dd><a href="javascript:" layuimini-tab-close="all">关 闭 全 部</a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -127,21 +133,24 @@
</div> </div>
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=2.0.0" charset="utf-8"></script> <script src="/static/js/lay-config.js?v=2.0.0" charset="utf-8"></script>
<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
<script> <script>
layui.use(['jquery', 'layer', 'miniAdmin','miniTongji'], function () {
layui.use(['jquery', 'layer', 'miniAdmin'], function () {
var $ = layui.jquery, var $ = layui.jquery,
layer = layui.layer, layer = layui.layer,
miniAdmin = layui.miniAdmin; miniAdmin = layui.miniAdmin;
var authority = $("#authority").text()
let map = new Map();
map.set("roleId",authority)
let obj= Object.create(null); var dataByConfig;
for (let[k,v] of map) { var uid = $("#uid").text();
obj[k] = v;
}
var options = { var options = {
clearUrl: "/static/api/clear.json", // 缓存清理接口 clearUrl: "/static/api/clear.json", // 缓存清理接口
urlHashLocation: true, // 是否打开hash定位 urlHashLocation: true, // 是否打开hash定位
@ -152,39 +161,67 @@
pageAnim: true, // iframe窗口动画 pageAnim: true, // iframe窗口动画
maxTabNum: 20, // 最大的tab打开数量 maxTabNum: 20, // 最大的tab打开数量
}; };
options.iniUrl= "/static/api/test.json" // 初始化接口 options.iniUrl = "/index/menus?uid=" + uid; // 初始化接口
// 获取对应菜单
$.ajax({
url:'/index/menus',
type:'post',
async:true,
contentType : 'application/json;charset=utf-8',
data: JSON.stringify(obj),
complete:function (XHR,TS){
if(XHR.status != 200){
layer.alert("系统繁忙,稍后重试");
}
},
success:function (result){
// console.log(result)
// result = JSON.stringify(result.json)
// console.log(result.json)
options.iniUrl = result.json;
}
});
miniAdmin.render(options); miniAdmin.render(options);
$("#scan").on("click", function () {
layer.open({
type: 2,
title: '扫码',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move: '.layui-layer-title',
fixed: false,
content: '/scanQrCode'
})
});
$('.login-out').on("click", function () { $('.login-out').on("click", function () {
layer.msg('退出登录成功', function () { $.ajax({
url: "/loginOut",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
layer.msg(data.statusInfo.message, function () {
window.location = '/login'; window.location = '/login';
}); });
}
});
}); });
let url = window.location.href.split("#")[0];
var req = {};
req.url = url;
$.ajax({
url: "/QyWxSignature",
type: "get",
datatype: "json",
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
wx.config({
beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.corpid, // 必填,企业微信的corpID
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.jsapi_ticket_enterprises,// 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList: ['invoke','thirdPartyOpenPage','scanQRCode'] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
}
});
}); });
</script> </script>

166
src/main/resources/templates/pages/application/application-out.html

@ -70,9 +70,14 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料编码:</label> <label class="layui-form-label">物料编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value="" <input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)" onblur="selectCode(this)"
class="layui-input" lay-verify="required"> class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanCodeByOut(this)">
</div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -182,6 +187,11 @@
function Coverpage() { function Coverpage() {
} }
// 用于扫码出库
function scanCodeByOut(obj) {
}
// 用于暂存卡片个数 // 用于暂存卡片个数
var params = []; var params = [];
// 用于卡片编号 // 用于卡片编号
@ -244,59 +254,6 @@
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
} else { } else {
/*let url = window.location.href.split("#")[0];
var req = {};
req.url = url;
$.ajax({
url: "/QyWxSignature",
type: "get",
datatype: "json",
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
console.log(data)
console.log(parent)
parent.wx.agentConfig({
corpid: data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.jsapi_ticket_app,// 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['thirdPartyOpenPage'], //必填,传入需要使用的接口名称
success: function (res) {
// 回调
parent.wx.invoke('thirdPartyOpenPage', {
"oaType": "10001",// String
"templateId": "3WKiKVCzyLv3Y1LaHZxp4DimQEpCdvYP52HsAUtF",// String
"thirdNo": "123456456",// String
"extData": {
'fieldList': [{
'title': '采购类型',
'type': 'text',
'value': '市场活动',
},
{
'title': '订单链接',
'type': 'link',
'value': 'https://work.weixin.qq.com',
}],
}
},
function (res) {
// 输出接口的回调信息
console.log(res);
});
},
fail: function (res) {
if (res.errMsg.indexOf('function not exist') > -1) {
alert('版本过低请升级')
}
console.log(res)
}
});
}
});*/
layer.msg("申请提交成功", { layer.msg("申请提交成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -496,7 +453,7 @@
// 输入code // 输入code
var code = obj.value; var code = obj.value;
// 获取对应元素 // 获取对应元素
var parent = obj.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var objId = parent.id.split("cardItem")[1]; var objId = parent.id.split("cardItem")[1];
var children = parent.childNodes[5]; var children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialItem = children.childNodes[3].childNodes[1].childNodes;
@ -569,7 +526,7 @@
var parentId = parent.id; var parentId = parent.id;
var codeChildren = parent.childNodes[7]; var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5]; var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1]; var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
@ -648,7 +605,7 @@
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5]; var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7]; var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1]; var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
@ -714,7 +671,8 @@
// 条形码条码 // 条形码条码
var barCodeItem = barCodeChildren.childNodes[3]; var barCodeItem = barCodeChildren.childNodes[3];
// 物料编码 // 物料编码
var materialCodeItem = parent.childNodes[7].childNodes[3]; var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes;
var materialCode = materialCodeItem.childNodes[1]; var materialCode = materialCodeItem.childNodes[1];
@ -737,6 +695,85 @@
}) })
}; };
// 用于扫码功能
scanCodeByOut = function (obj) {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$.ajax({
url: "/material/qywxApplicationOutScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var MaterialChildren = parent.childNodes[5];
var materialItem = MaterialChildren.childNodes[3].childNodes[1].childNodes;
var barCodeChildren = parent.childNodes[9];
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
// 条形码条码
var barCodeItem = barCodeChildren.childNodes[3];
// 物料编码
var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes;
var materialCode = materialCodeItem.childNodes[1];
var idNumber = materialId.name.split("mid")[1];
// 获取物料与条形码的对应关系
var materialAndBarCodeList = data["materialAndBarCodeList"];
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
var barCodeImg = barCodeItem.childNodes[1].childNodes[3];
var id = barCodeInput.id;
$("#" + id).remove();
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
} else {
var barCodeSelect = `
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `>
</select>`;
$("#" + barCodeImg.id).before(barCodeSelect);
}
form.render();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}
$('#place' + idNumber).empty();
$.each(data.placePList, function (index, item) {
$('#place' + idNumber).append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素
});
form.render();
materialName.value = data.mname;
materialId.value = data.id;
materialCode.value = data.code;
}
})
}
})
};
//用于判断当前物料数量是否合适 //用于判断当前物料数量是否合适
MaterialQuantityIsTrue = function (obj) { MaterialQuantityIsTrue = function (obj) {
var id = obj.id.split("quantity")[1]; var id = obj.id.split("quantity")[1];
@ -746,9 +783,11 @@
$("#quantity" + id).val("") $("#quantity" + id).val("")
}); });
} else { } else {
let val = $("#quantity" + id).val();
if(val !== null && val !== undefined && val !== '') {
var req = {}; var req = {};
req.code = mcode; req.code = mcode;
req.quantity = $("#quantity" + id).val(); req.quantity = val;
$.ajax({ $.ajax({
url: "/material/MaterialQuantityIsTrue", url: "/material/MaterialQuantityIsTrue",
type: "post", type: "post",
@ -767,11 +806,17 @@
var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3]; var materialId = materialName.parentNode.parentNode.childNodes[3];
var codeItem = codeChildren.childNodes[3].childNodes; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1]; var codeValue = codeItem[1];
materialName.value = ""; materialName.value = "";
materialId.value = ""; materialId.value = "";
codeValue.value = ""; codeValue.value = "";
var idNumber = materialId.name.split("mid")[1];
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
}); });
} }
@ -779,6 +824,7 @@
}); });
} }
} }
}
}) })

38
src/main/resources/templates/pages/application/application-out_min.html

@ -28,7 +28,7 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','laydate'], function () { layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
@ -53,19 +53,20 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
"depositoryId":depositoryId, "depositoryId": depositoryId,
"state":state "state": state
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
//这里layui和thymeleaf冲突了,要加个空格 //这里layui和thymeleaf冲突了,要加个空格
cols: [ [ cols: [
[
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"}, {title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true}, {field: 'code', width: 200, title: '提交编码', sort: true},
@ -80,17 +81,18 @@
{field: 'state', width: 200, title: '状态'}, {field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'} {field: 'checkerName', width: 200, title: '处理人'}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function (res, curr, count) { done: function (res, curr, count) {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
var data = res.data; var data = res.data;
if(data.length > 0){ if (data.length > 0) {
if(data[0].state === "进行中"){ if (data[0].state === "进行中") {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
} }
@ -109,10 +111,10 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'], area: ['100%', '100%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/scanQrCodeByOut?id='+data.id, content: '/scanQrCodeByOut?id=' + data.id,
end:function () { end: function () {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/depositoryRecord/ApplicationOutMinByDid', url: '/depositoryRecord/ApplicationOutMinByDid',
page: { page: {

2
src/main/resources/templates/pages/application/application-transfer.html

@ -173,7 +173,7 @@
function selectMaterialByName(obj){} function selectMaterialByName(obj){}
// 用于加载仓库菜单 // 用于加载仓库菜单
function openDepositoryTree(obj){} function openDepositoryTree(obj){}
// 用于扫码入库 // 用于扫码转移
function scanCodeByTransfer(obj) { function scanCodeByTransfer(obj) {
} }

59
src/main/resources/templates/pages/company/company-out.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">公司名称</label> <label class="layui-form-label">公司名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="name" > <select name="name">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="administration,iterStar:${administrationPList}" th:value="${administration?.getName()}" th:text="${administration?.getName()}" >顶级公司</option> <option th:each="administration,iterStar:${administrationPList}"
th:value="${administration?.getName()}"
th:text="${administration?.getName()}">顶级公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -48,8 +51,6 @@
</fieldset> </fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
@ -70,7 +71,7 @@
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allCompanyByParent', url: '/company/allCompanyByParent',
method:"post", method: "post",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -84,52 +85,54 @@
limitName: 'pagesize', //每页数据量的参数名,默认:limit limitName: 'pagesize', //每页数据量的参数名,默认:limit
}, },
where: { where: {
superior:parentId superior: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'name', width: 250, title: '名称'},
{field: 'abbreviation',width: 200,title: '简称'}, {field: 'abbreviation', width: 200, title: '简称'},
{ {
field: 'state', title: '状态', minWidth: 80, templet: function (d) { field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.name!==''){ if (data.name !== '') {
req.name = data.name; req.name = data.name;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.superior = parentId req.superior = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
@ -157,14 +160,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/company_detail?id='+data.id, content: '/company_detail?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子公司', title: '子公司',
type: 2, type: 2,
@ -172,14 +174,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findCompanyByParentId?parentId='+data.id content: '/findCompanyByParentId?parentId=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'post') {
else if (obj.event == 'post'){
var index = layer.open({ var index = layer.open({
title: '岗位列表', title: '岗位列表',
type: 2, type: 2,
@ -187,7 +188,7 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findPostByOrganization?organization='+data.id content: '/findPostByOrganization?organization=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);

132
src/main/resources/templates/pages/company/company-out_back.html

@ -21,9 +21,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">公司名称</label> <label class="layui-form-label">公司名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="cid" > <select name="cid">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="company,iterStar:${companies}" th:value="${company?.getCid()}" th:text="${company?.getCname()}" >顶级公司</option> <option th:each="company,iterStar:${companies}" th:value="${company?.getCid()}"
th:text="${company?.getCname()}">顶级公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -50,7 +52,8 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.cid}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.cid}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
@ -66,7 +69,8 @@
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子公司</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子公司</a>
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
</div> </div>
@ -80,7 +84,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allCompanyByParent?parentId='+parentId, url: '/company/allCompanyByParent?parentId=' + parentId,
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -94,25 +98,27 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'cid', width: 100, title: '公司', sort: true}, {field: 'cid', width: 100, title: '公司', sort: true},
{field: 'cname', width: 120, title: '公司名称', sort: true}, {field: 'cname', width: 120, title: '公司名称', sort: true},
{field: 'introduce',width: 200,title: '公司介绍',sort: true}, {field: 'introduce', width: 200, title: '公司介绍', sort: true},
{field:'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
@ -121,16 +127,16 @@
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.cid!==''){ if (data.cid !== '') {
req.id = data.cid; req.id = data.cid;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
@ -159,30 +165,29 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].cid; req.ids[i] = data[i].cid;
} }
$.ajax({ $.ajax({
url: '/company/company_del', url: '/company/company_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -216,14 +221,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/company_detail?id='+data.cid, content: '/company_detail?id=' + data.cid,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') {
var req = {}; var req = {};
req.id = data.cid; req.id = data.cid;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
@ -240,7 +244,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
@ -251,8 +255,7 @@
} }
}) })
}); });
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子公司', title: '子公司',
type: 2, type: 2,
@ -260,34 +263,33 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findCompanyByParentId?parentId='+data.cid content: '/findCompanyByParentId?parentId=' + data.cid
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'realDelete') { // 彻底删除
else if (obj.event == 'realDelete') { // 彻底删除
var req = {}; var req = {};
req.id = data.cid; req.id = data.cid;
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/company/realDeleteCompany', url: '/company/realDeleteCompany',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -296,27 +298,27 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} }
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value req["id"] = this.value;
var hasMaterial = false var hasMaterial = false;
$.ajax({ $.ajax({
url: "/company/EditCompanyState", url: "/company/EditCompanyState",
type: 'post', type: 'post',
@ -330,19 +332,19 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行表格重加载 // 执行表格重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} }

56
src/main/resources/templates/pages/company/companyByParentId.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">公司名称</label> <label class="layui-form-label">公司名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="number" > <select name="number">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="administration,iterStar:${administrationPList}" th:value="${administration?.getId()}" th:text="${administration?.getName()}" >顶级公司</option> <option th:each="administration,iterStar:${administrationPList}"
th:value="${administration?.getId()}"
th:text="${administration?.getName()}">顶级公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -48,8 +51,6 @@
</fieldset> </fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
@ -69,7 +70,7 @@
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allCompanyByParent', url: '/company/allCompanyByParent',
method:"post", method: "post",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -83,55 +84,57 @@
limitName: 'pagesize' //每页数据量的参数名,默认:limit limitName: 'pagesize' //每页数据量的参数名,默认:limit
}, },
where: { where: {
superior:parentId superior: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 200, title: '名称', sort: true}, {field: 'name', width: 200, title: '名称', sort: true},
{field: 'abbreviation',width: 200,title: '简称',sort: true}, {field: 'abbreviation', width: 200, title: '简称', sort: true},
{ {
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
one:function () { one: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.number!==''){ if (data.number !== '') {
req.number = data.number; req.number = data.number;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
@ -159,14 +162,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/company_detail?id='+data.cid, content: '/company_detail?id=' + data.cid,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子公司', title: '子公司',
type: 2, type: 2,
@ -174,7 +176,7 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findCompanyByParentId?parentId='+data.id content: '/findCompanyByParentId?parentId=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);

114
src/main/resources/templates/pages/depository/table-in.html

@ -31,18 +31,20 @@
id="openSonByDepository" readonly onclick="openDepositoryTree(this)" id="openSonByDepository" readonly onclick="openDepositoryTree(this)"
/> />
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" <input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none" /> style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">物料名称:</label> <label class="layui-form-label">物料名称:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称" class="layui-input" onclick="selectMaterialByName(this)" /> <input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称"
<input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称" class="layui-input" style="display:none;" /> class="layui-input" onclick="selectMaterialByName(this)"/>
<!-- <select name="mid">--> <input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称"
<!-- <option value="" selected>请选择物料名称</option>--> class="layui-input" style="display:none;"/>
<!-- <option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option>--> <!-- <select name="mid">-->
<!-- </select>--> <!-- <option value="" selected>请选择物料名称</option>-->
<!-- <option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option>-->
<!-- </select>-->
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -74,13 +76,17 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
// 用于加载仓库菜单 // 用于加载仓库菜单
function openDepositoryTree(obj){} function openDepositoryTree(obj) {
function selectMaterialByName(obj){} }
layui.use(['form', 'table','laydate'], function () {
function selectMaterialByName(obj) {
}
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
laydate=layui.laydate; laydate = layui.laydate;
// 用于打开仓库树形菜单 // 用于打开仓库树形菜单
openDepositoryTree = function (obj) { openDepositoryTree = function (obj) {
@ -93,12 +99,11 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectDepository?type=1&clickObj='+parentId, content: '/selectDepository?type=1&clickObj=' + parentId,
}); });
} };
//日期 //日期
@ -120,19 +125,19 @@
pageName: 'page', //页码的参数名称,默认:page pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {},
},
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格 //这里layui和thymeleaf冲突了,要加个空格
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: '提交编号', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'aircode', width: 100, title: '提交编码', sort: true}, {field: 'aircode', width: 100, title: '提交编码', sort: true},
@ -145,28 +150,29 @@
{field: 'applicantTime', width: 200, title: '提交时间', sort: true}, {field: 'applicantTime', width: 200, title: '提交时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applyRemark', width: 200, title: '备注'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.mid!==''){ if (data.mid !== '') {
req.mid=data.mid; req.mid = data.mid;
} }
if (data.depositoryId!==''){ if (data.depositoryId !== '') {
req.depositoryId=data.depositoryId; req.depositoryId = data.depositoryId;
} }
if (data.applyTime!==''){ if (data.applyTime !== '') {
req.applyTime=data.applyTime; req.applyTime = data.applyTime;
} }
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
@ -199,12 +205,12 @@
} else if (obj.event === 'delete') { // 监听删除操作 } else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/depositoryRecord/deleteApplicationInRecord', url: '/depositoryRecord/deleteApplicationInRecord',
@ -219,7 +225,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -237,7 +243,7 @@
} }
}) })
}) })
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
@ -260,31 +266,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/form_step_look?id='+data.id, content: '/form_step_look?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/depositoryRecord/deleteApplicationInRecord', url: '/depositoryRecord/deleteApplicationInRecord',
type: 'post', type: 'post',
dataType:'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -310,8 +316,8 @@
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
content: '/selectMaterial?type=1&mname=""', content: '/selectMaterial?type=1&mname=""',
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false fixed: false
}); });
}; };

112
src/main/resources/templates/pages/depository/table-out.html

@ -31,8 +31,10 @@
<option value="" selected>请选择仓库</option> <option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option> <option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>--> </select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly /> <input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" /> readonly/>
<input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -42,8 +44,10 @@
<option value="" selected>请选择物料名称</option> <option value="" selected>请选择物料名称</option>
<option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option> <option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option>
</select>--> </select>-->
<input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称" class="layui-input" onclick="selectMaterialByName(this)" /> <input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称"
<input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称" class="layui-input" style="display:none;" /> class="layui-input" onclick="selectMaterialByName(this)"/>
<input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称"
class="layui-input" style="display:none;"/>
</div> </div>
</div> </div>
@ -76,15 +80,18 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
var data; var data;
// 用于加载仓库菜单 // 用于加载仓库菜单
function selectMaterialByName(obj){} function selectMaterialByName(obj) {
layui.use(['form', 'table','laydate'], function () { }
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
laydate=layui.laydate; laydate = layui.laydate;
$('#openSonByDepository').on('click', function(){ $('#openSonByDepository').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -92,8 +99,8 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectDepository?type=2', content: '/selectDepository?type=2',
}); });
}); });
@ -111,8 +118,8 @@
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
content: '/selectMaterial?type=1&mname=""', content: '/selectMaterial?type=1&mname=""',
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false fixed: false
}); });
}; };
@ -136,19 +143,19 @@
pageName: 'page', //页码的参数名称,默认:page pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {},
},
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格 //这里layui和thymeleaf冲突了,要加个空格
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: '申请编号', sort: true}, {field: 'id', width: 100, title: '申请编号', sort: true},
{field: 'code', width: 100, title: '申请编码', sort: true}, {field: 'code', width: 100, title: '申请编码', sort: true},
@ -160,9 +167,9 @@
{field: 'state', width: 150, title: '流程状态'}, {field: 'state', width: 150, title: '流程状态'},
{ {
field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) { field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) {
if (d.pass == 1){ if (d.pass == 1) {
return "是"; return "是";
}else{ } else {
return "否"; return "否";
} }
} }
@ -171,36 +178,37 @@
{field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{ {
field: 'istransfer', title: '是否为转移申请', minWidth: 120, templet: function (d) { field: 'istransfer', title: '是否为转移申请', minWidth: 120, templet: function (d) {
if (d.istransfer == 1){ if (d.istransfer == 1) {
return "是"; return "是";
}else if(d.istransfer == 2){ } else if (d.istransfer == 2) {
return "否"; return "否";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.mid!==''){ if (data.mid !== '') {
req.mid=data.mid; req.mid = data.mid;
} }
if (data.depositoryId!==''){ if (data.depositoryId !== '') {
req.depositoryId=data.depositoryId; req.depositoryId = data.depositoryId;
} }
if (data.applyTime!==''){ if (data.applyTime !== '') {
req.applyTime=data.applyTime; req.applyTime = data.applyTime;
} }
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
@ -233,12 +241,12 @@
} else if (obj.event === 'delete') { // 监听删除操作 } else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/depositoryRecord/deleteApplicationOutRecord', url: '/depositoryRecord/deleteApplicationOutRecord',
@ -253,7 +261,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -271,7 +279,7 @@
} }
}) })
}); });
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
@ -293,31 +301,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/ApplicationOutView?id='+data.id, content: '/ApplicationOutView?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: 'depositoryRecord/deleteApplicationOutRecord', url: 'depositoryRecord/deleteApplicationOutRecord',
type: 'post', type: 'post',
dataType:'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

54
src/main/resources/templates/pages/material/material-add.html

@ -34,10 +34,10 @@
<legend>物料创建</legend> <legend>物料创建</legend>
<div class="layui-fluid"> <div class="layui-fluid">
<div class="layui-card"> <div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;padding-left:0px;padding-right:0px"> <div class="layui-card-body" style="padding-left:0px;padding-right:0px">
<div> <div>
<form class="layui-form" <form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px" lay-filter="form1"> style="margin: 0 auto;max-width: 700px;padding-top: 5px; padding-bottom: 50px" lay-filter="form1">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料名称:</label> <label class="layui-form-label">物料名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -62,6 +62,15 @@
name="version"/> name="version"/>
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">品牌:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写物料品牌" class="layui-input"
name="brand"/>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料类型:</label> <label class="layui-form-label">物料类型:</label>
@ -86,6 +95,34 @@
name="unit" /> name="unit" />
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">生产日期:</label>
<div class="layui-input-block">
<input type="text" name="producedDate" id="producedDate" placeholder="请选择生产日期"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">保质期:</label>
<div class="layui-input-block">
<input type="text" name="shelfLife" id="shelfLife" placeholder="请选择保质日期"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">产地:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写物料产地" class="layui-input"
name="productionPlace" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写备注" class="layui-input"
name="remark" />
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep"> <button class="layui-btn" lay-submit lay-filter="formStep">
@ -110,11 +147,12 @@
var data; var data;
function selectBarCode(){} function selectBarCode(){}
function scanBarCode(){} function scanBarCode(){}
layui.use(['form', 'layer','dropdown','tree'], function () { layui.use(['form', 'layer','dropdown','tree','laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
dropdown = layui.dropdown, dropdown = layui.dropdown,
tree = layui.tree, tree = layui.tree,
laydate = layui.laydate,
layer = layui.layer; layer = layui.layer;
@ -132,6 +170,16 @@
}); });
}); });
laydate.render({
elem: '#producedDate'
,format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#shelfLife'
,format: 'yyyy-MM-dd'
});
$('#openSonByDepository').on('click', function(){ $('#openSonByDepository').on('click', function(){
layer.open({ layer.open({
type: 2, type: 2,

290
src/main/resources/templates/pages/material/material-out.html

@ -12,6 +12,7 @@
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<input style="display:none;" id="nowDay" th:value="${nowDay}">
<fieldset class="table-search-fieldset"> <fieldset class="table-search-fieldset">
<legend>搜索信息</legend> <legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px"> <div style="margin: 10px 10px 10px 10px">
@ -19,14 +20,13 @@
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">仓库</label> <label class="layui-form-label">品牌</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<!--<select name="depositoryId" > <!--<select name="depositoryId" >
<option value="" selected>请选择仓库</option> <option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option> <option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>--> </select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly /> <input type="text" class="layui-input" id="brand" name="brand" autocomplete="off"/>
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" />
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -36,8 +36,10 @@
<option value="" selected>请选择物料类型</option> <option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option> <option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>--> </select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly /> <input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType"
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId" class="layui-input" style="display: none" /> readonly/>
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId"
class="layui-input" style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -75,15 +77,19 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> </button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div> </div>
</script> </script>
@ -92,19 +98,23 @@
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
</div> </div>
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','upload'], function () { // 定义过期警报时间为7天
var warningTime = 604800000;
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
upload = layui.upload; upload = layui.upload;
var nowDay = $("#nowDay").val();
$('#openSonByMateralType').on('click', function(){ $('#openSonByMateralType').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -112,25 +122,12 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectType', content: '/selectType',
}); });
}); });
$('#openSonByDepository').on('click', function(){
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move : '.layui-layer-title',
fixed:false,
content: '/selectDepository?type=2',
});
});
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
@ -148,57 +145,94 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'code',width: 150,title: '存货编码',sort: true}, {field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号',hidden:true}, {field: 'id', width: 100, title: 'EAS编号', hidden: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName',width: 150,title: '物料种类'}, {field: 'typeName', width: 150, title: '物料种类'},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'texture', width: 100, title: '材质'},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'unit', width: 150, title: '计量单位'},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'brand', width: 150, title: '品牌'},
{field: 'producedDate', width: 150, title: '生产日期'},
{field: 'shelfLife', width: 150, title: '保质期'},
{field: 'productionPlace', width: 150, title: '产地'},
{field: 'remark', width: 150, title: '备注'},
{field: 'shelfLifeForCalc', width: 150, title: '用于计算时间'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function (res, curr, count) {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='shelfLifeForCalc']").css('display', 'none');
$.each(res['data'], function (i, j) {
let jElement = j['shelfLifeForCalc'];
if (jElement !== null && jElement !== undefined) {
let flag = (Number(jElement) - Number(nowDay) < warningTime);
if (flag) {
// console.log(i + ' -458- ' + 'jdjg is null');
Layui_SetDataTableRowColor('table', i + 1, '#b1070a');
}
} }
}); });
}
});
// 用于给table行上色的方法
function Layui_SetDataTableRowColor(TabDivId, RowIndex, ColorString) {
try {
var div = $("[lay-id='currentTableId'] tr:eq(" + RowIndex + ")");
if (div != null) //找到对象了
{
// console.log(div);
div.css("color", ColorString);
} else {
console.log('没有找到对象');
}
} catch (e) {
console.log(e.message);
}
}
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.mname!==''){ if (data.mname !== '') {
req.mname=data.mname; req.mname = data.mname;
} }
if(data.depositoryId!== ''){ if (data.brand !== '') {
req.depositoryId = data.depositoryId; req.brand = data.brand;
} }
if(data.materialTypeId !=''){ if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId; req.materialTypeId = data.materialTypeId;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
if(data.code != ''){ if (data.code != '') {
req.code = data.code req.code = data.code
} }
@ -230,16 +264,15 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
@ -254,7 +287,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -272,24 +305,22 @@
} }
}) })
}) })
} } else {
else{
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} } else if (obj.event === 'applicationIn') {
else if(obj.event === 'applicationIn'){
// 入库申请 // 入库申请
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.mids=[]; req.mids = [];
// 获取所有选中的id // 获取所有选中的id
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.mids[i]=data[i].id; req.mids[i] = data[i].id;
} }
$.ajax({ $.ajax({
url:"/material/temporaryValueForMaterial", url: "/material/temporaryValueForMaterial",
type: 'post', type: 'post',
dataType: 'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
@ -297,9 +328,9 @@
beforeSend: function () { beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function (d) { success: function (d) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(d.status == 200){ if (d.status == 200) {
layer.open({ layer.open({
type: 2, type: 2,
title: '入库', title: '入库',
@ -310,7 +341,7 @@
move: '.layui-layer-title', move: '.layui-layer-title',
fixed: false, fixed: false,
content: '/applicationInByMaterial', content: '/applicationInByMaterial',
end:function () { end: function () {
var index = parent.layer.getFrameIndex(window.name); var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index); parent.layer.close(index);
} }
@ -324,31 +355,31 @@
//用于导入数据 //用于导入数据
var upLoader = upload.render({ var upLoader = upload.render({
elem:"#u_fileUpload", // 绑定元素 elem: "#u_fileUpload", // 绑定元素
url:'/excel/importExcelByMaterial', // 上传接口 url: '/excel/importExcelByMaterial', // 上传接口
accept:'file', // 允许上传的格式, accept: 'file', // 允许上传的格式,
before: function(obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。 before: function (obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
layer.load(); //上传loading layer.load(); //上传loading
}, },
exts:'xls|xlsx|csv', exts: 'xls|xlsx|csv',
done:function(res){ done: function (res) {
layer.closeAll('loading'); //关闭loading layer.closeAll('loading'); //关闭loading
//如果上传成功 //如果上传成功
var re = ""; var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show re += show
} }
if(res.code === 200){ if (res.code === 200) {
for (let i = 0; i < res.data.dataList.length; i++) { for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"]; var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"] == null || res.data.dataList[i]["code"] == undefined ?"":res.data.dataList[i]["code"]; var code = res.data.dataList[i]["code"] == null || res.data.dataList[i]["code"] == undefined ? "" : res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"] == null || res.data.dataList[i]["version"] == undefined ?"":res.data.dataList[i]["version"]; var version = res.data.dataList[i]["version"] == null || res.data.dataList[i]["version"] == undefined ? "" : res.data.dataList[i]["version"];
var texture = res.data.dataList[i]["texture"] == null || res.data.dataList[i]["texture"] == undefined ?"":res.data.dataList[i]["texture"]; var texture = res.data.dataList[i]["texture"] == null || res.data.dataList[i]["texture"] == undefined ? "" : res.data.dataList[i]["texture"];
var unit = res.data.dataList[i]["unit"] == null || res.data.dataList[i]["unit"] == undefined ?"":res.data.dataList[i]["unit"]; var unit = res.data.dataList[i]["unit"] == null || res.data.dataList[i]["unit"] == undefined ? "" : res.data.dataList[i]["unit"];
var typeId = res.data.dataList[i]["typeId"] == null || res.data.dataList[i]["typeId"] == undefined ?"":res.data.dataList[i]["typeId"]; var typeId = res.data.dataList[i]["typeId"] == null || res.data.dataList[i]["typeId"] == undefined ? "" : res.data.dataList[i]["typeId"];
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+unit +" "+typeId+" :成功" +"</p>" var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + unit + " " + typeId + " :成功" + "</p>";
re += show re += show
} }
@ -358,20 +389,20 @@
area: ['500px', '500px'], //宽高 area: ['500px', '500px'], //宽高
content: re content: re
}) })
}else{ } else {
layer.msg(res.msg) layer.msg(res.msg)
} }
}, },
error:function (){ error: function () {
layer.closeAll('loading'); //关闭loading layer.closeAll('loading'); //关闭loading
var demoText = $('#demoText'); var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){ demoText.find('.demo-reload').on('click', function () {
upLoader.upload() upLoader.upload()
}) })
} }
}) });
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
@ -389,8 +420,8 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/material_view?id='+data.id, content: '/material_view?id=' + data.id,
end:function () { end: function () {
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/material/material', url: '/material/material',
@ -404,26 +435,25 @@
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') { var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -433,28 +463,27 @@
} }
}) })
}); });
} } else if (obj.event == 'realDelete') { //彻底删除
else if (obj.event == 'realDelete'){ //彻底删除 var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/material/realDeleteMaterial', url: '/material/realDeleteMaterial',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -463,18 +492,17 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/repository/warehouseRecord', url: '/repository/warehouseRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} } else if (obj.event == 'manager') {
else if (obj.event == 'manager'){
layer.open({ layer.open({
type: 2, type: 2,
@ -483,15 +511,15 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'], area: ['893px', '600px'],
content: '/ManagerViewByMid?id='+data.id content: '/ManagerViewByMid?id=' + data.id
}); });
} }
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value; req["id"] = this.value;
@ -508,13 +536,13 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
window.location='/material_out' window.location = '/material_out'
}) })
} }
} }

248
src/main/resources/templates/pages/material/material-out_back.html

@ -25,8 +25,10 @@
<option value="" selected>请选择仓库</option> <option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option> <option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>--> </select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly /> <input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" /> readonly/>
<input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -36,8 +38,10 @@
<option value="" selected>请选择物料类型</option> <option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option> <option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>--> </select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly /> <input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType"
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId" class="layui-input" style="display: none" /> readonly/>
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId"
class="layui-input" style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -76,14 +80,17 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div> </div>
</script> </script>
@ -92,7 +99,8 @@
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
<script id="selectManager" type="text/html"> <script id="selectManager" type="text/html">
@ -103,13 +111,13 @@
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','upload'], function () { layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
upload = layui.upload; upload = layui.upload;
$('#openSonByMateralType').on('click', function(){ $('#openSonByMateralType').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -117,13 +125,13 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectType', content: '/selectType',
}); });
}); });
$('#openSonByDepository').on('click', function(){ $('#openSonByDepository').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -131,8 +139,8 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectDepository?type=2', content: '/selectDepository?type=2',
}); });
}); });
@ -153,60 +161,62 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'code',width: 150,title: '存货编码',sort: true}, {field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号',hidden:true}, {field: 'id', width: 100, title: 'EAS编号', hidden: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName',width: 150,title: '物料种类'}, {field: 'typeName', width: 150, title: '物料种类'},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'texture', width: 100, title: '材质'},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'unit', width: 150, title: '计量单位'},
{field: 'depositoryCode',width: 250,title: '仓库编码',sort: true}, {field: 'depositoryCode', width: 250, title: '仓库编码', sort: true},
{field: "depositoryName",width: 120,title: "仓库名称"}, {field: "depositoryName", width: 120, title: "仓库名称"},
{field: 'quantity',width: 120,title:'数量',sort: true}, {field: 'quantity', width: 120, title: '数量', sort: true},
{field: 'price',width: 150,title: '单价',sort: true}, {field: 'price', width: 150, title: '单价', sort: true},
{field: 'amounts',width: 180,title: '总金额',sort: true}, {field: 'amounts', width: 180, title: '总金额', sort: true},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '仓管员', minWidth: 80, templet: '#selectManager' ,align: "center"}, {title: '仓管员', minWidth: 80, templet: '#selectManager', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.mname!==''){ if (data.mname !== '') {
req.mname=data.mname; req.mname = data.mname;
} }
if(data.depositoryId!== ''){ if (data.depositoryId !== '') {
req.depositoryId = data.depositoryId; req.depositoryId = data.depositoryId;
} }
if(data.materialTypeId !=''){ if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId; req.materialTypeId = data.materialTypeId;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
@ -238,16 +248,15 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
@ -262,7 +271,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -280,23 +289,21 @@
} }
}) })
}) })
} } else {
else{
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} } else if (obj.event === 'createQrCode') {
else if(obj.event === 'createQrCode'){
$.ajax({ $.ajax({
url:"/material/createQrCode?mid=3", url: "/material/createQrCode?mid=3",
dataType: 'json', dataType: 'json',
type: 'get', type: 'get',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (data) { success: function (data) {
if(data.status != 200){ if (data.status != 200) {
layer.msg(data.statusInfo.messgae) layer.msg(data.statusInfo.messgae)
}else{ } else {
$("#qrCode").attr("src",data.data); $("#qrCode").attr("src", data.data);
} }
} }
}) })
@ -304,27 +311,27 @@
}); });
var upLoader = upload.render({ var upLoader = upload.render({
elem:"#u_fileUpload", // 绑定元素 elem: "#u_fileUpload", // 绑定元素
url:'/excel/importExcel', // 上传接口 url: '/excel/importExcel', // 上传接口
accept:'file', // 允许上传的格式, accept: 'file', // 允许上传的格式,
exts:'xls|xlsx|csv', exts: 'xls|xlsx|csv',
done:function(res){ done: function (res) {
//如果上传成功 //如果上传成功
if(res.code == 200){ if (res.code == 200) {
var re = "" var re = "";
for (let i = 0; i < res.data.dataList.length; i++) { for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"] var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"] var code = res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"] var version = res.data.dataList[i]["version"];
var texture = res.data.dataList[i]["texture"] var texture = res.data.dataList[i]["texture"];
var price = res.data.dataList[i]["price"] var price = res.data.dataList[i]["price"];
var quantity = res.data.dataList[i]["quantity"] var quantity = res.data.dataList[i]["quantity"];
var unit = res.data.dataList[i]["unit"] var unit = res.data.dataList[i]["unit"];
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+price +" "+quantity +" "+unit +":成功" +"</p>" var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + price + " " + quantity + " " + unit + ":成功" + "</p>";
re += show re += show
} }
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show re += show
} }
layer.open({ layer.open({
@ -333,19 +340,19 @@
area: ['500px', '500px'], //宽高 area: ['500px', '500px'], //宽高
content: re content: re
}) })
}else{ } else {
layer.msg(res.msg) layer.msg(res.msg)
} }
}, },
error:function (){ error: function () {
var demoText = $('#demoText'); var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){ demoText.find('.demo-reload').on('click', function () {
upLoader.upload() upLoader.upload()
}) })
} }
}) });
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
@ -363,32 +370,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/material_view?id='+data.id, content: '/material_view?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') { var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -398,28 +404,27 @@
} }
}) })
}); });
} } else if (obj.event == 'realDelete') { //彻底删除
else if (obj.event == 'realDelete'){ //彻底删除 var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/material/realDeleteMaterial', url: '/material/realDeleteMaterial',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -428,18 +433,17 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/repository/warehouseRecord', url: '/repository/warehouseRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} } else if (obj.event == 'manager') {
else if (obj.event == 'manager'){
layer.open({ layer.open({
type: 2, type: 2,
@ -448,18 +452,18 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'], area: ['893px', '600px'],
content: '/ManagerViewByMid?id='+data.id content: '/ManagerViewByMid?id=' + data.id
}); });
} }
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value req["id"] = this.value;
$.ajax({ $.ajax({
url: "/material/material_edit", url: "/material/material_edit",
type: 'post', type: 'post',
@ -473,13 +477,13 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
window.location='/material_out' window.location = '/material_out'
}) })
} }
} }

44
src/main/resources/templates/pages/material/material-view.html

@ -63,6 +63,13 @@
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">品牌:</label>
<div class="layui-input-inline">
<input type="text" placeholder="请填写物料品牌" class="layui-input" th:value="${record.getBrand()}"
name="brand"/>
</div>
</div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料类型</label> <label class="layui-form-label">物料类型</label>
@ -89,6 +96,22 @@
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">生产日期:</label>
<div class="layui-input-inline">
<input type="text" name="producedDate" id="producedDate" placeholder="请选择生产日期" th:value="${record.getShowProducedDate()}"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">保质期:</label>
<div class="layui-input-inline">
<input type="text" name="shelfLife" id="shelfLife" placeholder="请选择保质日期" th:value="${record.getShowShelfLife()}"
autocomplete="off" class="layui-input">
</div>
</div>
<!-- 二维码生成--> <!-- 二维码生成-->
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">二维码</label> <label class="layui-form-label">二维码</label>
@ -103,6 +126,13 @@
<input class="layui-btn layui-btn-warm" type="button" onclick="checkBarCode()" value="查看"> <input class="layui-btn layui-btn-warm" type="button" onclick="checkBarCode()" value="查看">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-inline">
<input type="text" placeholder="请填写备注" class="layui-input" th:value="${record.getRemark()}"
name="remark" />
</div>
</div>
<div class="layui-form-item" style="display: none"> <div class="layui-form-item" style="display: none">
<label class="layui-form-label">状态</label> <label class="layui-form-label">状态</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -129,8 +159,8 @@
} }
var barCode = []; var barCode = [];
var flag = false; var flag = false;
layui.use('form', function () { layui.use(['form','laydate'], function () {
var form = layui.form, $ = layui.$; var form = layui.form, laydate = layui.laydate,$ = layui.$;
$('#openSonByMateralType').on('click', function () { $('#openSonByMateralType').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
@ -178,7 +208,17 @@
}); });
return false; return false;
}); });
laydate.render({
elem: '#producedDate'
,value: $("#producedDate").val()
,format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#shelfLife'
,value: $("#shelfLife").val()
,format: 'yyyy-MM-dd'
});
checkBarCode = function () { checkBarCode = function () {
var mid = $("#mid").val(); var mid = $("#mid").val();

138
src/main/resources/templates/pages/materialBarCode/materialBarCode_out.html

@ -34,14 +34,16 @@
<script> <script>
var barCode = []; var barCode = [];
function notice(){
}; function notice() {
function addBarCodeByMid(){
}; }
function addBarCodeByMid() {
}
layui.use(['form', 'table','upload'], function () { layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
@ -64,34 +66,36 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
mid:mid mid: mid
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id',width:50,title:'id'}, {field: 'id', width: 50, title: 'id'},
{field: 'mcode',width: 150,title: '存货编码',sort: true}, {field: 'mcode', width: 150, title: '存货编码', sort: true},
{field: 'bmcode',width: 150,title: '条形码',sort: true}, {field: 'bmcode', width: 150, title: '条形码', sort: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'texture', width: 100, title: '材质'},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'unit', width: 150, title: '计量单位'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
@ -103,59 +107,58 @@
}); });
// 用于添加关联 // 用于添加关联
addBarCodeByMid = function(){ addBarCodeByMid = function () {
var mid = $("#mid").val(); var mid = $("#mid").val();
var req = {}; var req = {};
req.mid = mid; req.mid = mid;
req.barCodeList = barCode ; req.barCodeList = barCode;
$.ajax({ $.ajax({
url:"/material/addBarCodeByMaterial", url: "/material/addBarCodeByMaterial",
type:"post", type: "post",
data:JSON.stringify(req), data: JSON.stringify(req),
dataType:"json", dataType: "json",
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (d) { success: function (d) {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/material/findMaterialBarCode', url: '/material/findMaterialBarCode',
page: { page: {
curr: 1 curr: 1
}, },
where:{"mid":mid} where: {"mid": mid}
}); });
} }
}) })
}; };
notice = function(obj){ notice = function (obj) {
//用于弹出扫码的结果 //用于弹出扫码的结果
var context = "<div style='padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;'><ul>"; var context = "<div style='padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;'><ul>";
for (let i = 0; i < obj.length; i++) { for (let i = 0; i < obj.length; i++) {
context += "<li>"+obj[i]+"</li>"; context += "<li>" + obj[i] + "</li>";
} }
context += "</ul></div>"; context += "</ul></div>";
layer.open({ layer.open({
type: 1 type: 1
,title: false //不显示标题栏 , title: false //不显示标题栏
,closeBtn: false , closeBtn: false
,area: '300px;' , area: '300px;'
,shade: 0.8 , shade: 0.8
,id: 'LAY_layuipro' //设定一个id,防止重复弹出 , id: 'LAY_layuipro' //设定一个id,防止重复弹出
,btn: ['确定', '取消'] , btn: ['确定', '取消']
,btnAlign: 'c' , btnAlign: 'c'
,moveType: 1 //拖拽模式,0或者1 , moveType: 1 //拖拽模式,0或者1
,content: context , content: context
,success: function(layero){ , success: function (layero) {
var btn = layero.find('.layui-layer-btn'); var btn = layero.find('.layui-layer-btn');
btn.find('.layui-layer-btn0').attr({ btn.find('.layui-layer-btn0').attr({
onclick:"addBarCodeByMid()" onclick: "addBarCodeByMid()"
}); });
} }
}); });
}; };
/** /**
* toolbar监听事件 * toolbar监听事件
*/ */
@ -183,23 +186,22 @@
page: { page: {
curr: 1 curr: 1
}, },
where:{"mid":mid} where: {"mid": mid}
}); });
} }
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') {
else if(obj.event === 'delete'){
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0){ if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/delBarCodeByMaterial', url: '/material/delBarCodeByMaterial',
@ -210,12 +212,12 @@
beforeSend: function () { beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -226,42 +228,42 @@
page: { page: {
curr: 1 curr: 1
}, },
where:{"mid":mid} where: {"mid": mid}
}); });
return false; return false;
} }
} }
}) })
}) })
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} }
}) });
table.on('tool(currentTableFilter)', function (obj) { table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data; let data = obj.data;
if (obj.event === 'delete') { if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/delBarCodeByMaterial', url: '/material/delBarCodeByMaterial',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

93
src/main/resources/templates/pages/materialtype/materialTypeByParentId.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">类型名称</label> <label class="layui-form-label">类型名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="tname" > <select name="tname">
<option value="" selected>请选择类型</option> <option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getTname()}" th:text="${materialType?.getTname()}" >顶级类型</option> <option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select> </select>
</div> </div>
</div> </div>
@ -72,7 +75,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId='+parentId, url: '/materialType/allMaterialTypeByParent?parentId=' + parentId,
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -86,33 +89,35 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: '类型编号', sort: true}, {field: 'id', width: 100, title: '类型编号', sort: true},
{field: 'tname', width: 120, title: '类型名称', sort: true}, {field: 'tname', width: 120, title: '类型名称', sort: true},
{field: 'introduce',width: 200,title: '类型介绍',sort: true}, {field: 'introduce', width: 200, title: '类型介绍', sort: true},
{ {
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
@ -121,16 +126,16 @@
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.tname!==''){ if (data.tname !== '') {
req.tname = data.tname; req.tname = data.tname;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
@ -162,26 +167,26 @@
} else if (obj.event === 'delete') { // 监听删除操作 } else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
$.ajax({ $.ajax({
url: '/materialType/materialType_del', url: '/materialType/materialType_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -216,31 +221,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/materialType_detail?id='+data.id, content: '/materialType_detail?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/materialType/materialType_del', url: '/materialType/materialType_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

215
src/main/resources/templates/pages/materialtype/materialType_view.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">类型名称</label> <label class="layui-form-label">类型名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="tname" > <select name="tname">
<option value="" selected>请选择类型</option> <option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getTname()}" th:text="${materialType?.getTname()}" >顶级类型</option> <option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select> </select>
</div> </div>
</div> </div>
@ -48,16 +51,19 @@
</fieldset> </fieldset>
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div> </div>
</script> </script>
@ -67,14 +73,15 @@
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子类型</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子类型</a>
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
</div> </div>
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','upload'], function () { layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
upload = layui.upload, upload = layui.upload,
@ -96,49 +103,51 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0", type: "0",
parentId:parentId parentId: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'oldId', width: 100, title: '类型编号', sort: true}, {field: 'oldId', width: 100, title: '类型编号', sort: true},
{field: 'tname', width: 120, title: '类型名称'}, {field: 'tname', width: 120, title: '类型名称'},
{field: 'introduce',width: 200,title: '类型介绍'}, {field: 'introduce', width: 200, title: '类型介绍'},
{field:'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='oldId']").css('display','none'); $("[data-field='oldId']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.tname!==''){ if (data.tname !== '') {
req.tname = data.tname; req.tname = data.tname;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
@ -167,16 +176,15 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].oldId; req.ids[i] = data[i].oldId;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/materialType/materialType_del', url: '/materialType/materialType_del',
@ -191,7 +199,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -209,8 +217,7 @@
} }
}) })
}) })
} } else {
else{
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
@ -220,24 +227,24 @@
//用于导入数据 //用于导入数据
var upLoader = upload.render({ var upLoader = upload.render({
elem:"#u_fileUpload", // 绑定元素 elem: "#u_fileUpload", // 绑定元素
url:'/excel/importExcelByMT', // 上传接口 url: '/excel/importExcelByMT', // 上传接口
accept:'file', // 允许上传的格式, accept: 'file', // 允许上传的格式,
exts:'xls|xlsx|csv', exts: 'xls|xlsx|csv',
done:function(res){ done: function (res) {
//如果上传成功 //如果上传成功
if(res.code == 200){ if (res.code == 200) {
var re = ""; var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show re += show
} }
for (let i = 0; i < res.data.dataList.length; i++) { for (let i = 0; i < res.data.dataList.length; i++) {
var tname = res.data.dataList[i]["tname"]; var tname = res.data.dataList[i]["tname"];
var id = res.data.dataList[i]["oldId"]; var id = res.data.dataList[i]["oldId"];
var parentId = res.data.dataList[i]["parentId"] == null?"":res.data.dataList[i]["parentId"]; var parentId = res.data.dataList[i]["parentId"] == null ? "" : res.data.dataList[i]["parentId"];
var introduce = res.data.dataList[i]["introduce"] == null?"":res.data.dataList[i]["introduce"]; var introduce = res.data.dataList[i]["introduce"] == null ? "" : res.data.dataList[i]["introduce"];
var show = "<p style='color: #00FF00'>"+tname + " "+ id+" " +parentId+"成功" +"</p>" var show = "<p style='color: #00FF00'>" + tname + " " + id + " " + parentId + "成功" + "</p>";
re += show re += show
} }
@ -247,19 +254,19 @@
area: ['500px', '500px'], //宽高 area: ['500px', '500px'], //宽高
content: re content: re
}) })
}else{ } else {
layer.msg(res.msg) layer.msg(res.msg)
} }
}, },
error:function (){ error: function () {
var demoText = $('#demoText'); var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){ demoText.find('.demo-reload').on('click', function () {
upLoader.upload() upLoader.upload()
}) })
} }
}) });
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
@ -279,15 +286,15 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/materialType_detail?id='+data.oldId, content: '/materialType_detail?id=' + data.oldId,
end:function () { end: function () {
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where:req where: req
}, 'data'); }, 'data');
} }
}); });
@ -295,14 +302,13 @@
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') {
var req = {}; var req = {};
req.id = data.oldId; req.id = data.oldId;
$.ajax({ $.ajax({
url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品 url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品
type: "post", type: "post",
data:JSON.stringify(req), data: JSON.stringify(req),
dataType: "json", dataType: "json",
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (data) { success: function (data) {
@ -335,7 +341,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
@ -349,8 +355,7 @@
} }
} }
}) })
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子类型', title: '子类型',
type: 2, type: 2,
@ -358,57 +363,55 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findMaterialTypeByParentId?parentId='+data.oldId content: '/findMaterialTypeByParentId?parentId=' + data.oldId
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'realDelete') { // 彻底删除
else if (obj.event == 'realDelete') { // 彻底删除
var req = {}; var req = {};
req.id = data.oldId; req.id = data.oldId;
$.ajax({ $.ajax({
url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品 url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品
type: "post", type: "post",
dataType: "json", dataType: "json",
data:JSON.stringify(req), data: JSON.stringify(req),
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (data) { success: function (data) {
if(data.data){ if (data.data) {
layer.msg("该类别下尚有记录无法删除", { layer.msg("该类别下尚有记录无法删除", {
icon: 7, icon: 7,
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} } else {
else{
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/materialType/realDeleteMaterialType', url: '/materialType/realDeleteMaterialType',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -417,14 +420,14 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} }
@ -434,26 +437,26 @@
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map; var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1; req["state"] = 1;
} }
req["id"] = this.value; req["id"] = this.value;
var hasMaterial = false; var hasMaterial = false;
if(req["state"] == undefined){ //如果禁用 if (req["state"] == undefined) { //如果禁用
$.ajax({ $.ajax({
url:"/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品 url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品
type:"post", type: "post",
dataType:"json", dataType: "json",
data:JSON.stringify(req), data: JSON.stringify(req),
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (data) { success: function (data) {
hasMaterial = data.data; hasMaterial = data.data;
if(hasMaterial){ // 如果有物品 if (hasMaterial) { // 如果有物品
layer.confirm('该种类下还有物品,确定禁用?', { layer.confirm('该种类下还有物品,确定禁用?', {
btn: ['禁用','取消'] //按钮 btn: ['禁用', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: "/materialType/EditMaterialTypeState", // 禁用 url: "/materialType/EditMaterialTypeState", // 禁用
type: 'post', type: 'post',
@ -467,34 +470,33 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} }
} }
}) })
},function (){ }, function () {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} } else { // 如果没有物品
else{ // 如果没有物品
$.ajax({ $.ajax({
url: "/materialType/EditMaterialTypeState", url: "/materialType/EditMaterialTypeState",
type: 'post', type: 'post',
@ -508,19 +510,19 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行表格重加载 // 执行表格重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
@ -528,8 +530,9 @@
} }
}) })
} }
}}) }
}else{ // 如果启用 })
} else { // 如果启用
$.ajax({ $.ajax({
url: "/materialType/EditMaterialTypeState", url: "/materialType/EditMaterialTypeState",
type: 'post', type: 'post',
@ -543,19 +546,19 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行表格重加载 // 执行表格重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} }

236
src/main/resources/templates/pages/other/welcome_mobile.html

@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>首页二</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<style>
.layui-card {border:1px solid #f2f2f2;border-radius:5px;}
.icon {margin-right:10px;color:#1aa094;}
.icon-cray {color:#ffb800!important;}
.icon-blue {color:#1e9fff!important;}
.icon-tip {color:#ff5722!important;}
.layuimini-qiuck-module {text-align:center;margin-top: 10px}
.layuimini-qiuck-module a i {display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s;}
.layuimini-qiuck-module a cite {position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px;}
.welcome-module {width:100%;height:210px;}
.panel {background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}
.panel-body {padding:10px}
.panel-title {margin-top:0;margin-bottom:0;font-size:12px;color:inherit}
.label {display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;margin-top: .3em;}
.layui-red {color:red}
.main_btn > p {height:40px;}
.layui-bg-number {background-color:#F8F8F8;}
.layuimini-notice:hover {background:#f6f6f6;}
.layuimini-notice {padding:7px 16px;clear:both;font-size:12px !important;cursor:pointer;position:relative;transition:background 0.2s ease-in-out;}
.layuimini-notice-title,.layuimini-notice-label {
padding-right: 70px !important;text-overflow:ellipsis!important;overflow:hidden!important;white-space:nowrap!important;}
.layuimini-notice-title {line-height:28px;font-size:14px;}
.layuimini-notice-extra {position:absolute;top:50%;margin-top:-8px;right:16px;display:inline-block;height:16px;color:#999;}
</style>
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-row layui-col-space15">
<div class="layui-col-md8">
<div class="layui-row layui-col-space15">
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-signal icon"></i>数据统计</div>
<div class="layui-card-body">
<div class="welcome-module">
<div class="layui-row layui-col-space10">
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-blue">实时</span>
<h5>仓库数量</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" th:text="${depositoryCount}" >4</h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-cyan">实时</span>
<h5>库存金额统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" th:text="${allPrice}" >12032</h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-orange">实时</span>
<h5>物品数</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" th:text="${allMaterial}"></h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-green">实时</span>
<h5>仓库流水</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" th:text="${warehouseRecord}"></h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-credit-card icon icon-blue"></i>快捷入口</div>
<div class="layui-card-body">
<div class="welcome-module">
<div class="layui-row layui-col-space10 layuimini-qiuck">
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/application_in" data-title="入库申请" data-icon="fa fa-window-maximize">
<i class="layui-icon layui-icon-file-b"></i>
<cite>入库申请</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/application_out" data-title="出库申请" data-icon="fa fa-gears">
<i class="fa fa-file-text"></i>
<cite>出库申请</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/application_transfer" data-title="转移申请" data-icon="fa fa-file-text">
<i class="fa fa-exchange"></i>
<cite>转移申请</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/table_in" data-title="入库查询" data-icon="fa fa-dot-circle-o">
<i class="fa fa-cubes"></i>
<cite>入库查询</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/table_out" data-title="出库查询" data-icon="fa fa-calendar">
<i class="fa fa-eye"></i>
<cite>出库查询</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/table_stock" data-title="库存查询" data-icon="fa fa-hourglass-end">
<i class="fa fa-binoculars"></i>
<cite>库存查询</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/my_task" data-title="我的任务" data-icon="fa fa-snowflake-o">
<i class="fa fa-tasks"></i>
<cite>我的任务</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" layuimini-content-href="/my_apply" data-title="我的申请" data-icon="fa fa-search">
<i class="fa fa-paper-plane"></i>
<cite>我的申请</cite>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-bullhorn icon icon-tip"></i>系统公告</div>
<div class="layui-card-body layui-text">
<div class="layuimini-notice" th:each="notice,iterStat:${notices}">
<div class="layuimini-notice-title" th:text="${notice.getTitle()}">修改选项卡样式</div>
<div class="layuimini-notice-extra" th:text="${notice.getTime()}">2019-07-11 23:06</div>
<div class="layuimini-notice-content layui-hide" th:text="${notice.getContent()}">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
layui.use(['layer', 'miniTab','echarts'], function () {
var $ = layui.jquery,
layer = layui.layer,
miniTab = layui.miniTab,
echarts = layui.echarts;
miniTab.listen();
/**
* 查看公告信息
**/
$('body').on('click', '.layuimini-notice', function () {
var title = $(this).children('.layuimini-notice-title').text(),
noticeTime = $(this).children('.layuimini-notice-extra').text(),
content = $(this).children('.layuimini-notice-content').html();
var html = '<div style="padding:15px 20px; text-align:justify; line-height: 22px;border-bottom:1px solid #e2e2e2;background-color: #2f4056;color: #ffffff">\n' +
'<div style="text-align: center;margin-bottom: 20px;font-weight: bold;border-bottom:1px solid #718fb5;padding-bottom: 5px"><h4 class="text-danger">' + title + '</h4></div>\n' +
'<div style="font-size: 12px">' + content + '</div>\n' +
'</div>\n';
parent.layer.open({
type: 1,
title: '系统公告'+'<span style="float: right;right: 1px;font-size: 12px;color: #b1b3b9;margin-top: 1px">'+noticeTime+'</span>',
area: '300px;',
shade: 0.8,
id: 'layuimini-notice',
btn: ['查看', '取消'],
btnAlign: 'c',
moveType: 1,
content:html,
success: function (layero) {
var btn = layero.find('.layui-layer-btn');
// btn.find('.layui-layer-btn0').attr({
// href: 'https://gitee.com/zhongshaofa/layuimini',
// target: '_blank'
// });
}
});
});
});
</script>
</body>
</html>

74
src/main/resources/templates/pages/post/post-out.html

@ -22,9 +22,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">岗位名称</label> <label class="layui-form-label">岗位名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="name" > <select name="name">
<option value="" selected>请选择岗位</option> <option value="" selected>请选择岗位</option>
<option th:each="post,iterStar:${postList}" th:value="${post?.getName()}" th:text="${post?.getName()}" >顶级岗位</option> <option th:each="post,iterStar:${postList}" th:value="${post?.getName()}"
th:text="${post?.getName()}">顶级岗位
</option>
</select> </select>
</div> </div>
</div> </div>
@ -49,8 +51,6 @@
</fieldset> </fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
@ -72,7 +72,7 @@
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allPostByOrganization', url: '/company/allPostByOrganization',
method:"post", method: "post",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -86,62 +86,64 @@
limitName: 'pagesize', //每页数据量的参数名,默认:limit limitName: 'pagesize', //每页数据量的参数名,默认:limit
}, },
where: { where: {
organization:parentId organization: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'name', width: 250, title: '名称'},
{field: 'dutiesname',width: 200,title: '名称'}, {field: 'dutiesname', width: 200, title: '名称'},
{field: 'aoname',width: 200,title: '归属行政组织名称'}, {field: 'aoname', width: 200, title: '归属行政组织名称'},
{field: 'aonumber',width: 200,title: '归属行政组织编号'}, {field: 'aonumber', width: 200, title: '归属行政组织编号'},
{field: 'jobname',width: 200,title: '职务类别'}, {field: 'jobname', width: 200, title: '职务类别'},
{field: 'rolename', width: 200, title: '权限名称'}, {field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'}, {field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiorname',width: 200,title: '上级名称'}, {field: 'superiorname', width: 200, title: '上级名称'},
{field: 'superiornumber',width: 200,title: '上级编号'}, {field: 'superiornumber', width: 200, title: '上级编号'},
{field: 'departmentname',width: 200,title: '部门'}, {field: 'departmentname', width: 200, title: '部门'},
{ {
field: 'state', title: '状态', minWidth: 80, templet: function (d) { field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display','none'); $("[data-field='rolename']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.name!==''){ if (data.name !== '') {
req.name = data.name; req.name = data.name;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.superior = parentId req.superior = parentId;
req.organization = organization req.organization = organization;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
@ -170,14 +172,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/post_detail?id='+data.id, content: '/post_detail?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子岗位', title: '子岗位',
type: 2, type: 2,
@ -185,14 +186,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findPostByParentId?parentId='+data.id content: '/findPostByParentId?parentId=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'add_role') {
else if (obj.event == 'add_role'){
/*var index = layer.open({ /*var index = layer.open({
title: '设置权限', title: '设置权限',
@ -210,7 +210,7 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'], area: ['893px', '600px'],
content: '/postRoleView?id='+data.id content: '/postRoleView?id=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);

96
src/main/resources/templates/pages/user/table-user.html

@ -36,7 +36,10 @@
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="company" lay-filter="company"> <select name="company" lay-filter="company">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="administrationP,iterStar:${administrationPList}" th:value="${administrationP?.getId()}" th:text="${administrationP?.getName()}" >恒信高科能源有限公司</option> <option th:each="administrationP,iterStar:${administrationPList}"
th:value="${administrationP?.getId()}"
th:text="${administrationP?.getName()}">恒信高科能源有限公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -57,7 +60,9 @@
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button> <button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div> </div>
</div> </div>
</form> </form>
@ -84,7 +89,7 @@
table.render({ table.render({
elem: '#currentTableId', elem: '#currentTableId',
url: '/sys/findUsers', url: '/sys/findUsers',
method:"POST", method: "POST",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -99,34 +104,37 @@
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true}, {field: 'id', width: 80, title: 'ID', sort: true},
{field: 'number', width: 100, title: '工号', sort: true}, {field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'}, {field: 'name', width: 100, title: '姓名'},
{field: 'gender', width: 80, title: '性别',templet: function (d) { {
if (d.gender == 1){ field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender == 1) {
return "男性"; return "男性";
}else if(d.gender == 2){ } else if (d.gender == 2) {
return "女性"; return "女性";
}else if(d.gender == 3){ } else if (d.gender == 3) {
return "中性"; return "中性";
}else{ } else {
return ""; return "";
} }
}}, }
},
{ {
field: 'state', title: '状态', minWidth: 80, templet: function (d) { field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
}else{ } else {
return ""; return "";
} }
} }
@ -158,34 +166,35 @@
{field: 'workpostname', width: 200, title: '工段'}, {field: 'workpostname', width: 200, title: '工段'},
{field: 'positionname', width: 200, title: '职位'}, {field: 'positionname', width: 200, title: '职位'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50, 100], limits: [10, 15, 20, 25, 50, 100],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display','none'); $("[data-field='rolename']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
data=data.field; data = data.field;
let req={}; let req = {};
if (data.name!==''){ if (data.name !== '') {
req.name=data.name; req.name = data.name;
} }
if (data.company!==''){ if (data.company !== '') {
req.company=data.company; req.company = data.company;
} }
if (data.adminorg!==''){ if (data.adminorg !== '') {
req.adminorg=data.adminorg; req.adminorg = data.adminorg;
} }
if (data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
if (data.number != ''){ if (data.number != '') {
req.number = data.number; req.number = data.number;
} }
//执行搜索重载 //执行搜索重载
@ -199,14 +208,14 @@
return false; return false;
}); });
form.on('select(company)',function (data){ form.on('select(company)', function (data) {
$.ajax({ $.ajax({
url:"/repository/findPostByCompany?company=0"+data.value, url: "/repository/findPostByCompany?company=0" + data.value,
type:'get', type: 'get',
dataType:'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function(d){ success: function (d) {
if(data.value != "") { if (data.value != "") {
$('#adminorg').empty(); $('#adminorg').empty();
$('#adminorg').append(new Option("请选择部门", "")); $('#adminorg').append(new Option("请选择部门", ""));
@ -214,13 +223,13 @@
$('#adminorg').append(new Option(item.name, item.id));//往下拉菜单里添加元素 $('#adminorg').append(new Option(item.name, item.id));//往下拉菜单里添加元素
}); });
form.render(); form.render();
}else{ } else {
$('#adminorg').empty(); $('#adminorg').empty();
form.render(); form.render();
} }
} }
}) })
}) });
//监听表格复选框选择 //监听表格复选框选择
@ -235,17 +244,16 @@
title: '查看用户', title: '查看用户',
type: 2, type: 2,
shade: 0.2, shade: 0.2,
maxmin:true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/user_detail?id='+data.number, content: '/user_detail?id=' + data.number,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'add_role') {
else if(obj.event == 'add_role'){
layer.open({ layer.open({
type: 2, type: 2,
title: '权限信息', title: '权限信息',
@ -253,7 +261,7 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['70%', '70%'], area: ['70%', '70%'],
content: '/userRoleView?id='+data.id content: '/userRoleView?id=' + data.id
}); });
} }
}); });

108
src/main/resources/templates/pages/warehouse/warehouseByParentId.html

@ -25,12 +25,12 @@
<input type="text" name="place_x" autocomplete="off" class="layui-input"> <input type="text" name="place_x" autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
<!-- <div class="layui-inline">--> <!-- <div class="layui-inline">-->
<!-- <label class="layui-form-label">库位列</label>--> <!-- <label class="layui-form-label">库位列</label>-->
<!-- <div class="layui-input-inline">--> <!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">--> <!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">库位层</label> <label class="layui-form-label">库位层</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
@ -67,7 +67,8 @@
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 创建库位</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 创建库位</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="addList"> 批量创建</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="addList"> 批量创建</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位
</button>
</div> </div>
</script> </script>
@ -81,7 +82,8 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
</div> </div>
@ -95,7 +97,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/place/findPlace?did='+parentId, url: '/place/findPlace?did=' + parentId,
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -109,46 +111,48 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true}, {field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname',width: 200,title: '物料名称'}, {field: 'mname', width: 200, title: '物料名称'},
{field: 'depositoryName',width: 200,title: '仓库名称'}, {field: 'depositoryName', width: 200, title: '仓库名称'},
{field: 'depositoryCode',width: 200,title: '仓库编码'}, {field: 'depositoryCode', width: 200, title: '仓库编码'},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done: function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.place_x!==''){ if (data.place_x !== '') {
req.place_x=data.place_x; req.place_x = data.place_x;
} }
if(data.place_z!== ''){ if (data.place_z !== '') {
req.place_x = data.place_z; req.place_x = data.place_z;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.did = parentId; req.did = parentId;
@ -175,13 +179,12 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/insertPlace?depositoryId='+parentId, content: '/insertPlace?depositoryId=' + parentId,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req = {}; var req = {};
@ -203,7 +206,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -220,12 +223,11 @@
} }
} }
}) })
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} } else if (obj.event === 'addList') {
else if(obj.event === 'addList'){
var index = layer.open({ var index = layer.open({
title: '批量增加', title: '批量增加',
type: 2, type: 2,
@ -233,7 +235,7 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/insertListPlace?depositoryId='+parentId, content: '/insertListPlace?depositoryId=' + parentId,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
@ -257,8 +259,8 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/placeView?id='+data.id, content: '/placeView?id=' + data.id,
end:function () { end: function () {
req = {}; req = {};
req.did = parentId; req.did = parentId;
//执行搜索重载 //执行搜索重载
@ -277,24 +279,24 @@
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/place/deletePlace', url: '/place/deletePlace',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -309,9 +311,9 @@
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map; var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value; req["id"] = this.value;
@ -328,13 +330,13 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
window.location='/warehouseByParentId?parentId='+parentId; window.location = '/warehouseByParentId?parentId=' + parentId;
}) })
} }
} }

2
src/test/java/com/dreamchaser/depository_manage/Test.java

@ -99,7 +99,7 @@ public class Test {
@org.junit.Test @org.junit.Test
public void test1() throws AesException, IOException, ParserConfigurationException, SAXException { public void test1() throws AesException, IOException, ParserConfigurationException, SAXException {
List<Object> objectList = InitTree_Test(); // List<Object> objectList = InitTree_Test();
} }

2
target/classes/application-test.yml

@ -19,7 +19,7 @@ spring:
datasource: datasource:
username: root username: root
password: root password: root
url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5 initialSize: 5

120
target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

@ -20,6 +20,11 @@
<result column="unit" property="unit" jdbcType="VARCHAR"/> <result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" jdbcType="VARCHAR"/> <result column="texture" property="texture" jdbcType="VARCHAR"/>
<result column="number_of_temporary" property="numberOfTemporary" jdbcType="INTEGER"/> <result column="number_of_temporary" property="numberOfTemporary" jdbcType="INTEGER"/>
<result column="producedDate" property="producedDate" jdbcType="INTEGER"/>
<result column="shelfLife" property="shelfLife" jdbcType="INTEGER"/>
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<!-- 字段映射--> <!-- 字段映射-->
@ -37,6 +42,11 @@
<result column="unit" property="unit" jdbcType="VARCHAR"/> <result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" jdbcType="VARCHAR"/> <result column="texture" property="texture" jdbcType="VARCHAR"/>
<result column="depositoryCode" property="depositoryCode" jdbcType="VARCHAR"/> <result column="depositoryCode" property="depositoryCode" jdbcType="VARCHAR"/>
<result column="producedDate" property="producedDate" jdbcType="INTEGER"/>
<result column="shelfLife" property="shelfLife" jdbcType="INTEGER"/>
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
<association property="materialType" column="typeId" javaType="com.dreamchaser.depository_manage.entity.MaterialType"> <association property="materialType" column="typeId" javaType="com.dreamchaser.depository_manage.entity.MaterialType">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" /> <result column="tname" property="tname" jdbcType="VARCHAR" />
@ -72,17 +82,17 @@
<!-- 表查询字段 --> <!-- 表查询字段 -->
<sql id="allColumns"> <sql id="allColumns">
m.id, m.depository_id, m.mname, m.quantity, m.price, m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,m.depositoryCode,m.number_of_temporary m.id, m.depository_id, m.mname, m.quantity, m.price, m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,m.depositoryCode,m.number_of_temporary,m.shelfLife,m.producedDate,m.productionPlace,m.brand,m.remark
</sql> </sql>
<!-- 表查询字段,包括物料类型 --> <!-- 表查询字段,包括物料类型 -->
<sql id="allColumnsAndTypeName"> <sql id="allColumnsAndTypeName">
id,depository_id,mname,quantity,price,type_id,state,code ,version ,amounts ,unit ,texture,tname,depositoryCode,dname id,depository_id,mname,quantity,price,type_id,state,code ,version ,amounts ,unit ,texture,tname,depositoryCode,dname,producedDate,shelfLife,productionPlace,brand,remark
</sql> </sql>
<!-- 表查询字段,包括物料类型 用于视图--> <!-- 表查询字段,包括物料类型 用于视图-->
<sql id="allColumnsAndTypeNameOnView"> <sql id="allColumnsAndTypeNameOnView">
id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode,producedDate,shelfLife,productionPlace,brand,remark
</sql> </sql>
@ -122,6 +132,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and m.code = #{code} and m.code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand = #{brand}
</if>
<if test="remark != '' and remark != null">
and remark = #{remark}
</if>
and state != 3 and m.depository_id is null and state != 3 and m.depository_id is null
</select> </select>
@ -156,6 +181,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and code = #{code} and code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
and depository_id is null and depository_id is null
<if test="begin != null and size != null"> <if test="begin != null and size != null">
LIMIT #{begin},#{size} LIMIT #{begin},#{size}
@ -195,6 +235,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and code = #{code} and code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
and depository_id is not null and depository_id is not null
<if test="begin != null and size != null"> <if test="begin != null and size != null">
LIMIT #{begin},#{size} LIMIT #{begin},#{size}
@ -230,6 +285,21 @@
<if test="code != null and code != '' "> <if test="code != null and code != '' ">
and code = #{code} and code = #{code}
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
and depository_id is not null and depository_id is not null
</select> </select>
@ -300,6 +370,21 @@
<if test="tname != null and tname != ''"> <if test="tname != null and tname != ''">
AND tname LIKE CONCAT('%', #{tname}, '%') AND tname LIKE CONCAT('%', #{tname}, '%')
</if> </if>
<if test="shelfLife != null">
and #{shelfLife} >= shelfLife
</if>
<if test="producedDate != null">
and producedDate >= #{producedDate}
</if>
<if test="productionPlace != null and productionPlace !=''">
and productionPlace = #{productionPlace}
</if>
<if test="brand != '' and brand != null">
and brand LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
group by bmcode group by bmcode
</select> </select>
@ -371,7 +456,7 @@
<!-- 插入数据 --> <!-- 插入数据 -->
<insert id="insertMaterial" useGeneratedKeys="true" keyProperty="id"> <insert id="insertMaterial" useGeneratedKeys="true" keyProperty="id">
INSERT INTO material ( INSERT INTO material (
id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode,producedDate,shelfLife,brand,productionPlace,remark
) VALUES ( ) VALUES (
#{id}, #{id},
<if test="depositoryId != null"> <if test="depositoryId != null">
@ -405,11 +490,16 @@
0, 0,
</if> </if>
<if test="depositoryCode != null"> <if test="depositoryCode != null">
#{depositoryCode} #{depositoryCode},
</if> </if>
<if test="depositoryCode == null"> <if test="depositoryCode == null">
'' '',
</if> </if>
#{producedDate},
#{shelfLife},
#{brand},
#{productionPlace},
#{remark}
) )
</insert> </insert>
@ -516,7 +606,23 @@
number_of_temporary = #{numberOfTemporary}, number_of_temporary = #{numberOfTemporary},
</if> </if>
<if test="texture != null and texture != ''"> <if test="texture != null and texture != ''">
texture = #{texture} texture = #{texture},
</if>
<if test="shelfLife != null">
shelfLife = #{shelfLife},
</if>
<if test="producedDate != null">
producedDate = #{producedDate},
</if>
<if test="productionPlace != null and productionPlace !=''">
productionPlace = #{productionPlace},
</if>
<if test="brand != '' and brand != null">
brand = #{brand},
</if>
<if test="remark != '' and remark != null">
remark = #{remark}
</if> </if>
</set> </set>
WHERE id = #{id} WHERE id = #{id}

62
target/classes/static/js/lay-module/layuimini/miniTab.js

@ -194,6 +194,24 @@ layui.define(["element", "layer", "jquery"], function (exports) {
return menu; return menu;
}, },
/**
* 判断是否为手机
* @returns {boolean}
*/
checkMobile:function () {
var ua = navigator.userAgent.toLocaleLowerCase();
var pf = navigator.platform.toLocaleLowerCase();
var isAndroid = (/android/i).test(ua) || ((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf))
|| (/ucweb.*linux/i.test(ua));
var isIOS = (/iPhone|iPod|iPad/i).test(ua) && !isAndroid;
var isWinPhone = (/Windows Phone|ZuneWP7/i).test(ua);
var clientWidth = document.documentElement.clientWidth;
if (!isAndroid && !isIOS && !isWinPhone && clientWidth > 1024) {
return false;
} else {
return true;
}
},
/** /**
* 监听 * 监听
* @param options * @param options
@ -276,7 +294,6 @@ layui.define(["element", "layer", "jquery"], function (exports) {
var loading = layer.load(0, {shade: false, time: 2 * 1000}); var loading = layer.load(0, {shade: false, time: 2 * 1000});
var $parent = $(this).parent(); var $parent = $(this).parent();
console.log($parent);
var tabId = $parent.attr('lay-id'); var tabId = $parent.attr('lay-id');
if (tabId !== undefined || tabId !== null) { if (tabId !== undefined || tabId !== null) {
miniTab.delete(tabId); miniTab.delete(tabId);
@ -504,6 +521,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
}); });
}, },
/** /**
* 多模块切换 * 多模块切换
* @param tabId * @param tabId
@ -511,9 +529,44 @@ layui.define(["element", "layer", "jquery"], function (exports) {
listenSwitchMultiModule: function (tabId) { listenSwitchMultiModule: function (tabId) {
$("[layuimini-href]").each(function () { $("[layuimini-href]").each(function () {
if ($(this).attr("layuimini-href") === tabId) { if ($(this).attr("layuimini-href") === tabId) {
var addMenuClass ;
// 如果是移动端
if(miniTab.checkMobile()){
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
// 自动展开菜单栏 } else {
var addMenuClass = function ($element, type) { addMenuClass($element.parent().parent(), 2);
}
} else {
$element.addClass('layui-nav-itemed');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
} else {
addMenuClass($element.parent().parent(), 2);
}
}
};
}else{
addMenuClass = function ($element, type) {
if (type === 1) { if (type === 1) {
$element.addClass('layui-this'); $element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
@ -526,6 +579,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
addMenuClass($element.parent().parent(), 2); addMenuClass($element.parent().parent(), 2);
} }
} else { } else {
$element.addClass('layui-nav-itemed'); $element.addClass('layui-nav-itemed');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) {
var moduleId = $element.parent().attr('id'); var moduleId = $element.parent().attr('id');
@ -538,6 +592,8 @@ layui.define(["element", "layer", "jquery"], function (exports) {
} }
} }
}; };
}
// 自动展开菜单栏
addMenuClass($(this).parent(), 1); addMenuClass($(this).parent(), 1);
return false; return false;
} }

5
target/classes/static/js/lay-module/layuimini/miniTheme.js

@ -429,11 +429,6 @@ layui.define(["jquery", "layer"], function (exports) {
'<div class="color-content">\n' + '<div class="color-content">\n' +
'<ul>\n' + bgColorHtml + '</ul>\n' + '<ul>\n' + bgColorHtml + '</ul>\n' +
'</div>\n' + '</div>\n' +
'<div class="more-menu-list">\n' +
'<a class="more-menu-item" href="http://layuimini.99php.cn/docs/index.html" target="_blank"><i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> 开发文档</a>\n' +
'<a class="more-menu-item" href="https://github.com/zhongshaofa/layuimini" target="_blank"><i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> 开源地址</a>\n' +
'<a class="more-menu-item" href="http://layuimini.99php.cn" target="_blank"><i class="layui-icon layui-icon-theme"></i> 官方网站</a>\n' +
'</div>' +
'</div>'; '</div>';
layer.open({ layer.open({
type: 1, type: 1,

166
target/classes/templates/pages/application/application-out.html

@ -70,9 +70,14 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料编码:</label> <label class="layui-form-label">物料编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value="" <input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)" onblur="selectCode(this)"
class="layui-input" lay-verify="required"> class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanCodeByOut(this)">
</div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -182,6 +187,11 @@
function Coverpage() { function Coverpage() {
} }
// 用于扫码出库
function scanCodeByOut(obj) {
}
// 用于暂存卡片个数 // 用于暂存卡片个数
var params = []; var params = [];
// 用于卡片编号 // 用于卡片编号
@ -244,59 +254,6 @@
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
} else { } else {
/*let url = window.location.href.split("#")[0];
var req = {};
req.url = url;
$.ajax({
url: "/QyWxSignature",
type: "get",
datatype: "json",
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
console.log(data)
console.log(parent)
parent.wx.agentConfig({
corpid: data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.jsapi_ticket_app,// 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['thirdPartyOpenPage'], //必填,传入需要使用的接口名称
success: function (res) {
// 回调
parent.wx.invoke('thirdPartyOpenPage', {
"oaType": "10001",// String
"templateId": "3WKiKVCzyLv3Y1LaHZxp4DimQEpCdvYP52HsAUtF",// String
"thirdNo": "123456456",// String
"extData": {
'fieldList': [{
'title': '采购类型',
'type': 'text',
'value': '市场活动',
},
{
'title': '订单链接',
'type': 'link',
'value': 'https://work.weixin.qq.com',
}],
}
},
function (res) {
// 输出接口的回调信息
console.log(res);
});
},
fail: function (res) {
if (res.errMsg.indexOf('function not exist') > -1) {
alert('版本过低请升级')
}
console.log(res)
}
});
}
});*/
layer.msg("申请提交成功", { layer.msg("申请提交成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -496,7 +453,7 @@
// 输入code // 输入code
var code = obj.value; var code = obj.value;
// 获取对应元素 // 获取对应元素
var parent = obj.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var objId = parent.id.split("cardItem")[1]; var objId = parent.id.split("cardItem")[1];
var children = parent.childNodes[5]; var children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialItem = children.childNodes[3].childNodes[1].childNodes;
@ -569,7 +526,7 @@
var parentId = parent.id; var parentId = parent.id;
var codeChildren = parent.childNodes[7]; var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5]; var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1]; var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
@ -648,7 +605,7 @@
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5]; var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7]; var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1]; var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
@ -714,7 +671,8 @@
// 条形码条码 // 条形码条码
var barCodeItem = barCodeChildren.childNodes[3]; var barCodeItem = barCodeChildren.childNodes[3];
// 物料编码 // 物料编码
var materialCodeItem = parent.childNodes[7].childNodes[3]; var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes;
var materialCode = materialCodeItem.childNodes[1]; var materialCode = materialCodeItem.childNodes[1];
@ -737,6 +695,85 @@
}) })
}; };
// 用于扫码功能
scanCodeByOut = function (obj) {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$.ajax({
url: "/material/qywxApplicationOutScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var MaterialChildren = parent.childNodes[5];
var materialItem = MaterialChildren.childNodes[3].childNodes[1].childNodes;
var barCodeChildren = parent.childNodes[9];
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
// 条形码条码
var barCodeItem = barCodeChildren.childNodes[3];
// 物料编码
var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes;
var materialCode = materialCodeItem.childNodes[1];
var idNumber = materialId.name.split("mid")[1];
// 获取物料与条形码的对应关系
var materialAndBarCodeList = data["materialAndBarCodeList"];
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
var barCodeImg = barCodeItem.childNodes[1].childNodes[3];
var id = barCodeInput.id;
$("#" + id).remove();
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
} else {
var barCodeSelect = `
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `>
</select>`;
$("#" + barCodeImg.id).before(barCodeSelect);
}
form.render();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}
$('#place' + idNumber).empty();
$.each(data.placePList, function (index, item) {
$('#place' + idNumber).append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素
});
form.render();
materialName.value = data.mname;
materialId.value = data.id;
materialCode.value = data.code;
}
})
}
})
};
//用于判断当前物料数量是否合适 //用于判断当前物料数量是否合适
MaterialQuantityIsTrue = function (obj) { MaterialQuantityIsTrue = function (obj) {
var id = obj.id.split("quantity")[1]; var id = obj.id.split("quantity")[1];
@ -746,9 +783,11 @@
$("#quantity" + id).val("") $("#quantity" + id).val("")
}); });
} else { } else {
let val = $("#quantity" + id).val();
if(val !== null && val !== undefined && val !== '') {
var req = {}; var req = {};
req.code = mcode; req.code = mcode;
req.quantity = $("#quantity" + id).val(); req.quantity = val;
$.ajax({ $.ajax({
url: "/material/MaterialQuantityIsTrue", url: "/material/MaterialQuantityIsTrue",
type: "post", type: "post",
@ -767,11 +806,17 @@
var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3]; var materialId = materialName.parentNode.parentNode.childNodes[3];
var codeItem = codeChildren.childNodes[3].childNodes; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1]; var codeValue = codeItem[1];
materialName.value = ""; materialName.value = "";
materialId.value = ""; materialId.value = "";
codeValue.value = ""; codeValue.value = "";
var idNumber = materialId.name.split("mid")[1];
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
}); });
} }
@ -779,6 +824,7 @@
}); });
} }
} }
}
}) })

38
target/classes/templates/pages/application/application-out_min.html

@ -28,7 +28,7 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','laydate'], function () { layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
@ -53,19 +53,20 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
"depositoryId":depositoryId, "depositoryId": depositoryId,
"state":state "state": state
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
//这里layui和thymeleaf冲突了,要加个空格 //这里layui和thymeleaf冲突了,要加个空格
cols: [ [ cols: [
[
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"}, {title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true}, {field: 'code', width: 200, title: '提交编码', sort: true},
@ -80,17 +81,18 @@
{field: 'state', width: 200, title: '状态'}, {field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'} {field: 'checkerName', width: 200, title: '处理人'}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function (res, curr, count) { done: function (res, curr, count) {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
var data = res.data; var data = res.data;
if(data.length > 0){ if (data.length > 0) {
if(data[0].state === "进行中"){ if (data[0].state === "进行中") {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
} }
@ -109,10 +111,10 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'], area: ['100%', '100%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/scanQrCodeByOut?id='+data.id, content: '/scanQrCodeByOut?id=' + data.id,
end:function () { end: function () {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/depositoryRecord/ApplicationOutMinByDid', url: '/depositoryRecord/ApplicationOutMinByDid',
page: { page: {

2
target/classes/templates/pages/application/application-transfer.html

@ -173,7 +173,7 @@
function selectMaterialByName(obj){} function selectMaterialByName(obj){}
// 用于加载仓库菜单 // 用于加载仓库菜单
function openDepositoryTree(obj){} function openDepositoryTree(obj){}
// 用于扫码入库 // 用于扫码转移
function scanCodeByTransfer(obj) { function scanCodeByTransfer(obj) {
} }

59
target/classes/templates/pages/company/company-out.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">公司名称</label> <label class="layui-form-label">公司名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="name" > <select name="name">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="administration,iterStar:${administrationPList}" th:value="${administration?.getName()}" th:text="${administration?.getName()}" >顶级公司</option> <option th:each="administration,iterStar:${administrationPList}"
th:value="${administration?.getName()}"
th:text="${administration?.getName()}">顶级公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -48,8 +51,6 @@
</fieldset> </fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
@ -70,7 +71,7 @@
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allCompanyByParent', url: '/company/allCompanyByParent',
method:"post", method: "post",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -84,52 +85,54 @@
limitName: 'pagesize', //每页数据量的参数名,默认:limit limitName: 'pagesize', //每页数据量的参数名,默认:limit
}, },
where: { where: {
superior:parentId superior: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'name', width: 250, title: '名称'},
{field: 'abbreviation',width: 200,title: '简称'}, {field: 'abbreviation', width: 200, title: '简称'},
{ {
field: 'state', title: '状态', minWidth: 80, templet: function (d) { field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.name!==''){ if (data.name !== '') {
req.name = data.name; req.name = data.name;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.superior = parentId req.superior = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
@ -157,14 +160,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/company_detail?id='+data.id, content: '/company_detail?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子公司', title: '子公司',
type: 2, type: 2,
@ -172,14 +174,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findCompanyByParentId?parentId='+data.id content: '/findCompanyByParentId?parentId=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'post') {
else if (obj.event == 'post'){
var index = layer.open({ var index = layer.open({
title: '岗位列表', title: '岗位列表',
type: 2, type: 2,
@ -187,7 +188,7 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findPostByOrganization?organization='+data.id content: '/findPostByOrganization?organization=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);

132
target/classes/templates/pages/company/company-out_back.html

@ -21,9 +21,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">公司名称</label> <label class="layui-form-label">公司名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="cid" > <select name="cid">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="company,iterStar:${companies}" th:value="${company?.getCid()}" th:text="${company?.getCname()}" >顶级公司</option> <option th:each="company,iterStar:${companies}" th:value="${company?.getCid()}"
th:text="${company?.getCname()}">顶级公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -50,7 +52,8 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.cid}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.cid}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
@ -66,7 +69,8 @@
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子公司</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子公司</a>
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
</div> </div>
@ -80,7 +84,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allCompanyByParent?parentId='+parentId, url: '/company/allCompanyByParent?parentId=' + parentId,
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -94,25 +98,27 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'cid', width: 100, title: '公司', sort: true}, {field: 'cid', width: 100, title: '公司', sort: true},
{field: 'cname', width: 120, title: '公司名称', sort: true}, {field: 'cname', width: 120, title: '公司名称', sort: true},
{field: 'introduce',width: 200,title: '公司介绍',sort: true}, {field: 'introduce', width: 200, title: '公司介绍', sort: true},
{field:'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
@ -121,16 +127,16 @@
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.cid!==''){ if (data.cid !== '') {
req.id = data.cid; req.id = data.cid;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
@ -159,30 +165,29 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].cid; req.ids[i] = data[i].cid;
} }
$.ajax({ $.ajax({
url: '/company/company_del', url: '/company/company_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -216,14 +221,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/company_detail?id='+data.cid, content: '/company_detail?id=' + data.cid,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') {
var req = {}; var req = {};
req.id = data.cid; req.id = data.cid;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
@ -240,7 +244,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
@ -251,8 +255,7 @@
} }
}) })
}); });
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子公司', title: '子公司',
type: 2, type: 2,
@ -260,34 +263,33 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findCompanyByParentId?parentId='+data.cid content: '/findCompanyByParentId?parentId=' + data.cid
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'realDelete') { // 彻底删除
else if (obj.event == 'realDelete') { // 彻底删除
var req = {}; var req = {};
req.id = data.cid; req.id = data.cid;
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/company/realDeleteCompany', url: '/company/realDeleteCompany',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -296,27 +298,27 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} }
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value req["id"] = this.value;
var hasMaterial = false var hasMaterial = false;
$.ajax({ $.ajax({
url: "/company/EditCompanyState", url: "/company/EditCompanyState",
type: 'post', type: 'post',
@ -330,19 +332,19 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行表格重加载 // 执行表格重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} }

56
target/classes/templates/pages/company/companyByParentId.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">公司名称</label> <label class="layui-form-label">公司名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="number" > <select name="number">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="administration,iterStar:${administrationPList}" th:value="${administration?.getId()}" th:text="${administration?.getName()}" >顶级公司</option> <option th:each="administration,iterStar:${administrationPList}"
th:value="${administration?.getId()}"
th:text="${administration?.getName()}">顶级公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -48,8 +51,6 @@
</fieldset> </fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
@ -69,7 +70,7 @@
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allCompanyByParent', url: '/company/allCompanyByParent',
method:"post", method: "post",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -83,55 +84,57 @@
limitName: 'pagesize' //每页数据量的参数名,默认:limit limitName: 'pagesize' //每页数据量的参数名,默认:limit
}, },
where: { where: {
superior:parentId superior: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 200, title: '名称', sort: true}, {field: 'name', width: 200, title: '名称', sort: true},
{field: 'abbreviation',width: 200,title: '简称',sort: true}, {field: 'abbreviation', width: 200, title: '简称', sort: true},
{ {
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
one:function () { one: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.number!==''){ if (data.number !== '') {
req.number = data.number; req.number = data.number;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/company/companyByCondition', url: '/company/companyByCondition',
@ -159,14 +162,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/company_detail?id='+data.cid, content: '/company_detail?id=' + data.cid,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子公司', title: '子公司',
type: 2, type: 2,
@ -174,7 +176,7 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findCompanyByParentId?parentId='+data.id content: '/findCompanyByParentId?parentId=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);

114
target/classes/templates/pages/depository/table-in.html

@ -31,18 +31,20 @@
id="openSonByDepository" readonly onclick="openDepositoryTree(this)" id="openSonByDepository" readonly onclick="openDepositoryTree(this)"
/> />
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" <input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none" /> style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">物料名称:</label> <label class="layui-form-label">物料名称:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称" class="layui-input" onclick="selectMaterialByName(this)" /> <input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称"
<input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称" class="layui-input" style="display:none;" /> class="layui-input" onclick="selectMaterialByName(this)"/>
<!-- <select name="mid">--> <input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称"
<!-- <option value="" selected>请选择物料名称</option>--> class="layui-input" style="display:none;"/>
<!-- <option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option>--> <!-- <select name="mid">-->
<!-- </select>--> <!-- <option value="" selected>请选择物料名称</option>-->
<!-- <option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option>-->
<!-- </select>-->
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -74,13 +76,17 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
// 用于加载仓库菜单 // 用于加载仓库菜单
function openDepositoryTree(obj){} function openDepositoryTree(obj) {
function selectMaterialByName(obj){} }
layui.use(['form', 'table','laydate'], function () {
function selectMaterialByName(obj) {
}
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
laydate=layui.laydate; laydate = layui.laydate;
// 用于打开仓库树形菜单 // 用于打开仓库树形菜单
openDepositoryTree = function (obj) { openDepositoryTree = function (obj) {
@ -93,12 +99,11 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectDepository?type=1&clickObj='+parentId, content: '/selectDepository?type=1&clickObj=' + parentId,
}); });
} };
//日期 //日期
@ -120,19 +125,19 @@
pageName: 'page', //页码的参数名称,默认:page pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {},
},
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格 //这里layui和thymeleaf冲突了,要加个空格
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: '提交编号', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'aircode', width: 100, title: '提交编码', sort: true}, {field: 'aircode', width: 100, title: '提交编码', sort: true},
@ -145,28 +150,29 @@
{field: 'applicantTime', width: 200, title: '提交时间', sort: true}, {field: 'applicantTime', width: 200, title: '提交时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applyRemark', width: 200, title: '备注'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.mid!==''){ if (data.mid !== '') {
req.mid=data.mid; req.mid = data.mid;
} }
if (data.depositoryId!==''){ if (data.depositoryId !== '') {
req.depositoryId=data.depositoryId; req.depositoryId = data.depositoryId;
} }
if (data.applyTime!==''){ if (data.applyTime !== '') {
req.applyTime=data.applyTime; req.applyTime = data.applyTime;
} }
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
@ -199,12 +205,12 @@
} else if (obj.event === 'delete') { // 监听删除操作 } else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/depositoryRecord/deleteApplicationInRecord', url: '/depositoryRecord/deleteApplicationInRecord',
@ -219,7 +225,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -237,7 +243,7 @@
} }
}) })
}) })
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
@ -260,31 +266,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/form_step_look?id='+data.id, content: '/form_step_look?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/depositoryRecord/deleteApplicationInRecord', url: '/depositoryRecord/deleteApplicationInRecord',
type: 'post', type: 'post',
dataType:'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -310,8 +316,8 @@
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
content: '/selectMaterial?type=1&mname=""', content: '/selectMaterial?type=1&mname=""',
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false fixed: false
}); });
}; };

112
target/classes/templates/pages/depository/table-out.html

@ -31,8 +31,10 @@
<option value="" selected>请选择仓库</option> <option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option> <option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>--> </select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly /> <input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" /> readonly/>
<input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -42,8 +44,10 @@
<option value="" selected>请选择物料名称</option> <option value="" selected>请选择物料名称</option>
<option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option> <option th:each="Material,iterStar:${materials}" th:value="${Material?.getId()}" th:text="${Material?.getMname()}">天玑1000</option>
</select>--> </select>-->
<input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称" class="layui-input" onclick="selectMaterialByName(this)" /> <input id="openSonByMaterial" readonly type="text" placeholder="请填写物料名称"
<input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称" class="layui-input" style="display:none;" /> class="layui-input" onclick="selectMaterialByName(this)"/>
<input id="mid" name="mid" readonly type="text" placeholder="请填写物料名称"
class="layui-input" style="display:none;"/>
</div> </div>
</div> </div>
@ -76,15 +80,18 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
var data; var data;
// 用于加载仓库菜单 // 用于加载仓库菜单
function selectMaterialByName(obj){} function selectMaterialByName(obj) {
layui.use(['form', 'table','laydate'], function () { }
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
laydate=layui.laydate; laydate = layui.laydate;
$('#openSonByDepository').on('click', function(){ $('#openSonByDepository').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -92,8 +99,8 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectDepository?type=2', content: '/selectDepository?type=2',
}); });
}); });
@ -111,8 +118,8 @@
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
content: '/selectMaterial?type=1&mname=""', content: '/selectMaterial?type=1&mname=""',
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false fixed: false
}); });
}; };
@ -136,19 +143,19 @@
pageName: 'page', //页码的参数名称,默认:page pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {},
},
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格 //这里layui和thymeleaf冲突了,要加个空格
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: '申请编号', sort: true}, {field: 'id', width: 100, title: '申请编号', sort: true},
{field: 'code', width: 100, title: '申请编码', sort: true}, {field: 'code', width: 100, title: '申请编码', sort: true},
@ -160,9 +167,9 @@
{field: 'state', width: 150, title: '流程状态'}, {field: 'state', width: 150, title: '流程状态'},
{ {
field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) { field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) {
if (d.pass == 1){ if (d.pass == 1) {
return "是"; return "是";
}else{ } else {
return "否"; return "否";
} }
} }
@ -171,36 +178,37 @@
{field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{ {
field: 'istransfer', title: '是否为转移申请', minWidth: 120, templet: function (d) { field: 'istransfer', title: '是否为转移申请', minWidth: 120, templet: function (d) {
if (d.istransfer == 1){ if (d.istransfer == 1) {
return "是"; return "是";
}else if(d.istransfer == 2){ } else if (d.istransfer == 2) {
return "否"; return "否";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.mid!==''){ if (data.mid !== '') {
req.mid=data.mid; req.mid = data.mid;
} }
if (data.depositoryId!==''){ if (data.depositoryId !== '') {
req.depositoryId=data.depositoryId; req.depositoryId = data.depositoryId;
} }
if (data.applyTime!==''){ if (data.applyTime !== '') {
req.applyTime=data.applyTime; req.applyTime = data.applyTime;
} }
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
@ -233,12 +241,12 @@
} else if (obj.event === 'delete') { // 监听删除操作 } else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/depositoryRecord/deleteApplicationOutRecord', url: '/depositoryRecord/deleteApplicationOutRecord',
@ -253,7 +261,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -271,7 +279,7 @@
} }
}) })
}); });
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
@ -293,31 +301,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/ApplicationOutView?id='+data.id, content: '/ApplicationOutView?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: 'depositoryRecord/deleteApplicationOutRecord', url: 'depositoryRecord/deleteApplicationOutRecord',
type: 'post', type: 'post',
dataType:'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

54
target/classes/templates/pages/material/material-add.html

@ -34,10 +34,10 @@
<legend>物料创建</legend> <legend>物料创建</legend>
<div class="layui-fluid"> <div class="layui-fluid">
<div class="layui-card"> <div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;padding-left:0px;padding-right:0px"> <div class="layui-card-body" style="padding-left:0px;padding-right:0px">
<div> <div>
<form class="layui-form" <form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px" lay-filter="form1"> style="margin: 0 auto;max-width: 700px;padding-top: 5px; padding-bottom: 50px" lay-filter="form1">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料名称:</label> <label class="layui-form-label">物料名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -62,6 +62,15 @@
name="version"/> name="version"/>
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">品牌:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写物料品牌" class="layui-input"
name="brand"/>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料类型:</label> <label class="layui-form-label">物料类型:</label>
@ -86,6 +95,34 @@
name="unit" /> name="unit" />
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">生产日期:</label>
<div class="layui-input-block">
<input type="text" name="producedDate" id="producedDate" placeholder="请选择生产日期"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">保质期:</label>
<div class="layui-input-block">
<input type="text" name="shelfLife" id="shelfLife" placeholder="请选择保质日期"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">产地:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写物料产地" class="layui-input"
name="productionPlace" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写备注" class="layui-input"
name="remark" />
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep"> <button class="layui-btn" lay-submit lay-filter="formStep">
@ -110,11 +147,12 @@
var data; var data;
function selectBarCode(){} function selectBarCode(){}
function scanBarCode(){} function scanBarCode(){}
layui.use(['form', 'layer','dropdown','tree'], function () { layui.use(['form', 'layer','dropdown','tree','laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
dropdown = layui.dropdown, dropdown = layui.dropdown,
tree = layui.tree, tree = layui.tree,
laydate = layui.laydate,
layer = layui.layer; layer = layui.layer;
@ -132,6 +170,16 @@
}); });
}); });
laydate.render({
elem: '#producedDate'
,format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#shelfLife'
,format: 'yyyy-MM-dd'
});
$('#openSonByDepository').on('click', function(){ $('#openSonByDepository').on('click', function(){
layer.open({ layer.open({
type: 2, type: 2,

290
target/classes/templates/pages/material/material-out.html

@ -12,6 +12,7 @@
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<input style="display:none;" id="nowDay" th:value="${nowDay}">
<fieldset class="table-search-fieldset"> <fieldset class="table-search-fieldset">
<legend>搜索信息</legend> <legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px"> <div style="margin: 10px 10px 10px 10px">
@ -19,14 +20,13 @@
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">仓库</label> <label class="layui-form-label">品牌</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<!--<select name="depositoryId" > <!--<select name="depositoryId" >
<option value="" selected>请选择仓库</option> <option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option> <option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>--> </select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly /> <input type="text" class="layui-input" id="brand" name="brand" autocomplete="off"/>
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" />
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -36,8 +36,10 @@
<option value="" selected>请选择物料类型</option> <option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option> <option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>--> </select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly /> <input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType"
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId" class="layui-input" style="display: none" /> readonly/>
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId"
class="layui-input" style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -75,15 +77,19 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> </button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div> </div>
</script> </script>
@ -92,19 +98,23 @@
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
</div> </div>
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','upload'], function () { // 定义过期警报时间为7天
var warningTime = 604800000;
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
upload = layui.upload; upload = layui.upload;
var nowDay = $("#nowDay").val();
$('#openSonByMateralType').on('click', function(){ $('#openSonByMateralType').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -112,25 +122,12 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectType', content: '/selectType',
}); });
}); });
$('#openSonByDepository').on('click', function(){
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move : '.layui-layer-title',
fixed:false,
content: '/selectDepository?type=2',
});
});
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
@ -148,57 +145,94 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'code',width: 150,title: '存货编码',sort: true}, {field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号',hidden:true}, {field: 'id', width: 100, title: 'EAS编号', hidden: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName',width: 150,title: '物料种类'}, {field: 'typeName', width: 150, title: '物料种类'},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'texture', width: 100, title: '材质'},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'unit', width: 150, title: '计量单位'},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'brand', width: 150, title: '品牌'},
{field: 'producedDate', width: 150, title: '生产日期'},
{field: 'shelfLife', width: 150, title: '保质期'},
{field: 'productionPlace', width: 150, title: '产地'},
{field: 'remark', width: 150, title: '备注'},
{field: 'shelfLifeForCalc', width: 150, title: '用于计算时间'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function (res, curr, count) {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='shelfLifeForCalc']").css('display', 'none');
$.each(res['data'], function (i, j) {
let jElement = j['shelfLifeForCalc'];
if (jElement !== null && jElement !== undefined) {
let flag = (Number(jElement) - Number(nowDay) < warningTime);
if (flag) {
// console.log(i + ' -458- ' + 'jdjg is null');
Layui_SetDataTableRowColor('table', i + 1, '#b1070a');
}
} }
}); });
}
});
// 用于给table行上色的方法
function Layui_SetDataTableRowColor(TabDivId, RowIndex, ColorString) {
try {
var div = $("[lay-id='currentTableId'] tr:eq(" + RowIndex + ")");
if (div != null) //找到对象了
{
// console.log(div);
div.css("color", ColorString);
} else {
console.log('没有找到对象');
}
} catch (e) {
console.log(e.message);
}
}
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.mname!==''){ if (data.mname !== '') {
req.mname=data.mname; req.mname = data.mname;
} }
if(data.depositoryId!== ''){ if (data.brand !== '') {
req.depositoryId = data.depositoryId; req.brand = data.brand;
} }
if(data.materialTypeId !=''){ if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId; req.materialTypeId = data.materialTypeId;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
if(data.code != ''){ if (data.code != '') {
req.code = data.code req.code = data.code
} }
@ -230,16 +264,15 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
@ -254,7 +287,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -272,24 +305,22 @@
} }
}) })
}) })
} } else {
else{
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} } else if (obj.event === 'applicationIn') {
else if(obj.event === 'applicationIn'){
// 入库申请 // 入库申请
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.mids=[]; req.mids = [];
// 获取所有选中的id // 获取所有选中的id
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.mids[i]=data[i].id; req.mids[i] = data[i].id;
} }
$.ajax({ $.ajax({
url:"/material/temporaryValueForMaterial", url: "/material/temporaryValueForMaterial",
type: 'post', type: 'post',
dataType: 'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
@ -297,9 +328,9 @@
beforeSend: function () { beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function (d) { success: function (d) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(d.status == 200){ if (d.status == 200) {
layer.open({ layer.open({
type: 2, type: 2,
title: '入库', title: '入库',
@ -310,7 +341,7 @@
move: '.layui-layer-title', move: '.layui-layer-title',
fixed: false, fixed: false,
content: '/applicationInByMaterial', content: '/applicationInByMaterial',
end:function () { end: function () {
var index = parent.layer.getFrameIndex(window.name); var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index); parent.layer.close(index);
} }
@ -324,31 +355,31 @@
//用于导入数据 //用于导入数据
var upLoader = upload.render({ var upLoader = upload.render({
elem:"#u_fileUpload", // 绑定元素 elem: "#u_fileUpload", // 绑定元素
url:'/excel/importExcelByMaterial', // 上传接口 url: '/excel/importExcelByMaterial', // 上传接口
accept:'file', // 允许上传的格式, accept: 'file', // 允许上传的格式,
before: function(obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。 before: function (obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
layer.load(); //上传loading layer.load(); //上传loading
}, },
exts:'xls|xlsx|csv', exts: 'xls|xlsx|csv',
done:function(res){ done: function (res) {
layer.closeAll('loading'); //关闭loading layer.closeAll('loading'); //关闭loading
//如果上传成功 //如果上传成功
var re = ""; var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show re += show
} }
if(res.code === 200){ if (res.code === 200) {
for (let i = 0; i < res.data.dataList.length; i++) { for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"]; var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"] == null || res.data.dataList[i]["code"] == undefined ?"":res.data.dataList[i]["code"]; var code = res.data.dataList[i]["code"] == null || res.data.dataList[i]["code"] == undefined ? "" : res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"] == null || res.data.dataList[i]["version"] == undefined ?"":res.data.dataList[i]["version"]; var version = res.data.dataList[i]["version"] == null || res.data.dataList[i]["version"] == undefined ? "" : res.data.dataList[i]["version"];
var texture = res.data.dataList[i]["texture"] == null || res.data.dataList[i]["texture"] == undefined ?"":res.data.dataList[i]["texture"]; var texture = res.data.dataList[i]["texture"] == null || res.data.dataList[i]["texture"] == undefined ? "" : res.data.dataList[i]["texture"];
var unit = res.data.dataList[i]["unit"] == null || res.data.dataList[i]["unit"] == undefined ?"":res.data.dataList[i]["unit"]; var unit = res.data.dataList[i]["unit"] == null || res.data.dataList[i]["unit"] == undefined ? "" : res.data.dataList[i]["unit"];
var typeId = res.data.dataList[i]["typeId"] == null || res.data.dataList[i]["typeId"] == undefined ?"":res.data.dataList[i]["typeId"]; var typeId = res.data.dataList[i]["typeId"] == null || res.data.dataList[i]["typeId"] == undefined ? "" : res.data.dataList[i]["typeId"];
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+unit +" "+typeId+" :成功" +"</p>" var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + unit + " " + typeId + " :成功" + "</p>";
re += show re += show
} }
@ -358,20 +389,20 @@
area: ['500px', '500px'], //宽高 area: ['500px', '500px'], //宽高
content: re content: re
}) })
}else{ } else {
layer.msg(res.msg) layer.msg(res.msg)
} }
}, },
error:function (){ error: function () {
layer.closeAll('loading'); //关闭loading layer.closeAll('loading'); //关闭loading
var demoText = $('#demoText'); var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){ demoText.find('.demo-reload').on('click', function () {
upLoader.upload() upLoader.upload()
}) })
} }
}) });
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
@ -389,8 +420,8 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/material_view?id='+data.id, content: '/material_view?id=' + data.id,
end:function () { end: function () {
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/material/material', url: '/material/material',
@ -404,26 +435,25 @@
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') { var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -433,28 +463,27 @@
} }
}) })
}); });
} } else if (obj.event == 'realDelete') { //彻底删除
else if (obj.event == 'realDelete'){ //彻底删除 var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/material/realDeleteMaterial', url: '/material/realDeleteMaterial',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -463,18 +492,17 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/repository/warehouseRecord', url: '/repository/warehouseRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} } else if (obj.event == 'manager') {
else if (obj.event == 'manager'){
layer.open({ layer.open({
type: 2, type: 2,
@ -483,15 +511,15 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'], area: ['893px', '600px'],
content: '/ManagerViewByMid?id='+data.id content: '/ManagerViewByMid?id=' + data.id
}); });
} }
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value; req["id"] = this.value;
@ -508,13 +536,13 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
window.location='/material_out' window.location = '/material_out'
}) })
} }
} }

248
target/classes/templates/pages/material/material-out_back.html

@ -25,8 +25,10 @@
<option value="" selected>请选择仓库</option> <option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option> <option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>--> </select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly /> <input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" /> readonly/>
<input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -36,8 +38,10 @@
<option value="" selected>请选择物料类型</option> <option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option> <option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>--> </select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly /> <input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType"
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId" class="layui-input" style="display: none" /> readonly/>
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId"
class="layui-input" style="display: none"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -76,14 +80,17 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div> </div>
</script> </script>
@ -92,7 +99,8 @@
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
<script id="selectManager" type="text/html"> <script id="selectManager" type="text/html">
@ -103,13 +111,13 @@
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','upload'], function () { layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
upload = layui.upload; upload = layui.upload;
$('#openSonByMateralType').on('click', function(){ $('#openSonByMateralType').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -117,13 +125,13 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectType', content: '/selectType',
}); });
}); });
$('#openSonByDepository').on('click', function(){ $('#openSonByDepository').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
title: '弹窗内容', title: '弹窗内容',
@ -131,8 +139,8 @@
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'], area: ['70%', '70%'],
move : '.layui-layer-title', move: '.layui-layer-title',
fixed:false, fixed: false,
content: '/selectDepository?type=2', content: '/selectDepository?type=2',
}); });
}); });
@ -153,60 +161,62 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'code',width: 150,title: '存货编码',sort: true}, {field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号',hidden:true}, {field: 'id', width: 100, title: 'EAS编号', hidden: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName',width: 150,title: '物料种类'}, {field: 'typeName', width: 150, title: '物料种类'},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'texture', width: 100, title: '材质'},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'unit', width: 150, title: '计量单位'},
{field: 'depositoryCode',width: 250,title: '仓库编码',sort: true}, {field: 'depositoryCode', width: 250, title: '仓库编码', sort: true},
{field: "depositoryName",width: 120,title: "仓库名称"}, {field: "depositoryName", width: 120, title: "仓库名称"},
{field: 'quantity',width: 120,title:'数量',sort: true}, {field: 'quantity', width: 120, title: '数量', sort: true},
{field: 'price',width: 150,title: '单价',sort: true}, {field: 'price', width: 150, title: '单价', sort: true},
{field: 'amounts',width: 180,title: '总金额',sort: true}, {field: 'amounts', width: 180, title: '总金额', sort: true},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '仓管员', minWidth: 80, templet: '#selectManager' ,align: "center"}, {title: '仓管员', minWidth: 80, templet: '#selectManager', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.mname!==''){ if (data.mname !== '') {
req.mname=data.mname; req.mname = data.mname;
} }
if(data.depositoryId!== ''){ if (data.depositoryId !== '') {
req.depositoryId = data.depositoryId; req.depositoryId = data.depositoryId;
} }
if(data.materialTypeId !=''){ if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId; req.materialTypeId = data.materialTypeId;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
@ -238,16 +248,15 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
@ -262,7 +271,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -280,23 +289,21 @@
} }
}) })
}) })
} } else {
else{
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} } else if (obj.event === 'createQrCode') {
else if(obj.event === 'createQrCode'){
$.ajax({ $.ajax({
url:"/material/createQrCode?mid=3", url: "/material/createQrCode?mid=3",
dataType: 'json', dataType: 'json',
type: 'get', type: 'get',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (data) { success: function (data) {
if(data.status != 200){ if (data.status != 200) {
layer.msg(data.statusInfo.messgae) layer.msg(data.statusInfo.messgae)
}else{ } else {
$("#qrCode").attr("src",data.data); $("#qrCode").attr("src", data.data);
} }
} }
}) })
@ -304,27 +311,27 @@
}); });
var upLoader = upload.render({ var upLoader = upload.render({
elem:"#u_fileUpload", // 绑定元素 elem: "#u_fileUpload", // 绑定元素
url:'/excel/importExcel', // 上传接口 url: '/excel/importExcel', // 上传接口
accept:'file', // 允许上传的格式, accept: 'file', // 允许上传的格式,
exts:'xls|xlsx|csv', exts: 'xls|xlsx|csv',
done:function(res){ done: function (res) {
//如果上传成功 //如果上传成功
if(res.code == 200){ if (res.code == 200) {
var re = "" var re = "";
for (let i = 0; i < res.data.dataList.length; i++) { for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"] var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"] var code = res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"] var version = res.data.dataList[i]["version"];
var texture = res.data.dataList[i]["texture"] var texture = res.data.dataList[i]["texture"];
var price = res.data.dataList[i]["price"] var price = res.data.dataList[i]["price"];
var quantity = res.data.dataList[i]["quantity"] var quantity = res.data.dataList[i]["quantity"];
var unit = res.data.dataList[i]["unit"] var unit = res.data.dataList[i]["unit"];
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+price +" "+quantity +" "+unit +":成功" +"</p>" var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + price + " " + quantity + " " + unit + ":成功" + "</p>";
re += show re += show
} }
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show re += show
} }
layer.open({ layer.open({
@ -333,19 +340,19 @@
area: ['500px', '500px'], //宽高 area: ['500px', '500px'], //宽高
content: re content: re
}) })
}else{ } else {
layer.msg(res.msg) layer.msg(res.msg)
} }
}, },
error:function (){ error: function () {
var demoText = $('#demoText'); var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){ demoText.find('.demo-reload').on('click', function () {
upLoader.upload() upLoader.upload()
}) })
} }
}) });
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
@ -363,32 +370,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/material_view?id='+data.id, content: '/material_view?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') { var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/material_del', url: '/material/material_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -398,28 +404,27 @@
} }
}) })
}); });
} } else if (obj.event == 'realDelete') { //彻底删除
else if (obj.event == 'realDelete'){ //彻底删除 var req = {};
var req={}; req.id = data.id;
req.id=data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/material/realDeleteMaterial', url: '/material/realDeleteMaterial',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -428,18 +433,17 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/repository/warehouseRecord', url: '/repository/warehouseRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} } else if (obj.event == 'manager') {
else if (obj.event == 'manager'){
layer.open({ layer.open({
type: 2, type: 2,
@ -448,18 +452,18 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'], area: ['893px', '600px'],
content: '/ManagerViewByMid?id='+data.id content: '/ManagerViewByMid?id=' + data.id
}); });
} }
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value req["id"] = this.value;
$.ajax({ $.ajax({
url: "/material/material_edit", url: "/material/material_edit",
type: 'post', type: 'post',
@ -473,13 +477,13 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
window.location='/material_out' window.location = '/material_out'
}) })
} }
} }

44
target/classes/templates/pages/material/material-view.html

@ -63,6 +63,13 @@
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">品牌:</label>
<div class="layui-input-inline">
<input type="text" placeholder="请填写物料品牌" class="layui-input" th:value="${record.getBrand()}"
name="brand"/>
</div>
</div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">物料类型</label> <label class="layui-form-label">物料类型</label>
@ -89,6 +96,22 @@
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">生产日期:</label>
<div class="layui-input-inline">
<input type="text" name="producedDate" id="producedDate" placeholder="请选择生产日期" th:value="${record.getShowProducedDate()}"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">保质期:</label>
<div class="layui-input-inline">
<input type="text" name="shelfLife" id="shelfLife" placeholder="请选择保质日期" th:value="${record.getShowShelfLife()}"
autocomplete="off" class="layui-input">
</div>
</div>
<!-- 二维码生成--> <!-- 二维码生成-->
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">二维码</label> <label class="layui-form-label">二维码</label>
@ -103,6 +126,13 @@
<input class="layui-btn layui-btn-warm" type="button" onclick="checkBarCode()" value="查看"> <input class="layui-btn layui-btn-warm" type="button" onclick="checkBarCode()" value="查看">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-inline">
<input type="text" placeholder="请填写备注" class="layui-input" th:value="${record.getRemark()}"
name="remark" />
</div>
</div>
<div class="layui-form-item" style="display: none"> <div class="layui-form-item" style="display: none">
<label class="layui-form-label">状态</label> <label class="layui-form-label">状态</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -129,8 +159,8 @@
} }
var barCode = []; var barCode = [];
var flag = false; var flag = false;
layui.use('form', function () { layui.use(['form','laydate'], function () {
var form = layui.form, $ = layui.$; var form = layui.form, laydate = layui.laydate,$ = layui.$;
$('#openSonByMateralType').on('click', function () { $('#openSonByMateralType').on('click', function () {
layer.open({ layer.open({
type: 2, type: 2,
@ -178,7 +208,17 @@
}); });
return false; return false;
}); });
laydate.render({
elem: '#producedDate'
,value: $("#producedDate").val()
,format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#shelfLife'
,value: $("#shelfLife").val()
,format: 'yyyy-MM-dd'
});
checkBarCode = function () { checkBarCode = function () {
var mid = $("#mid").val(); var mid = $("#mid").val();

138
target/classes/templates/pages/materialBarCode/materialBarCode_out.html

@ -34,14 +34,16 @@
<script> <script>
var barCode = []; var barCode = [];
function notice(){
}; function notice() {
function addBarCodeByMid(){
}; }
function addBarCodeByMid() {
}
layui.use(['form', 'table','upload'], function () { layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
@ -64,34 +66,36 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
mid:mid mid: mid
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id',width:50,title:'id'}, {field: 'id', width: 50, title: 'id'},
{field: 'mcode',width: 150,title: '存货编码',sort: true}, {field: 'mcode', width: 150, title: '存货编码', sort: true},
{field: 'bmcode',width: 150,title: '条形码',sort: true}, {field: 'bmcode', width: 150, title: '条形码', sort: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'texture', width: 100, title: '材质'},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'unit', width: 150, title: '计量单位'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
@ -103,59 +107,58 @@
}); });
// 用于添加关联 // 用于添加关联
addBarCodeByMid = function(){ addBarCodeByMid = function () {
var mid = $("#mid").val(); var mid = $("#mid").val();
var req = {}; var req = {};
req.mid = mid; req.mid = mid;
req.barCodeList = barCode ; req.barCodeList = barCode;
$.ajax({ $.ajax({
url:"/material/addBarCodeByMaterial", url: "/material/addBarCodeByMaterial",
type:"post", type: "post",
data:JSON.stringify(req), data: JSON.stringify(req),
dataType:"json", dataType: "json",
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (d) { success: function (d) {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/material/findMaterialBarCode', url: '/material/findMaterialBarCode',
page: { page: {
curr: 1 curr: 1
}, },
where:{"mid":mid} where: {"mid": mid}
}); });
} }
}) })
}; };
notice = function(obj){ notice = function (obj) {
//用于弹出扫码的结果 //用于弹出扫码的结果
var context = "<div style='padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;'><ul>"; var context = "<div style='padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;'><ul>";
for (let i = 0; i < obj.length; i++) { for (let i = 0; i < obj.length; i++) {
context += "<li>"+obj[i]+"</li>"; context += "<li>" + obj[i] + "</li>";
} }
context += "</ul></div>"; context += "</ul></div>";
layer.open({ layer.open({
type: 1 type: 1
,title: false //不显示标题栏 , title: false //不显示标题栏
,closeBtn: false , closeBtn: false
,area: '300px;' , area: '300px;'
,shade: 0.8 , shade: 0.8
,id: 'LAY_layuipro' //设定一个id,防止重复弹出 , id: 'LAY_layuipro' //设定一个id,防止重复弹出
,btn: ['确定', '取消'] , btn: ['确定', '取消']
,btnAlign: 'c' , btnAlign: 'c'
,moveType: 1 //拖拽模式,0或者1 , moveType: 1 //拖拽模式,0或者1
,content: context , content: context
,success: function(layero){ , success: function (layero) {
var btn = layero.find('.layui-layer-btn'); var btn = layero.find('.layui-layer-btn');
btn.find('.layui-layer-btn0').attr({ btn.find('.layui-layer-btn0').attr({
onclick:"addBarCodeByMid()" onclick: "addBarCodeByMid()"
}); });
} }
}); });
}; };
/** /**
* toolbar监听事件 * toolbar监听事件
*/ */
@ -183,23 +186,22 @@
page: { page: {
curr: 1 curr: 1
}, },
where:{"mid":mid} where: {"mid": mid}
}); });
} }
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') {
else if(obj.event === 'delete'){
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
if(req.ids.length > 0){ if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/delBarCodeByMaterial', url: '/material/delBarCodeByMaterial',
@ -210,12 +212,12 @@
beforeSend: function () { beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -226,42 +228,42 @@
page: { page: {
curr: 1 curr: 1
}, },
where:{"mid":mid} where: {"mid": mid}
}); });
return false; return false;
} }
} }
}) })
}) })
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} }
}) });
table.on('tool(currentTableFilter)', function (obj) { table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data; let data = obj.data;
if (obj.event === 'delete') { if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/material/delBarCodeByMaterial', url: '/material/delBarCodeByMaterial',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

93
target/classes/templates/pages/materialtype/materialTypeByParentId.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">类型名称</label> <label class="layui-form-label">类型名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="tname" > <select name="tname">
<option value="" selected>请选择类型</option> <option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getTname()}" th:text="${materialType?.getTname()}" >顶级类型</option> <option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select> </select>
</div> </div>
</div> </div>
@ -72,7 +75,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId='+parentId, url: '/materialType/allMaterialTypeByParent?parentId=' + parentId,
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -86,33 +89,35 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: '类型编号', sort: true}, {field: 'id', width: 100, title: '类型编号', sort: true},
{field: 'tname', width: 120, title: '类型名称', sort: true}, {field: 'tname', width: 120, title: '类型名称', sort: true},
{field: 'introduce',width: 200,title: '类型介绍',sort: true}, {field: 'introduce', width: 200, title: '类型介绍', sort: true},
{ {
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
@ -121,16 +126,16 @@
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.tname!==''){ if (data.tname !== '') {
req.tname = data.tname; req.tname = data.tname;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
@ -162,26 +167,26 @@
} else if (obj.event === 'delete') { // 监听删除操作 } else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].id; req.ids[i] = data[i].id;
} }
$.ajax({ $.ajax({
url: '/materialType/materialType_del', url: '/materialType/materialType_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -216,31 +221,31 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/materialType_detail?id='+data.id, content: '/materialType_detail?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/materialType/materialType_del', url: '/materialType/materialType_del',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

215
target/classes/templates/pages/materialtype/materialType_view.html

@ -21,9 +21,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">类型名称</label> <label class="layui-form-label">类型名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="tname" > <select name="tname">
<option value="" selected>请选择类型</option> <option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getTname()}" th:text="${materialType?.getTname()}" >顶级类型</option> <option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select> </select>
</div> </div>
</div> </div>
@ -48,16 +51,19 @@
</fieldset> </fieldset>
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div> </div>
</script> </script>
@ -67,14 +73,15 @@
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子类型</a> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-subclass" lay-event="subclass">子类型</a>
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a> <a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a> <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script> </script>
</div> </div>
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
layui.use(['form', 'table','upload'], function () { layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
upload = layui.upload, upload = layui.upload,
@ -96,49 +103,51 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0", type: "0",
parentId:parentId parentId: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'oldId', width: 100, title: '类型编号', sort: true}, {field: 'oldId', width: 100, title: '类型编号', sort: true},
{field: 'tname', width: 120, title: '类型名称'}, {field: 'tname', width: 120, title: '类型名称'},
{field: 'introduce',width: 200,title: '类型介绍'}, {field: 'introduce', width: 200, title: '类型介绍'},
{field:'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='oldId']").css('display','none'); $("[data-field='oldId']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
req.type=1; req.type = 1;
if (data.tname!==''){ if (data.tname !== '') {
req.tname = data.tname; req.tname = data.tname;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.parentId = parentId req.parentId = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
@ -167,16 +176,15 @@
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req={}; var req = {};
req.ids=[]; req.ids = [];
for (i=0,len=data.length;i<len;i++){ for (i = 0, len = data.length; i < len; i++) {
req.ids[i]=data[i].oldId; req.ids[i] = data[i].oldId;
} }
if(req.ids.length > 0) { if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/materialType/materialType_del', url: '/materialType/materialType_del',
@ -191,7 +199,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -209,8 +217,7 @@
} }
}) })
}) })
} } else {
else{
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
@ -220,24 +227,24 @@
//用于导入数据 //用于导入数据
var upLoader = upload.render({ var upLoader = upload.render({
elem:"#u_fileUpload", // 绑定元素 elem: "#u_fileUpload", // 绑定元素
url:'/excel/importExcelByMT', // 上传接口 url: '/excel/importExcelByMT', // 上传接口
accept:'file', // 允许上传的格式, accept: 'file', // 允许上传的格式,
exts:'xls|xlsx|csv', exts: 'xls|xlsx|csv',
done:function(res){ done: function (res) {
//如果上传成功 //如果上传成功
if(res.code == 200){ if (res.code == 200) {
var re = ""; var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show re += show
} }
for (let i = 0; i < res.data.dataList.length; i++) { for (let i = 0; i < res.data.dataList.length; i++) {
var tname = res.data.dataList[i]["tname"]; var tname = res.data.dataList[i]["tname"];
var id = res.data.dataList[i]["oldId"]; var id = res.data.dataList[i]["oldId"];
var parentId = res.data.dataList[i]["parentId"] == null?"":res.data.dataList[i]["parentId"]; var parentId = res.data.dataList[i]["parentId"] == null ? "" : res.data.dataList[i]["parentId"];
var introduce = res.data.dataList[i]["introduce"] == null?"":res.data.dataList[i]["introduce"]; var introduce = res.data.dataList[i]["introduce"] == null ? "" : res.data.dataList[i]["introduce"];
var show = "<p style='color: #00FF00'>"+tname + " "+ id+" " +parentId+"成功" +"</p>" var show = "<p style='color: #00FF00'>" + tname + " " + id + " " + parentId + "成功" + "</p>";
re += show re += show
} }
@ -247,19 +254,19 @@
area: ['500px', '500px'], //宽高 area: ['500px', '500px'], //宽高
content: re content: re
}) })
}else{ } else {
layer.msg(res.msg) layer.msg(res.msg)
} }
}, },
error:function (){ error: function () {
var demoText = $('#demoText'); var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){ demoText.find('.demo-reload').on('click', function () {
upLoader.upload() upLoader.upload()
}) })
} }
}) });
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
@ -279,15 +286,15 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/materialType_detail?id='+data.oldId, content: '/materialType_detail?id=' + data.oldId,
end:function () { end: function () {
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where:req where: req
}, 'data'); }, 'data');
} }
}); });
@ -295,14 +302,13 @@
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event === 'delete') {
else if (obj.event === 'delete') {
var req = {}; var req = {};
req.id = data.oldId; req.id = data.oldId;
$.ajax({ $.ajax({
url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品 url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品
type: "post", type: "post",
data:JSON.stringify(req), data: JSON.stringify(req),
dataType: "json", dataType: "json",
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (data) { success: function (data) {
@ -335,7 +341,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
@ -349,8 +355,7 @@
} }
} }
}) })
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子类型', title: '子类型',
type: 2, type: 2,
@ -358,57 +363,55 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findMaterialTypeByParentId?parentId='+data.oldId content: '/findMaterialTypeByParentId?parentId=' + data.oldId
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'realDelete') { // 彻底删除
else if (obj.event == 'realDelete') { // 彻底删除
var req = {}; var req = {};
req.id = data.oldId; req.id = data.oldId;
$.ajax({ $.ajax({
url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品 url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品
type: "post", type: "post",
dataType: "json", dataType: "json",
data:JSON.stringify(req), data: JSON.stringify(req),
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (data) { success: function (data) {
if(data.data){ if (data.data) {
layer.msg("该类别下尚有记录无法删除", { layer.msg("该类别下尚有记录无法删除", {
icon: 7, icon: 7,
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} } else {
else{
layer.confirm('该操作会造成不可逆后果,是否继续?', { layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续','取消'] //按钮 btn: ['继续', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: '/materialType/realDeleteMaterialType', url: '/materialType/realDeleteMaterialType',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -417,14 +420,14 @@
} }
} }
}) })
},function (){ }, function () {
// 执行重加载 // 执行重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} }
@ -434,26 +437,26 @@
}); });
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map; var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1; req["state"] = 1;
} }
req["id"] = this.value; req["id"] = this.value;
var hasMaterial = false; var hasMaterial = false;
if(req["state"] == undefined){ //如果禁用 if (req["state"] == undefined) { //如果禁用
$.ajax({ $.ajax({
url:"/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品 url: "/materialType/findMaterialByMaterialTypeId", // 判断该类型下是否有物品
type:"post", type: "post",
dataType:"json", dataType: "json",
data:JSON.stringify(req), data: JSON.stringify(req),
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (data) { success: function (data) {
hasMaterial = data.data; hasMaterial = data.data;
if(hasMaterial){ // 如果有物品 if (hasMaterial) { // 如果有物品
layer.confirm('该种类下还有物品,确定禁用?', { layer.confirm('该种类下还有物品,确定禁用?', {
btn: ['禁用','取消'] //按钮 btn: ['禁用', '取消'] //按钮
}, function(){ }, function () {
$.ajax({ $.ajax({
url: "/materialType/EditMaterialTypeState", // 禁用 url: "/materialType/EditMaterialTypeState", // 禁用
type: 'post', type: 'post',
@ -467,34 +470,33 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} }
} }
}) })
},function (){ }, function () {
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}); });
} } else { // 如果没有物品
else{ // 如果没有物品
$.ajax({ $.ajax({
url: "/materialType/EditMaterialTypeState", url: "/materialType/EditMaterialTypeState",
type: 'post', type: 'post',
@ -508,19 +510,19 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行表格重加载 // 执行表格重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
@ -528,8 +530,9 @@
} }
}) })
} }
}}) }
}else{ // 如果启用 })
} else { // 如果启用
$.ajax({ $.ajax({
url: "/materialType/EditMaterialTypeState", url: "/materialType/EditMaterialTypeState",
type: 'post', type: 'post',
@ -543,19 +546,19 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
// 执行表格重加载 // 执行表格重加载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
}, },
where: {"parentId":parentId} where: {"parentId": parentId}
}); });
}) })
} }

74
target/classes/templates/pages/post/post-out.html

@ -22,9 +22,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">岗位名称</label> <label class="layui-form-label">岗位名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="name" > <select name="name">
<option value="" selected>请选择岗位</option> <option value="" selected>请选择岗位</option>
<option th:each="post,iterStar:${postList}" th:value="${post?.getName()}" th:text="${post?.getName()}" >顶级岗位</option> <option th:each="post,iterStar:${postList}" th:value="${post?.getName()}"
th:text="${post?.getName()}">顶级岗位
</option>
</select> </select>
</div> </div>
</div> </div>
@ -49,8 +51,6 @@
</fieldset> </fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
@ -72,7 +72,7 @@
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/company/allPostByOrganization', url: '/company/allPostByOrganization',
method:"post", method: "post",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -86,62 +86,64 @@
limitName: 'pagesize', //每页数据量的参数名,默认:limit limitName: 'pagesize', //每页数据量的参数名,默认:limit
}, },
where: { where: {
organization:parentId organization: parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'name', width: 250, title: '名称'},
{field: 'dutiesname',width: 200,title: '名称'}, {field: 'dutiesname', width: 200, title: '名称'},
{field: 'aoname',width: 200,title: '归属行政组织名称'}, {field: 'aoname', width: 200, title: '归属行政组织名称'},
{field: 'aonumber',width: 200,title: '归属行政组织编号'}, {field: 'aonumber', width: 200, title: '归属行政组织编号'},
{field: 'jobname',width: 200,title: '职务类别'}, {field: 'jobname', width: 200, title: '职务类别'},
{field: 'rolename', width: 200, title: '权限名称'}, {field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'}, {field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiorname',width: 200,title: '上级名称'}, {field: 'superiorname', width: 200, title: '上级名称'},
{field: 'superiornumber',width: 200,title: '上级编号'}, {field: 'superiornumber', width: 200, title: '上级编号'},
{field: 'departmentname',width: 200,title: '部门'}, {field: 'departmentname', width: 200, title: '部门'},
{ {
field: 'state', title: '状态', minWidth: 80, templet: function (d) { field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
} }
} }
}, },
{title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display','none'); $("[data-field='rolename']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.name!==''){ if (data.name !== '') {
req.name = data.name; req.name = data.name;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.superior = parentId req.superior = parentId;
req.organization = organization req.organization = organization;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
@ -170,14 +172,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/post_detail?id='+data.id, content: '/post_detail?id=' + data.id,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'subclass') {
else if (obj.event == 'subclass'){
var index = layer.open({ var index = layer.open({
title: '子岗位', title: '子岗位',
type: 2, type: 2,
@ -185,14 +186,13 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/findPostByParentId?parentId='+data.id content: '/findPostByParentId?parentId=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'add_role') {
else if (obj.event == 'add_role'){
/*var index = layer.open({ /*var index = layer.open({
title: '设置权限', title: '设置权限',
@ -210,7 +210,7 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'], area: ['893px', '600px'],
content: '/postRoleView?id='+data.id content: '/postRoleView?id=' + data.id
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);

96
target/classes/templates/pages/user/table-user.html

@ -36,7 +36,10 @@
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="company" lay-filter="company"> <select name="company" lay-filter="company">
<option value="" selected>请选择公司</option> <option value="" selected>请选择公司</option>
<option th:each="administrationP,iterStar:${administrationPList}" th:value="${administrationP?.getId()}" th:text="${administrationP?.getName()}" >恒信高科能源有限公司</option> <option th:each="administrationP,iterStar:${administrationPList}"
th:value="${administrationP?.getId()}"
th:text="${administrationP?.getName()}">恒信高科能源有限公司
</option>
</select> </select>
</div> </div>
</div> </div>
@ -57,7 +60,9 @@
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button> <button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div> </div>
</div> </div>
</form> </form>
@ -84,7 +89,7 @@
table.render({ table.render({
elem: '#currentTableId', elem: '#currentTableId',
url: '/sys/findUsers', url: '/sys/findUsers',
method:"POST", method: "POST",
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -99,34 +104,37 @@
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true}, {field: 'id', width: 80, title: 'ID', sort: true},
{field: 'number', width: 100, title: '工号', sort: true}, {field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'}, {field: 'name', width: 100, title: '姓名'},
{field: 'gender', width: 80, title: '性别',templet: function (d) { {
if (d.gender == 1){ field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender == 1) {
return "男性"; return "男性";
}else if(d.gender == 2){ } else if (d.gender == 2) {
return "女性"; return "女性";
}else if(d.gender == 3){ } else if (d.gender == 3) {
return "中性"; return "中性";
}else{ } else {
return ""; return "";
} }
}}, }
},
{ {
field: 'state', title: '状态', minWidth: 80, templet: function (d) { field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){ if (d.state == 1) {
return "启用"; return "启用";
}else if(d.state == 2){ } else if (d.state == 2) {
return "禁用"; return "禁用";
}else{ } else {
return ""; return "";
} }
} }
@ -158,34 +166,35 @@
{field: 'workpostname', width: 200, title: '工段'}, {field: 'workpostname', width: 200, title: '工段'},
{field: 'positionname', width: 200, title: '职位'}, {field: 'positionname', width: 200, title: '职位'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50, 100], limits: [10, 15, 20, 25, 50, 100],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display','none'); $("[data-field='rolename']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
data=data.field; data = data.field;
let req={}; let req = {};
if (data.name!==''){ if (data.name !== '') {
req.name=data.name; req.name = data.name;
} }
if (data.company!==''){ if (data.company !== '') {
req.company=data.company; req.company = data.company;
} }
if (data.adminorg!==''){ if (data.adminorg !== '') {
req.adminorg=data.adminorg; req.adminorg = data.adminorg;
} }
if (data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
if (data.number != ''){ if (data.number != '') {
req.number = data.number; req.number = data.number;
} }
//执行搜索重载 //执行搜索重载
@ -199,14 +208,14 @@
return false; return false;
}); });
form.on('select(company)',function (data){ form.on('select(company)', function (data) {
$.ajax({ $.ajax({
url:"/repository/findPostByCompany?company=0"+data.value, url: "/repository/findPostByCompany?company=0" + data.value,
type:'get', type: 'get',
dataType:'json', dataType: 'json',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function(d){ success: function (d) {
if(data.value != "") { if (data.value != "") {
$('#adminorg').empty(); $('#adminorg').empty();
$('#adminorg').append(new Option("请选择部门", "")); $('#adminorg').append(new Option("请选择部门", ""));
@ -214,13 +223,13 @@
$('#adminorg').append(new Option(item.name, item.id));//往下拉菜单里添加元素 $('#adminorg').append(new Option(item.name, item.id));//往下拉菜单里添加元素
}); });
form.render(); form.render();
}else{ } else {
$('#adminorg').empty(); $('#adminorg').empty();
form.render(); form.render();
} }
} }
}) })
}) });
//监听表格复选框选择 //监听表格复选框选择
@ -235,17 +244,16 @@
title: '查看用户', title: '查看用户',
type: 2, type: 2,
shade: 0.2, shade: 0.2,
maxmin:true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/user_detail?id='+data.number, content: '/user_detail?id=' + data.number,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
return false; return false;
} } else if (obj.event == 'add_role') {
else if(obj.event == 'add_role'){
layer.open({ layer.open({
type: 2, type: 2,
title: '权限信息', title: '权限信息',
@ -253,7 +261,7 @@
shade: false, shade: false,
maxmin: true, //开启最大化最小化按钮 maxmin: true, //开启最大化最小化按钮
area: ['70%', '70%'], area: ['70%', '70%'],
content: '/userRoleView?id='+data.id content: '/userRoleView?id=' + data.id
}); });
} }
}); });

108
target/classes/templates/pages/warehouse/warehouseByParentId.html

@ -25,12 +25,12 @@
<input type="text" name="place_x" autocomplete="off" class="layui-input"> <input type="text" name="place_x" autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
<!-- <div class="layui-inline">--> <!-- <div class="layui-inline">-->
<!-- <label class="layui-form-label">库位列</label>--> <!-- <label class="layui-form-label">库位列</label>-->
<!-- <div class="layui-input-inline">--> <!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">--> <!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">库位层</label> <label class="layui-form-label">库位层</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
@ -67,7 +67,8 @@
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 创建库位</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 创建库位</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="addList"> 批量创建</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="addList"> 批量创建</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位
</button>
</div> </div>
</script> </script>
@ -81,7 +82,8 @@
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} > <input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script> </script>
</div> </div>
@ -95,7 +97,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/place/findPlace?did='+parentId, url: '/place/findPlace?did=' + parentId,
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -109,46 +111,48 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type: "0"
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0 , statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg , msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count , countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data , dataName: 'data' //规定数据列表的字段名称,默认:data
}, },
toolbar: '#toolbarDemo', toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'], defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [ cols: [
[
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true}, {field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname',width: 200,title: '物料名称'}, {field: 'mname', width: 200, title: '物料名称'},
{field: 'depositoryName',width: 200,title: '仓库名称'}, {field: 'depositoryName', width: 200, title: '仓库名称'},
{field: 'depositoryCode',width: 200,title: '仓库编码'}, {field: 'depositoryCode', width: 200, title: '仓库编码'},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]], ]
],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done: function () { done: function () {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display', 'none');
} }
}); });
// 监听搜索操作 // 监听搜索操作
form.on('submit(data-search-btn)', function (data) { form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
data=data.field; data = data.field;
if (data.place_x!==''){ if (data.place_x !== '') {
req.place_x=data.place_x; req.place_x = data.place_x;
} }
if(data.place_z!== ''){ if (data.place_z !== '') {
req.place_x = data.place_z; req.place_x = data.place_z;
} }
if(data.state != ''){ if (data.state != '') {
req.state = data.state; req.state = data.state;
} }
req.did = parentId; req.did = parentId;
@ -175,13 +179,12 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/insertPlace?depositoryId='+parentId, content: '/insertPlace?depositoryId=' + parentId,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
}); });
} } else if (obj.event === 'delete') { // 监听删除操作
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data; , data = checkStatus.data;
var req = {}; var req = {};
@ -203,7 +206,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -220,12 +223,11 @@
} }
} }
}) })
}else{ } else {
layer.msg("未选中记录,请确认!"); layer.msg("未选中记录,请确认!");
return false; return false;
} }
} } else if (obj.event === 'addList') {
else if(obj.event === 'addList'){
var index = layer.open({ var index = layer.open({
title: '批量增加', title: '批量增加',
type: 2, type: 2,
@ -233,7 +235,7 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/insertListPlace?depositoryId='+parentId, content: '/insertListPlace?depositoryId=' + parentId,
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
@ -257,8 +259,8 @@
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/placeView?id='+data.id, content: '/placeView?id=' + data.id,
end:function () { end: function () {
req = {}; req = {};
req.did = parentId; req.did = parentId;
//执行搜索重载 //执行搜索重载
@ -277,24 +279,24 @@
}); });
return false; return false;
} else if (obj.event === 'delete') { } else if (obj.event === 'delete') {
var req={}; var req = {};
req.id=data.id; req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({ $.ajax({
url: '/place/deletePlace', url: '/place/deletePlace',
dataType:'json', dataType: 'json',
type:'POST', type: 'POST',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
data:JSON.stringify(req), data: JSON.stringify(req),
beforeSend:function () { beforeSend: function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success:function(data){ success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if(data.status >= 300){ if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
}else{ } else {
obj.del(); obj.del();
layer.msg("删除成功", { layer.msg("删除成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
@ -309,9 +311,9 @@
//监听状态操作 //监听状态操作
form.on('switch(changeState)', function(obj){ form.on('switch(changeState)', function (obj) {
var req = new Map; var req = new Map;
if(obj.elem.checked){ if (obj.elem.checked) {
req["state"] = 1 req["state"] = 1
} }
req["id"] = this.value; req["id"] = this.value;
@ -328,13 +330,13 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
return;
} else { } else {
layer.msg("修改成功", { layer.msg("修改成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){ }, function () {
window.location='/warehouseByParentId?parentId='+parentId; window.location = '/warehouseByParentId?parentId=' + parentId;
}) })
} }
} }

Loading…
Cancel
Save