Browse Source

优化部分移动端页面

lwx_dev
erdanergou 3 years ago
parent
commit
6a9fa27736
  1. 44
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  2. 36
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 102
      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. 128
      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. 111
      src/main/resources/static/js/lay-module/layuimini/miniMenu.js
  11. 104
      src/main/resources/static/js/lay-module/layuimini/miniTab.js
  12. 5
      src/main/resources/static/js/lay-module/layuimini/miniTheme.js
  13. 151
      src/main/resources/templates/index_mobile.html
  14. 224
      src/main/resources/templates/pages/application/application-out.html
  15. 64
      src/main/resources/templates/pages/application/application-out_min.html
  16. 2
      src/main/resources/templates/pages/application/application-transfer.html
  17. 81
      src/main/resources/templates/pages/company/company-out.html
  18. 140
      src/main/resources/templates/pages/company/company-out_back.html
  19. 78
      src/main/resources/templates/pages/company/companyByParentId.html
  20. 142
      src/main/resources/templates/pages/depository/table-in.html
  21. 162
      src/main/resources/templates/pages/depository/table-out.html
  22. 54
      src/main/resources/templates/pages/material/material-add.html
  23. 978
      src/main/resources/templates/pages/material/material-out.html
  24. 890
      src/main/resources/templates/pages/material/material-out_back.html
  25. 44
      src/main/resources/templates/pages/material/material-view.html
  26. 146
      src/main/resources/templates/pages/materialBarCode/materialBarCode_out.html
  27. 459
      src/main/resources/templates/pages/materialtype/materialTypeByParentId.html
  28. 1035
      src/main/resources/templates/pages/materialtype/materialType_view.html
  29. 236
      src/main/resources/templates/pages/other/welcome_mobile.html
  30. 100
      src/main/resources/templates/pages/post/post-out.html
  31. 178
      src/main/resources/templates/pages/user/table-user.html
  32. 616
      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. 104
      target/classes/static/js/lay-module/layuimini/miniTab.js
  37. 5
      target/classes/static/js/lay-module/layuimini/miniTheme.js
  38. 224
      target/classes/templates/pages/application/application-out.html
  39. 64
      target/classes/templates/pages/application/application-out_min.html
  40. 2
      target/classes/templates/pages/application/application-transfer.html
  41. 81
      target/classes/templates/pages/company/company-out.html
  42. 140
      target/classes/templates/pages/company/company-out_back.html
  43. 78
      target/classes/templates/pages/company/companyByParentId.html
  44. 142
      target/classes/templates/pages/depository/table-in.html
  45. 162
      target/classes/templates/pages/depository/table-out.html
  46. 54
      target/classes/templates/pages/material/material-add.html
  47. 978
      target/classes/templates/pages/material/material-out.html
  48. 890
      target/classes/templates/pages/material/material-out_back.html
  49. 44
      target/classes/templates/pages/material/material-view.html
  50. 146
      target/classes/templates/pages/materialBarCode/materialBarCode_out.html
  51. 459
      target/classes/templates/pages/materialtype/materialTypeByParentId.html
  52. 1035
      target/classes/templates/pages/materialtype/materialType_view.html
  53. 100
      target/classes/templates/pages/post/post-out.html
  54. 178
      target/classes/templates/pages/user/table-user.html
  55. 616
      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) {

36
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();
mv.setViewName("pages/other/welcome"); 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");
}
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;
} }

102
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;
/** /**
@ -80,6 +111,43 @@ 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() {

128
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,11 +817,11 @@ 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);
jsonObject = new JSONObject(stringObjectMap); jsonObject = new JSONObject(stringObjectMap);
} }
@ -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

111
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,35 +149,69 @@ 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()){
var menu = 'multi_module_' + index; headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染
var id = menu + "HeaderId"; leftMenuCheckDefault = 'layui-hide';
var topMenuItemHtml = ""; var menu = 'multi_module_' + index;
topMenuItemHtml = me.compileMenu({ let title = val.title;
className: headerMenuCheckDefault, if(title === '仓库管理'){
menu: menu, leftMenuCheckDefault = 'layui-this';
id: id, }
title: val.title, var id = menu + "HeaderId";
href: "", var topMenuItemHtml = "";
target: "", topMenuItemHtml = me.compileMenu({
children: "" className: headerMenuCheckDefault,
}); menu: menu,
leftMenuHtml += me.renderLeftMenu(val.child, { id: id,
parentMenuId: menu, title: title,
childOpenClass: childOpenClass, href: "",
leftMenuCheckDefault: leftMenuCheckDefault target: "",
}); children: ""
headerMobileMenuHtml += me.compileMenu({ });
id: id, leftMenuHtml += me.renderLeftMenu(val.child, {
menu: menu, parentMenuId: menu,
id: id, childOpenClass: childOpenClass,
icon: val.icon, leftMenuCheckDefault: leftMenuCheckDefault
title: val.title, });
}, true); headerMobileMenuHtml += me.compileMenu({
headerMenuCheckDefault = ""; id: id,
leftMenuCheckDefault = "layui-hide"; menu: menu,
return topMenuItemHtml; icon: val.icon,
}).join(""); 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,
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,
title: val.title,
}, true);
headerMenuCheckDefault = "";
leftMenuCheckDefault = "layui-hide";
return topMenuItemHtml;
}).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');

104
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,33 +529,71 @@ 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 ;
// 自动展开菜单栏 // 如果是移动端
var addMenuClass = function ($element, type) { if(miniTab.checkMobile()){
if (type === 1) { addMenuClass = function ($element, type) {
$element.addClass('layui-this'); if (type === 1) {
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { $element.addClass('layui-this');
var moduleId = $element.parent().attr('id'); if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
$(".layuimini-header-menu li").attr('class', 'layui-nav-item'); var moduleId = $element.parent().attr('id');
$("#" + moduleId + "HeaderId").addClass("layui-this"); $(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); $("#" + moduleId + "HeaderId").addClass("layui-this");
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree 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 { } else {
addMenuClass($element.parent().parent(), 2);
$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 { };
$element.addClass('layui-nav-itemed'); }else{
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { addMenuClass = function ($element, type) {
var moduleId = $element.parent().attr('id'); if (type === 1) {
$(".layuimini-header-menu li").attr('class', 'layui-nav-item'); $element.addClass('layui-this');
$("#" + moduleId + "HeaderId").addClass("layui-this"); if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); var moduleId = $element.parent().attr('id');
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); $(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
} else {
addMenuClass($element.parent().parent(), 2);
}
} else { } else {
addMenuClass($element.parent().parent(), 2);
$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");
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
} else {
addMenuClass($element.parent().parent(), 2);
}
} }
} };
}; }
// 自动展开菜单栏
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,

151
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 class="layui-nav-item" lay-unselect>
<a href="javascript:" data-refresh="刷新"><i class="fa fa-refresh"></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-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({
window.location = '/login'; 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';
});
}
}); });
}); });
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>

224
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">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value="" <div class="inputdiv">
onblur="selectCode(this)" <input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
class="layui-input" lay-verify="required"> onblur="selectCode(this)"
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,37 +783,46 @@
$("#quantity" + id).val("") $("#quantity" + id).val("")
}); });
} else { } else {
var req = {}; let val = $("#quantity" + id).val();
req.code = mcode; if(val !== null && val !== undefined && val !== '') {
req.quantity = $("#quantity" + id).val(); var req = {};
$.ajax({ req.code = mcode;
url: "/material/MaterialQuantityIsTrue", req.quantity = val;
type: "post", $.ajax({
data: JSON.stringify(req), url: "/material/MaterialQuantityIsTrue",
dataType: 'json', type: "post",
contentType: "application/json;charset=utf-8", data: JSON.stringify(req),
success: function (res) { dataType: 'json',
var flag = res.data; contentType: "application/json;charset=utf-8",
if (!flag) { // 如果当前数目不合适 success: function (res) {
layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () { var flag = res.data;
$("#quantity" + id).val(""); if (!flag) { // 如果当前数目不合适
// 获取对应元素 layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () {
var parent = obj.parentNode.parentNode.parentNode; $("#quantity" + id).val("");
var children = parent.childNodes[5]; // 获取对应元素
var codeChildren = parent.childNodes[7]; var parent = obj.parentNode.parentNode.parentNode;
var materialItem = children.childNodes[3].childNodes[1].childNodes; var children = parent.childNodes[5];
var materialName = materialItem[1]; var codeChildren = parent.childNodes[7];
var materialId = materialName.parentNode.parentNode.childNodes[3]; var materialItem = children.childNodes[3].childNodes[1].childNodes;
var codeItem = codeChildren.childNodes[3].childNodes; var materialName = materialItem[1];
var codeValue = codeItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3];
materialName.value = ""; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
materialId.value = ""; var codeValue = codeItem[1];
codeValue.value = ""; materialName.value = "";
}); materialId.value = "";
codeValue.value = "";
var idNumber = materialId.name.split("mid")[1];
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
});
}
} }
} });
}); }
} }
} }

64
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,44 +53,46 @@
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"}, [
{field: 'id', width: 100, title: '提交编号', sort: true}, {title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'code', width: 200, title: '提交编码', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'mname', width: 120, title: '物料名称'}, {field: 'code', width: 200, title: '提交编码', sort: true},
{field: 'mcode', width: 120, title: '物料编码'}, {field: 'mname', width: 120, title: '物料名称'},
{field: 'depositoryName', width: 120, title: '仓库名称'}, {field: 'mcode', width: 120, title: '物料编码'},
{field: 'pcode', width: 120, title: '库位编码'}, {field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'quantity', width: 80, title: '数量', sort: true}, {field: 'pcode', width: 120, title: '库位编码'},
{field: 'applicantName', width: 150, title: '申请人'}, {field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applicantName', width: 150, title: '申请人'},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'state', width: 200, title: '状态'}, {field: 'applyRemark', width: 200, title: '备注'},
{field: 'checkerName', width: 200, title: '处理人'} {field: 'state', 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) {
} }

81
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}, [
{field: 'id', width: 100, title: 'id', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'abbreviation',width: 200,title: '简称'}, {field: 'name', width: 250, title: '名称'},
{ {field: 'abbreviation', width: 200, title: '简称'},
field: 'state', title: '状态', minWidth: 80, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
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);

140
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}, [
{field: 'cid', width: 100, title: '公司', sort: true}, {type: "checkbox", width: 50},
{field: 'cname', width: 120, title: '公司名称', sort: true}, {field: 'cid', width: 100, title: '公司', sort: true},
{field: 'introduce',width: 200,title: '公司介绍',sort: true}, {field: 'cname', width: 120, title: '公司名称', sort: true},
{field:'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'introduce', width: 200, title: '公司介绍', sort: true},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
]], {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}
}); });
}) })
} }

78
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}, [
{field: 'id', width: 100, title: 'id', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'name', width: 200, title: '名称', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'abbreviation',width: 200,title: '简称',sort: true}, {field: 'name', width: 200, title: '名称', sort: true},
{ {field: 'abbreviation', width: 200, title: '简称', sort: true},
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
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);

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

@ -20,7 +20,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">开始日期</label> <label class="layui-form-label">开始日期</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="applyTime" id="date" placeholder="请选择开始日期" <input type="text" name="applyTime" id="date" placeholder="请选择开始日期"
autocomplete="off" class="layui-input"> autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
@ -29,20 +29,22 @@
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" placeholder="请选择仓库" class="layui-input" <input type="text" placeholder="请选择仓库" class="layui-input"
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,53 +125,54 @@
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}, [
{field: 'id', width: 100, title: '提交编号', sort: true}, {type: "checkbox", width: 50},
{field: 'aircode', width: 100, title: '提交编码', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'mname', width: 120, title: '物料名称'}, {field: 'aircode', width: 100, title: '提交编码', sort: true},
{field: 'mcode', width: 120, title: '存货编码'}, {field: 'mname', width: 120, title: '物料名称'},
{field: 'depositoryName', width: 120, title: '仓库名称'}, {field: 'mcode', width: 120, title: '存货编码'},
{field: 'quantity', width: 80, title: '数量', sort: true}, {field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'price', title: '金额', minWidth: 80, sort: true}, {field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantName', width: 150, title: '提交人'}, {field: 'price', title: '金额', minWidth: 80, sort: true},
{field: 'applicantTime', width: 200, title: '提交时间', sort: true}, {field: 'applicantName', width: 150, title: '提交人'},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applicantTime', width: 200, title: '提交时间', sort: true},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {field: 'applyRemark', width: 200, title: '备注'},
]], {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
}); });
}; };

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

@ -20,7 +20,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">开始日期</label> <label class="layui-form-label">开始日期</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="applyTime" id="date" placeholder="请选择开始日期" <input type="text" name="applyTime" id="date" placeholder="请选择开始日期"
autocomplete="off" class="layui-input"> autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
@ -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,71 +143,72 @@
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}, [
{field: 'id', width: 100, title: '申请编号', sort: true}, {type: "checkbox", width: 50},
{field: 'code', width: 100, title: '申请编码', sort: true}, {field: 'id', width: 100, title: '申请编号', sort: true},
{field: 'mname', width: 120, title: '物料名称'}, {field: 'code', width: 100, title: '申请编码', sort: true},
{field: 'mcode', width: 120, title: '存货编码'}, {field: 'mname', width: 120, title: '物料名称'},
{field: 'depositoryName', width: 120, title: '仓库名称'}, {field: 'mcode', width: 120, title: '存货编码'},
{field: 'quantity', width: 80, title: '数量', sort: true}, {field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'price', title: '金额', minWidth: 80, sort: true}, {field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'state', width: 150, title: '流程状态'}, {field: 'price', title: '金额', minWidth: 80, sort: true},
{ {field: 'state', width: 150, title: '流程状态'},
field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) { {
if (d.pass == 1){ field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) {
return "是"; if (d.pass == 1) {
}else{ return "是";
return "否"; } else {
return "否";
}
} }
} },
}, {field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantName', width: 150, title: '申请人'}, {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,

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

File diff suppressed because it is too large

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

@ -1,491 +1,495 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title> <title>layui</title>
<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">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all"> <link rel="stylesheet" href="/static/css/public.css" media="all">
</head> </head>
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<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">
<form class="layui-form layui-form-pane" action=""> <form class="layui-form layui-form-pane" action="">
<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" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" /> readonly/>
</div> <input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">种类</label>
<div class="layui-input-inline">
<!--<select name="materialTypeId" >
<option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType"
readonly/>
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId"
class="layui-input" style="display: none"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-inline">
<input type="text" name="mname" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div> </div>
<div class="layui-inline"> </fieldset>
<label class="layui-form-label">种类</label>
<div class="layui-input-inline">
<!--<select name="materialTypeId" >
<option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly />
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId" class="layui-input" style="display: none" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-inline">
<input type="text" name="mname" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div>
</fieldset>
<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-inline"> <div class="layui-input-inline">
<!-- <input type="text" th:value="${record.depository.getDname()}" name="dname" required lay-verify="required" autocomplete="off" class="layui-input" readonly="readonly">--> <!-- <input type="text" th:value="${record.depository.getDname()}" name="dname" required lay-verify="required" autocomplete="off" class="layui-input" readonly="readonly">-->
<img src="" id="qrCode"> <img src="" id="qrCode">
</div> </div>
</div> </div>
<!-- 状态展示--> <!-- 状态展示-->
<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="启用|禁用"
</script> lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</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"
</div> lay-event="import">导入数据
</script> </button>
</div>
</script>
<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">
<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}"
</script> lay-event="realDelete">彻底删除</a>
</script>
<script id="selectManager" type="text/html"> <script id="selectManager" type="text/html">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</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,
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: '弹窗内容',
skin: 'layui-layer-rim', skin: 'layui-layer-rim',
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({ $('#openSonByDepository').on('click', function () {
elem: "#currentTableId", layer.open({
url: '/material/material', type: 2,
parseData: function (res) { //res 即为原始返回的数据 title: '弹窗内容',
return { skin: 'layui-layer-rim',
"status": res.status, //解析接口状态 maxmin: true,
"message": res.statusInfo.message, //解析提示文本 shadeClose: true, //点击遮罩关闭层
"count": res.count, //解析数据长度 area: ['70%', '70%'],
"data": res.data //解析数据列表 move: '.layui-layer-title',
}; fixed: false,
}, content: '/selectDepository?type=2',
request: { });
pageName: 'page', //页码的参数名称,默认:page });
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
type:"0"
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
{type: "checkbox", width: 50},
{field: 'code',width: 150,title: '存货编码',sort: true},
{field: 'id', width: 100, title: 'EAS编号',hidden:true},
{field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName',width: 150,title: '物料种类'},
{field: 'version',width: 200,title: '规格型号',sort: false},
{field: 'texture',width: 100,title: '材质'},
{field: 'unit',width: 150,title: '计量单位'},
{field: 'depositoryCode',width: 250,title: '仓库编码',sort: true},
{field: "depositoryName",width: 120,title: "仓库名称"},
{field: 'quantity',width: 120,title:'数量',sort: true},
{field: 'price',width: 150,title: '单价',sort: true},
{field: 'amounts',width: 180,title: '总金额',sort: true},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'},
{title: '仓管员', minWidth: 80, templet: '#selectManager' ,align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done:function () {
$("[data-field='id']").css('display','none');
} table.render({
}); elem: "#currentTableId",
url: '/material/material',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
type: "0"
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号', hidden: true},
{field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName', width: 150, title: '物料种类'},
{field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture', width: 100, title: '材质'},
{field: 'unit', width: 150, title: '计量单位'},
{field: 'depositoryCode', width: 250, title: '仓库编码', sort: true},
{field: "depositoryName", width: 120, title: "仓库名称"},
{field: 'quantity', width: 120, title: '数量', sort: true},
{field: 'price', width: 150, title: '单价', sort: true},
{field: 'amounts', width: 180, title: '总金额', sort: true},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '仓管员', minWidth: 80, templet: '#selectManager', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done: function () {
$("[data-field='id']").css('display', 'none');
// 监听搜索操作 }
form.on('submit(data-search-btn)', function (data) { });
var req={};
data=data.field;
req.type=1;
if (data.mname!==''){
req.mname=data.mname;
}
if(data.depositoryId!== ''){
req.depositoryId = data.depositoryId;
}
if(data.materialTypeId !=''){
req.materialTypeId = data.materialTypeId;
}
if(data.state != ''){
req.state = data.state;
}
//执行搜索重载 // 监听搜索操作
table.reload('currentTableId', { form.on('submit(data-search-btn)', function (data) {
url: '/material/material', var req = {};
page: { data = data.field;
curr: 1 req.type = 1;
}, if (data.mname !== '') {
where: req req.mname = data.mname;
}, 'data'); }
return false; if (data.depositoryId !== '') {
}); req.depositoryId = data.depositoryId;
}
if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId;
}
if (data.state != '') {
req.state = data.state;
}
/** //执行搜索重载
* toolbar监听事件 table.reload('currentTableId', {
*/ url: '/material/material',
table.on('toolbar(currentTableFilter)', function (obj) { page: {
if (obj.event === 'add') { // 监听添加操作 curr: 1
var index = layer.open({ },
title: '申请提交', where: req
type: 2, }, 'data');
shade: 0.2, return false;
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/material_add',
});
$(window).on("resize", function () {
layer.full(index);
}); });
}
else if (obj.event === 'delete') { // 监听删除操作 /**
var checkStatus = table.checkStatus('currentTableId') * toolbar监听事件
, data = checkStatus.data; */
var req={}; table.on('toolbar(currentTableFilter)', function (obj) {
req.ids=[]; if (obj.event === 'add') { // 监听添加操作
for (i=0,len=data.length;i<len;i++){ var index = layer.open({
req.ids[i]=data[i].id; title: '申请提交',
} type: 2,
if(req.ids.length > 0) { shade: 0.2,
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { maxmin: true,
$.ajax({ shadeClose: true,
url: '/material/material_del', area: ['100%', '100%'],
dataType: 'json', content: '/material_add',
type: 'POST', });
contentType: "application/json;charset=utf-8", $(window).on("resize", function () {
data: JSON.stringify(req), layer.full(index);
beforeSend: function () { });
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); } else if (obj.event === 'delete') { // 监听删除操作
}, var checkStatus = table.checkStatus('currentTableId')
success: function (data) { , data = checkStatus.data;
layer.close(this.layerIndex); var req = {};
if (data.status >= 300) { req.ids = [];
layer.msg(data.statusInfo.message);//失败的表情 for (i = 0, len = data.length; i < len; i++) {
return; req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/material/material_del',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/material/material',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
})
} else { } else {
layer.msg("删除成功", { layer.msg("未选中记录,请确认!");
icon: 6,//成功的表情 return false;
time: 500 //1秒关闭(如果不配置,默认是3秒) }
}); } else if (obj.event === 'createQrCode') {
//执行搜索重载 $.ajax({
table.reload('currentTableId', { url: "/material/createQrCode?mid=3",
url: '/material/material', dataType: 'json',
page: { type: 'get',
curr: 1 contentType: "application/json;charset=utf-8",
success: function (data) {
if (data.status != 200) {
layer.msg(data.statusInfo.messgae)
} else {
$("#qrCode").attr("src", data.data);
}
}
})
}
});
var upLoader = upload.render({
elem: "#u_fileUpload", // 绑定元素
url: '/excel/importExcel', // 上传接口
accept: 'file', // 允许上传的格式,
exts: 'xls|xlsx|csv',
done: function (res) {
//如果上传成功
if (res.code == 200) {
var re = "";
for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"];
var texture = res.data.dataList[i]["texture"];
var price = res.data.dataList[i]["price"];
var quantity = res.data.dataList[i]["quantity"];
var unit = res.data.dataList[i]["unit"];
var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + price + " " + quantity + " " + unit + ":成功" + "</p>";
re += show
}
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
} }
}, 'data'); layer.open({
return false; type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
} else {
layer.msg(res.msg)
} }
}
}) },
}) error: function () {
} var demoText = $('#demoText');
else{ demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
layer.msg("未选中记录,请确认!"); demoText.find('.demo-reload').on('click', function () {
return false; upLoader.upload()
} })
}
else if(obj.event === 'createQrCode'){
$.ajax({
url:"/material/createQrCode?mid=3",
dataType: 'json',
type: 'get',
contentType: "application/json;charset=utf-8",
success:function (data) {
if(data.status != 200){
layer.msg(data.statusInfo.messgae)
}else{
$("#qrCode").attr("src",data.data);
} }
} });
})
}
});
var upLoader = upload.render({ //监听表格复选框选择
elem:"#u_fileUpload", // 绑定元素 table.on('checkbox(currentTableFilter)', function (obj) {
url:'/excel/importExcel', // 上传接口 console.log(obj)
accept:'file', // 允许上传的格式, });
exts:'xls|xlsx|csv',
done:function(res){
//如果上传成功
if(res.code == 200){
var re = ""
for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"]
var code = res.data.dataList[i]["code"]
var version = res.data.dataList[i]["version"]
var texture = res.data.dataList[i]["texture"]
var price = res.data.dataList[i]["price"]
var quantity = res.data.dataList[i]["quantity"]
var unit = res.data.dataList[i]["unit"]
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+price +" "+quantity +" "+unit +":成功" +"</p>"
re += show
}
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"
re += show
}
layer.open({
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
}else{
layer.msg(res.msg)
}
}, table.on('tool(currentTableFilter)', function (obj) {
error:function (){ let data = obj.data;
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
upLoader.upload()
})
}
})
//监听表格复选框选择 if (obj.event === 'detail') {
table.on('checkbox(currentTableFilter)', function (obj) { var index = layer.open({
console.log(obj) title: '仓库信息详情',
}); type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/material_view?id=' + data.id,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/material/material_del',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
table.on('tool(currentTableFilter)', function (obj) { } else {
let data = obj.data; obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
});
} else if (obj.event == 'realDelete') { //彻底删除
var req = {};
req.id = data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续', '取消'] //按钮
}, function () {
$.ajax({
url: '/material/realDeleteMaterial',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
if (obj.event === 'detail') { } else {
var index = layer.open({ obj.del();
title: '仓库信息详情', layer.msg("删除成功", {
type: 2, icon: 6,//成功的表情
shade: 0.2, time: 500 //1秒关闭(如果不配置,默认是3秒)
maxmin: true, });
shadeClose: true, }
area: ['100%', '100%'], }
content: '/material_view?id='+data.id, })
}); }, function () {
$(window).on("resize", function () { // 执行重加载
layer.full(index); table.reload('currentTableId', {
}); url: '/repository/warehouseRecord',
return false; page: {
} curr: 1
else if (obj.event === 'delete') { },
var req={}; where: {"parentId": parentId}
req.id=data.id; });
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/material/material_del',
dataType:'json',
type:'POST',
contentType: "application/json;charset=utf-8",
data:JSON.stringify(req),
beforeSend:function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });
},
success:function(data){
layer.close(this.layerIndex);
if(data.status >= 300){
layer.msg(data.statusInfo.message);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}); });
} } else if (obj.event == 'manager') {
}
}) layer.open({
}); type: 2,
} title: '仓管员信息',
else if (obj.event == 'realDelete'){ //彻底删除 shadeClose: true,
var req={}; shade: false,
req.id=data.id; maxmin: true, //开启最大化最小化按钮
layer.confirm('该操作会造成不可逆后果,是否继续?', { area: ['893px', '600px'],
btn: ['继续','取消'] //按钮 content: '/ManagerViewByMid?id=' + data.id
}, function(){
$.ajax({
url: '/material/realDeleteMaterial',
dataType:'json',
type:'POST',
contentType: "application/json;charset=utf-8",
data:JSON.stringify(req),
beforeSend:function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });
},
success:function(data){
layer.close(this.layerIndex);
if(data.status >= 300){
layer.msg(data.statusInfo.message);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}); });
}
} }
})
},function (){
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId":parentId}
});
}); });
}
else if (obj.event == 'manager'){
layer.open({ //监听状态操作
type: 2, form.on('switch(changeState)', function (obj) {
title: '仓管员信息', var req = new Map;
shadeClose: true, if (obj.elem.checked) {
shade: false, req["state"] = 1
maxmin: true, //开启最大化最小化按钮 }
area: ['893px', '600px'], req["id"] = this.value;
content: '/ManagerViewByMid?id='+data.id $.ajax({
}); url: "/material/material_edit",
} type: 'post',
}); dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
//监听状态操作 } else {
form.on('switch(changeState)', function(obj){ layer.msg("修改成功", {
var req = new Map icon: 6,//成功的表情
if(obj.elem.checked){ time: 500 //1秒关闭(如果不配置,默认是3秒)
req["state"] = 1 }, function () {
} window.location = '/material_out'
req["id"] = this.value })
$.ajax({ }
url: "/material/material_edit", }
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){
window.location='/material_out'
}) })
} });
}
})
}); });
});
</script> </script>
</body> </body>

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();

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

@ -15,7 +15,7 @@
<!-- 状态展示--> <!-- 状态展示-->
<input th:value="${mid}" style="display: none" id="mid"> <input th:value="${mid}" style="display: none" id="mid">
<input style="display: none" id="barCodeList"> <input style="display: none" id="barCodeList">
<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>
@ -34,14 +34,16 @@
<script> <script>
var barCode = []; var barCode = [];
function notice(){
}; function notice() {
function addBarCodeByMid(){
}; }
layui.use(['form', 'table','upload'], function () { function addBarCodeByMid() {
}
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}, [
{field: 'id',width:50,title:'id'}, {type: "checkbox", width: 50},
{field: 'mcode',width: 150,title: '存货编码',sort: true}, {field: 'id', width: 50, title: 'id'},
{field: 'bmcode',width: 150,title: '条形码',sort: true}, {field: 'mcode', width: 150, title: '存货编码', sort: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'bmcode', width: 150, title: '条形码', sort: true},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'texture', width: 100, title: '材质'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {field: 'unit', width: 150, title: '计量单位'},
]], {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,//成功的表情

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

@ -1,258 +1,263 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title> <title>layui</title>
<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">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all"> <link rel="stylesheet" href="/static/css/public.css" media="all">
</head> </head>
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<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">
<form class="layui-form layui-form-pane" action=""> <form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}"> <input id="parentId" style="display: none" th:value="${parentId}">
<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="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}"
</select> th:value="${materialType?.getTname()}"
</div> th:text="${materialType?.getTname()}">顶级类型
</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div> </div>
<div class="layui-inline"> </fieldset>
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div>
</fieldset>
<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>
</div> </div>
</script> </script>
<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">
<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>
</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'], function () { layui.use(['form', 'table'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table; table = layui.table;
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, //解析接口状态
"message": res.statusInfo.message, //解析提示文本 "message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度 "count": res.count, //解析数据长度
"data": res.data //解析数据列表 "data": res.data //解析数据列表
}; };
}, },
request: { request: {
pageName: 'page', //页码的参数名称,默认:page pageName: 'page', //页码的参数名称,默认:page
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}, [
{field: 'id', width: 100, title: '类型编号', sort: true}, {type: "checkbox", width: 50},
{field: 'tname', width: 120, title: '类型名称', sort: true}, {field: 'id', width: 100, title: '类型编号', sort: true},
{field: 'introduce',width: 200,title: '类型介绍',sort: true}, {field: 'tname', width: 120, title: '类型名称', sort: true},
{ {field: 'introduce', width: 200, title: '类型介绍', sort: true},
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
} return "禁用";
} }
}, }
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} },
]], {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
limits: [10, 15, 20, 25, 50], ]
limit: 10, ],
page: true, limits: [10, 15, 20, 25, 50],
skin: 'line' limit: 10,
}); page: true,
skin: 'line'
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req={};
data=data.field;
req.type=1;
if (data.tname!==''){
req.tname = data.tname;
}
if(data.state != ''){
req.state = data.state;
}
req.parentId = parentId
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '申请提交',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_add',
});
$(window).on("resize", function () {
layer.full(index);
}); });
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') // 监听搜索操作
, data = checkStatus.data; form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
req.ids=[]; data = data.field;
for (i=0,len=data.length;i<len;i++){ req.type = 1;
req.ids[i]=data[i].id; if (data.tname !== '') {
} req.tname = data.tname;
$.ajax({ }
url: '/materialType/materialType_del', if (data.state != '') {
dataType:'json', req.state = data.state;
type:'POST', }
contentType: "application/json;charset=utf-8", req.parentId = parentId;
data:JSON.stringify(req), //执行搜索重载
beforeSend:function () { table.reload('currentTableId', {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });
},
success:function(data){
layer.close(this.layerIndex);
if(data.status >= 300){
layer.msg(data.statusInfo.message);//失败的表情
return;
}else{
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '申请提交',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_add',
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
} }
}, 'data'); $.ajax({
return false; url: '/materialType/materialType_del',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
} }
} });
})
}
});
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj) console.log(obj)
}); });
table.on('tool(currentTableFilter)', function (obj) { table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data; let data = obj.data;
if (obj.event === 'detail') { if (obj.event === 'detail') {
var index = layer.open({ var index = layer.open({
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: '/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,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
}); });
}
} }
})
}); });
}
}); });
});
</script> </script>
</body> </body>

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

File diff suppressed because it is too large

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>

100
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}, [
{field: 'id', width: 100, title: 'id', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'dutiesname',width: 200,title: '名称'}, {field: 'name', width: 250, title: '名称'},
{field: 'aoname',width: 200,title: '归属行政组织名称'}, {field: 'dutiesname', width: 200, title: '名称'},
{field: 'aonumber',width: 200,title: '归属行政组织编号'}, {field: 'aoname', width: 200, title: '归属行政组织名称'},
{field: 'jobname',width: 200,title: '职务类别'}, {field: 'aonumber', width: 200, title: '归属行政组织编号'},
{field: 'rolename', width: 200, title: '权限名称'}, {field: 'jobname', width: 200, title: '职务类别'},
{field: 'depositoryName', width: 200, title: '管理仓库'}, {field: 'rolename', width: 200, title: '权限名称'},
{field: 'superiorname',width: 200,title: '上级名称'}, {field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiornumber',width: 200,title: '上级编号'}, {field: 'superiorname', width: 200, title: '上级名称'},
{field: 'departmentname',width: 200,title: '部门'}, {field: 'superiornumber', width: 200, title: '上级编号'},
{ {field: 'departmentname', width: 200, title: '部门'},
field: 'state', title: '状态', minWidth: 80, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
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);

178
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,93 +104,97 @@
}, },
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}, [
{field: 'id', width: 80, title: 'ID', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '工号', sort: true}, {field: 'id', width: 80, title: 'ID', sort: true},
{field: 'name', width: 100, title: '姓名'}, {field: 'number', width: 100, title: '工号', sort: true},
{field: 'gender', width: 80, title: '性别',templet: function (d) { {field: 'name', width: 100, title: '姓名'},
if (d.gender == 1){ {
return "男性"; field: 'gender', width: 80, title: '性别', templet: function (d) {
}else if(d.gender == 2){ if (d.gender == 1) {
return "女性"; return "男性";
}else if(d.gender == 3){ } else if (d.gender == 2) {
return "中性"; return "女性";
}else{ } else if (d.gender == 3) {
return ""; return "中性";
} } else {
}}, return "";
{ }
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){
return "启用";
}else if(d.state == 2){
return "禁用";
}else{
return "";
} }
} },
}, {
{ field: 'state', title: '状态', minWidth: 80, templet: function (d) {
field: 'health', title: '健康状况', minWidth: 160, templet: function (d) { if (d.state == 1) {
switch (d.health) { return "启用";
case 1: } else if (d.state == 2) {
return "良好"; return "禁用";
case 2: } else {
return "一般";
case 3:
return "较弱";
case 4:
return "有生理缺陷";
case 5:
return "残废";
default:
return ""; return "";
}
} }
} },
}, {
{field: 'rolename', width: 200, title: '权限名称'}, field: 'health', title: '健康状况', minWidth: 160, templet: function (d) {
{field: 'depositoryName', width: 200, title: '管理仓库'}, switch (d.health) {
{field: 'mobilephone', width: 200, title: '内线电话'}, case 1:
{field: 'companyname', width: 200, title: '公司名称'}, return "良好";
{field: 'maindeparmentname', width: 200, title: '主部门'}, case 2:
{field: 'sunmaindeparmentname', width: 200, title: '岗位'}, return "一般";
{field: 'workpostname', width: 200, title: '工段'}, case 3:
{field: 'positionname', width: 200, title: '职位'}, return "较弱";
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} case 4:
]], return "有生理缺陷";
case 5:
return "残废";
default:
return "";
}
}
},
{field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'mobilephone', width: 200, title: '内线电话'},
{field: 'companyname', width: 200, title: '公司名称'},
{field: 'maindeparmentname', width: 200, title: '主部门'},
{field: 'sunmaindeparmentname', width: 200, title: '岗位'},
{field: 'workpostname', width: 200, title: '工段'},
{field: 'positionname', width: 200, title: '职位'},
{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
}); });
} }
}); });

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

@ -1,347 +1,349 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title> <title>layui</title>
<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">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all"> <link rel="stylesheet" href="/static/css/public.css" media="all">
</head> </head>
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<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">
<form class="layui-form layui-form-pane" action=""> <form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}"> <input id="parentId" style="display: none" th:value="${parentId}">
<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">
<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 class="layui-inline">-->
<!-- <label class="layui-form-label">库位列</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline">
<label class="layui-form-label">库位层</label>
<div class="layui-input-inline">
<input type="text" name="place_z" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">库位编码</label>
<div class="layui-input-inline">
<input type="text" name="code" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div> </div>
<!-- <div class="layui-inline">--> </fieldset>
<!-- <label class="layui-form-label">库位列</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline">
<label class="layui-form-label">库位层</label>
<div class="layui-input-inline">
<input type="text" name="place_z" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">库位编码</label>
<div class="layui-input-inline">
<input type="text" name="code" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div>
</fieldset>
<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-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"> 删除库位
</div> </button>
</script> </div>
</script>
<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">
<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>
</script> </script>
<!-- 状态展示--> <!-- 状态展示-->
<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="启用|禁用"
</script> lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</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'], function () { layui.use(['form', 'table'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table; table = layui.table;
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, //解析接口状态
"message": res.statusInfo.message, //解析提示文本 "message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度 "count": res.count, //解析数据长度
"data": res.data //解析数据列表 "data": res.data //解析数据列表
}; };
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
type:"0"
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
{type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname',width: 200,title: '物料名称'},
{field: 'depositoryName',width: 200,title: '仓库名称'},
{field: 'depositoryCode',width: 200,title: '仓库编码'},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done: function () {
$("[data-field='id']").css('display','none');
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req={};
data=data.field;
if (data.place_x!==''){
req.place_x=data.place_x;
}
if(data.place_z!== ''){
req.place_x = data.place_z;
}
if(data.state != ''){
req.state = data.state;
}
req.did = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/place/findPlace',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '库位增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertPlace?depositoryId='+parentId,
});
$(window).on("resize", function () {
layer.full(index);
});
}
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
$.ajax({
url: '/place/deletePlace',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success: function (data) { request: {
layer.close(this.layerIndex); pageName: 'page', //页码的参数名称,默认:page
if (data.status >= 300) { limitName: 'size' //每页数据量的参数名,默认:limit
layer.msg(data.statusInfo.message);//失败的表情 },
return; where: {
} else { type: "0"
layer.msg("删除成功", { },
icon: 6,//成功的表情 response: {
time: 500 //1秒关闭(如果不配置,默认是3秒) statusName: 'status' //规定数据状态的字段名称,默认:code
}); , statusCode: 200 //规定成功的状态码,默认:0
//执行搜索重载 , msgName: 'message' //规定状态信息的字段名称,默认:msg
table.reload('currentTableId', { , countName: 'count' //规定数据总数的字段名称,默认:count
url: '/place/findPlace', , dataName: 'data' //规定数据列表的字段名称,默认:data
page: { },
curr: 1 toolbar: '#toolbarDemo',
} defaultToolbar: ['filter', 'exports', 'print'],
}, 'data'); cols: [
return false; [
} {type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname', width: 200, title: '物料名称'},
{field: 'depositoryName', width: 200, title: '仓库名称'},
{field: 'depositoryCode', width: 200, title: '仓库编码'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done: function () {
$("[data-field='id']").css('display', 'none');
} }
})
}else{
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'addList'){
var index = layer.open({
title: '批量增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertListPlace?depositoryId='+parentId,
});
$(window).on("resize", function () {
layer.full(index);
}); });
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) { // 监听搜索操作
let data = obj.data; form.on('submit(data-search-btn)', function (data) {
var req = {};
if (obj.event === 'detail') { data = data.field;
var index = layer.open({ if (data.place_x !== '') {
title: '库位信息详情', req.place_x = data.place_x;
type: 2, }
shade: 0.2, if (data.place_z !== '') {
maxmin: true, req.place_x = data.place_z;
shadeClose: true, }
area: ['100%', '100%'], if (data.state != '') {
content: '/placeView?id='+data.id, req.state = data.state;
end:function () { }
req = {};
req.did = parentId; req.did = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/place/findPlace', url: '/place/findPlace',
page: { page: {
curr: 1 curr: 1
}, },
where: req where: req
}, 'data'); }, 'data');
return false; return false;
}
}); });
$(window).on("resize", function () {
layer.full(index); /**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '库位增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertPlace?depositoryId=' + parentId,
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
$.ajax({
url: '/place/deletePlace',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/place/findPlace',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
} else {
layer.msg("未选中记录,请确认!");
return false;
}
} else if (obj.event === 'addList') {
var index = layer.open({
title: '批量增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertListPlace?depositoryId=' + parentId,
});
$(window).on("resize", function () {
layer.full(index);
});
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
}); });
return false;
} else if (obj.event === 'delete') { table.on('tool(currentTableFilter)', function (obj) {
var req={}; let data = obj.data;
req.id=data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { if (obj.event === 'detail') {
$.ajax({ var index = layer.open({
url: '/place/deletePlace', title: '库位信息详情',
dataType:'json', type: 2,
type:'POST', shade: 0.2,
contentType: "application/json;charset=utf-8", maxmin: true,
data:JSON.stringify(req), shadeClose: true,
beforeSend:function () { area: ['100%', '100%'],
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); content: '/placeView?id=' + data.id,
}, end: function () {
success:function(data){ req = {};
layer.close(this.layerIndex); req.did = parentId;
if(data.status >= 300){ //执行搜索重载
layer.msg(data.statusInfo.message);//失败的表情 table.reload('currentTableId', {
return; url: '/place/findPlace',
}else{ page: {
obj.del(); curr: 1
layer.msg("删除成功", { },
icon: 6,//成功的表情 where: req
time: 500 //1秒关闭(如果不配置,默认是3秒) }, 'data');
return false;
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/place/deletePlace',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
}); });
}
} }
})
}); });
}
});
//监听状态操作 //监听状态操作
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: "/place/place_edit", url: "/place/place_edit",
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 {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){
window.location='/warehouseByParentId?parentId='+parentId;
})
}
}
}) } else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = '/warehouseByParentId?parentId=' + parentId;
})
}
}
})
});
}); });
});
</script> </script>
</body> </body>

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}

104
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,33 +529,71 @@ 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 ;
// 自动展开菜单栏 // 如果是移动端
var addMenuClass = function ($element, type) { if(miniTab.checkMobile()){
if (type === 1) { addMenuClass = function ($element, type) {
$element.addClass('layui-this'); if (type === 1) {
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { $element.addClass('layui-this');
var moduleId = $element.parent().attr('id'); if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
$(".layuimini-header-menu li").attr('class', 'layui-nav-item'); var moduleId = $element.parent().attr('id');
$("#" + moduleId + "HeaderId").addClass("layui-this"); $(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); $("#" + moduleId + "HeaderId").addClass("layui-this");
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree 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 { } else {
addMenuClass($element.parent().parent(), 2);
$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 { };
$element.addClass('layui-nav-itemed'); }else{
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { addMenuClass = function ($element, type) {
var moduleId = $element.parent().attr('id'); if (type === 1) {
$(".layuimini-header-menu li").attr('class', 'layui-nav-item'); $element.addClass('layui-this');
$("#" + moduleId + "HeaderId").addClass("layui-this"); if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); var moduleId = $element.parent().attr('id');
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); $(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
} else {
addMenuClass($element.parent().parent(), 2);
}
} else { } else {
addMenuClass($element.parent().parent(), 2);
$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");
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
} else {
addMenuClass($element.parent().parent(), 2);
}
} }
} };
}; }
// 自动展开菜单栏
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,

224
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">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value="" <div class="inputdiv">
onblur="selectCode(this)" <input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
class="layui-input" lay-verify="required"> onblur="selectCode(this)"
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,37 +783,46 @@
$("#quantity" + id).val("") $("#quantity" + id).val("")
}); });
} else { } else {
var req = {}; let val = $("#quantity" + id).val();
req.code = mcode; if(val !== null && val !== undefined && val !== '') {
req.quantity = $("#quantity" + id).val(); var req = {};
$.ajax({ req.code = mcode;
url: "/material/MaterialQuantityIsTrue", req.quantity = val;
type: "post", $.ajax({
data: JSON.stringify(req), url: "/material/MaterialQuantityIsTrue",
dataType: 'json', type: "post",
contentType: "application/json;charset=utf-8", data: JSON.stringify(req),
success: function (res) { dataType: 'json',
var flag = res.data; contentType: "application/json;charset=utf-8",
if (!flag) { // 如果当前数目不合适 success: function (res) {
layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () { var flag = res.data;
$("#quantity" + id).val(""); if (!flag) { // 如果当前数目不合适
// 获取对应元素 layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () {
var parent = obj.parentNode.parentNode.parentNode; $("#quantity" + id).val("");
var children = parent.childNodes[5]; // 获取对应元素
var codeChildren = parent.childNodes[7]; var parent = obj.parentNode.parentNode.parentNode;
var materialItem = children.childNodes[3].childNodes[1].childNodes; var children = parent.childNodes[5];
var materialName = materialItem[1]; var codeChildren = parent.childNodes[7];
var materialId = materialName.parentNode.parentNode.childNodes[3]; var materialItem = children.childNodes[3].childNodes[1].childNodes;
var codeItem = codeChildren.childNodes[3].childNodes; var materialName = materialItem[1];
var codeValue = codeItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3];
materialName.value = ""; var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
materialId.value = ""; var codeValue = codeItem[1];
codeValue.value = ""; materialName.value = "";
}); materialId.value = "";
codeValue.value = "";
var idNumber = materialId.name.split("mid")[1];
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
});
}
} }
} });
}); }
} }
} }

64
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,44 +53,46 @@
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"}, [
{field: 'id', width: 100, title: '提交编号', sort: true}, {title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'code', width: 200, title: '提交编码', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'mname', width: 120, title: '物料名称'}, {field: 'code', width: 200, title: '提交编码', sort: true},
{field: 'mcode', width: 120, title: '物料编码'}, {field: 'mname', width: 120, title: '物料名称'},
{field: 'depositoryName', width: 120, title: '仓库名称'}, {field: 'mcode', width: 120, title: '物料编码'},
{field: 'pcode', width: 120, title: '库位编码'}, {field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'quantity', width: 80, title: '数量', sort: true}, {field: 'pcode', width: 120, title: '库位编码'},
{field: 'applicantName', width: 150, title: '申请人'}, {field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applicantName', width: 150, title: '申请人'},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'state', width: 200, title: '状态'}, {field: 'applyRemark', width: 200, title: '备注'},
{field: 'checkerName', width: 200, title: '处理人'} {field: 'state', 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) {
} }

81
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}, [
{field: 'id', width: 100, title: 'id', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'abbreviation',width: 200,title: '简称'}, {field: 'name', width: 250, title: '名称'},
{ {field: 'abbreviation', width: 200, title: '简称'},
field: 'state', title: '状态', minWidth: 80, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
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);

140
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}, [
{field: 'cid', width: 100, title: '公司', sort: true}, {type: "checkbox", width: 50},
{field: 'cname', width: 120, title: '公司名称', sort: true}, {field: 'cid', width: 100, title: '公司', sort: true},
{field: 'introduce',width: 200,title: '公司介绍',sort: true}, {field: 'cname', width: 120, title: '公司名称', sort: true},
{field:'state', title:'状态', minWidth: 80, templet: '#switchTpl'}, {field: 'introduce', width: 200, title: '公司介绍', sort: true},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
]], {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}
}); });
}) })
} }

78
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}, [
{field: 'id', width: 100, title: 'id', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'name', width: 200, title: '名称', sort: true}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'abbreviation',width: 200,title: '简称',sort: true}, {field: 'name', width: 200, title: '名称', sort: true},
{ {field: 'abbreviation', width: 200, title: '简称', sort: true},
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
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);

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

@ -20,7 +20,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">开始日期</label> <label class="layui-form-label">开始日期</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="applyTime" id="date" placeholder="请选择开始日期" <input type="text" name="applyTime" id="date" placeholder="请选择开始日期"
autocomplete="off" class="layui-input"> autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
@ -29,20 +29,22 @@
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" placeholder="请选择仓库" class="layui-input" <input type="text" placeholder="请选择仓库" class="layui-input"
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,53 +125,54 @@
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}, [
{field: 'id', width: 100, title: '提交编号', sort: true}, {type: "checkbox", width: 50},
{field: 'aircode', width: 100, title: '提交编码', sort: true}, {field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'mname', width: 120, title: '物料名称'}, {field: 'aircode', width: 100, title: '提交编码', sort: true},
{field: 'mcode', width: 120, title: '存货编码'}, {field: 'mname', width: 120, title: '物料名称'},
{field: 'depositoryName', width: 120, title: '仓库名称'}, {field: 'mcode', width: 120, title: '存货编码'},
{field: 'quantity', width: 80, title: '数量', sort: true}, {field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'price', title: '金额', minWidth: 80, sort: true}, {field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantName', width: 150, title: '提交人'}, {field: 'price', title: '金额', minWidth: 80, sort: true},
{field: 'applicantTime', width: 200, title: '提交时间', sort: true}, {field: 'applicantName', width: 150, title: '提交人'},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applicantTime', width: 200, title: '提交时间', sort: true},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} {field: 'applyRemark', width: 200, title: '备注'},
]], {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
}); });
}; };

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

@ -20,7 +20,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">开始日期</label> <label class="layui-form-label">开始日期</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="applyTime" id="date" placeholder="请选择开始日期" <input type="text" name="applyTime" id="date" placeholder="请选择开始日期"
autocomplete="off" class="layui-input"> autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
@ -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,71 +143,72 @@
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}, [
{field: 'id', width: 100, title: '申请编号', sort: true}, {type: "checkbox", width: 50},
{field: 'code', width: 100, title: '申请编码', sort: true}, {field: 'id', width: 100, title: '申请编号', sort: true},
{field: 'mname', width: 120, title: '物料名称'}, {field: 'code', width: 100, title: '申请编码', sort: true},
{field: 'mcode', width: 120, title: '存货编码'}, {field: 'mname', width: 120, title: '物料名称'},
{field: 'depositoryName', width: 120, title: '仓库名称'}, {field: 'mcode', width: 120, title: '存货编码'},
{field: 'quantity', width: 80, title: '数量', sort: true}, {field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'price', title: '金额', minWidth: 80, sort: true}, {field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'state', width: 150, title: '流程状态'}, {field: 'price', title: '金额', minWidth: 80, sort: true},
{ {field: 'state', width: 150, title: '流程状态'},
field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) { {
if (d.pass == 1){ field: 'pass', title: '是否完成出库', minWidth: 120, templet: function (d) {
return "是"; if (d.pass == 1) {
}else{ return "是";
return "否"; } else {
return "否";
}
} }
} },
}, {field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantName', width: 150, title: '申请人'}, {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,

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

File diff suppressed because it is too large

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

@ -1,491 +1,495 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title> <title>layui</title>
<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">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all"> <link rel="stylesheet" href="/static/css/public.css" media="all">
</head> </head>
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<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">
<form class="layui-form layui-form-pane" action=""> <form class="layui-form layui-form-pane" action="">
<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" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" /> readonly/>
</div> <input type="text" name="depositoryId" class="layui-input" id="depositoryId"
style="display: none"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">种类</label>
<div class="layui-input-inline">
<!--<select name="materialTypeId" >
<option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType"
readonly/>
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId"
class="layui-input" style="display: none"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-inline">
<input type="text" name="mname" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div> </div>
<div class="layui-inline"> </fieldset>
<label class="layui-form-label">种类</label>
<div class="layui-input-inline">
<!--<select name="materialTypeId" >
<option value="" selected>请选择物料类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getId()}" th:text="${materialType?.getTname()}" >芯片类</option>
</select>-->
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly />
<input type="text" id="materialTypeId" placeholder="请选择物料类型" name="materialTypeId" class="layui-input" style="display: none" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-inline">
<input type="text" name="mname" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div>
</fieldset>
<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-inline"> <div class="layui-input-inline">
<!-- <input type="text" th:value="${record.depository.getDname()}" name="dname" required lay-verify="required" autocomplete="off" class="layui-input" readonly="readonly">--> <!-- <input type="text" th:value="${record.depository.getDname()}" name="dname" required lay-verify="required" autocomplete="off" class="layui-input" readonly="readonly">-->
<img src="" id="qrCode"> <img src="" id="qrCode">
</div> </div>
</div> </div>
<!-- 状态展示--> <!-- 状态展示-->
<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="启用|禁用"
</script> lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</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"
</div> lay-event="import">导入数据
</script> </button>
</div>
</script>
<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">
<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}"
</script> lay-event="realDelete">彻底删除</a>
</script>
<script id="selectManager" type="text/html"> <script id="selectManager" type="text/html">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</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,
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: '弹窗内容',
skin: 'layui-layer-rim', skin: 'layui-layer-rim',
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({ $('#openSonByDepository').on('click', function () {
elem: "#currentTableId", layer.open({
url: '/material/material', type: 2,
parseData: function (res) { //res 即为原始返回的数据 title: '弹窗内容',
return { skin: 'layui-layer-rim',
"status": res.status, //解析接口状态 maxmin: true,
"message": res.statusInfo.message, //解析提示文本 shadeClose: true, //点击遮罩关闭层
"count": res.count, //解析数据长度 area: ['70%', '70%'],
"data": res.data //解析数据列表 move: '.layui-layer-title',
}; fixed: false,
}, content: '/selectDepository?type=2',
request: { });
pageName: 'page', //页码的参数名称,默认:page });
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
type:"0"
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
{type: "checkbox", width: 50},
{field: 'code',width: 150,title: '存货编码',sort: true},
{field: 'id', width: 100, title: 'EAS编号',hidden:true},
{field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName',width: 150,title: '物料种类'},
{field: 'version',width: 200,title: '规格型号',sort: false},
{field: 'texture',width: 100,title: '材质'},
{field: 'unit',width: 150,title: '计量单位'},
{field: 'depositoryCode',width: 250,title: '仓库编码',sort: true},
{field: "depositoryName",width: 120,title: "仓库名称"},
{field: 'quantity',width: 120,title:'数量',sort: true},
{field: 'price',width: 150,title: '单价',sort: true},
{field: 'amounts',width: 180,title: '总金额',sort: true},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'},
{title: '仓管员', minWidth: 80, templet: '#selectManager' ,align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done:function () {
$("[data-field='id']").css('display','none');
} table.render({
}); elem: "#currentTableId",
url: '/material/material',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
type: "0"
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号', hidden: true},
{field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'typeName', width: 150, title: '物料种类'},
{field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture', width: 100, title: '材质'},
{field: 'unit', width: 150, title: '计量单位'},
{field: 'depositoryCode', width: 250, title: '仓库编码', sort: true},
{field: "depositoryName", width: 120, title: "仓库名称"},
{field: 'quantity', width: 120, title: '数量', sort: true},
{field: 'price', width: 150, title: '单价', sort: true},
{field: 'amounts', width: 180, title: '总金额', sort: true},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '仓管员', minWidth: 80, templet: '#selectManager', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done: function () {
$("[data-field='id']").css('display', 'none');
// 监听搜索操作 }
form.on('submit(data-search-btn)', function (data) { });
var req={};
data=data.field;
req.type=1;
if (data.mname!==''){
req.mname=data.mname;
}
if(data.depositoryId!== ''){
req.depositoryId = data.depositoryId;
}
if(data.materialTypeId !=''){
req.materialTypeId = data.materialTypeId;
}
if(data.state != ''){
req.state = data.state;
}
//执行搜索重载 // 监听搜索操作
table.reload('currentTableId', { form.on('submit(data-search-btn)', function (data) {
url: '/material/material', var req = {};
page: { data = data.field;
curr: 1 req.type = 1;
}, if (data.mname !== '') {
where: req req.mname = data.mname;
}, 'data'); }
return false; if (data.depositoryId !== '') {
}); req.depositoryId = data.depositoryId;
}
if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId;
}
if (data.state != '') {
req.state = data.state;
}
/** //执行搜索重载
* toolbar监听事件 table.reload('currentTableId', {
*/ url: '/material/material',
table.on('toolbar(currentTableFilter)', function (obj) { page: {
if (obj.event === 'add') { // 监听添加操作 curr: 1
var index = layer.open({ },
title: '申请提交', where: req
type: 2, }, 'data');
shade: 0.2, return false;
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/material_add',
});
$(window).on("resize", function () {
layer.full(index);
}); });
}
else if (obj.event === 'delete') { // 监听删除操作 /**
var checkStatus = table.checkStatus('currentTableId') * toolbar监听事件
, data = checkStatus.data; */
var req={}; table.on('toolbar(currentTableFilter)', function (obj) {
req.ids=[]; if (obj.event === 'add') { // 监听添加操作
for (i=0,len=data.length;i<len;i++){ var index = layer.open({
req.ids[i]=data[i].id; title: '申请提交',
} type: 2,
if(req.ids.length > 0) { shade: 0.2,
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { maxmin: true,
$.ajax({ shadeClose: true,
url: '/material/material_del', area: ['100%', '100%'],
dataType: 'json', content: '/material_add',
type: 'POST', });
contentType: "application/json;charset=utf-8", $(window).on("resize", function () {
data: JSON.stringify(req), layer.full(index);
beforeSend: function () { });
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); } else if (obj.event === 'delete') { // 监听删除操作
}, var checkStatus = table.checkStatus('currentTableId')
success: function (data) { , data = checkStatus.data;
layer.close(this.layerIndex); var req = {};
if (data.status >= 300) { req.ids = [];
layer.msg(data.statusInfo.message);//失败的表情 for (i = 0, len = data.length; i < len; i++) {
return; req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/material/material_del',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/material/material',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
})
} else { } else {
layer.msg("删除成功", { layer.msg("未选中记录,请确认!");
icon: 6,//成功的表情 return false;
time: 500 //1秒关闭(如果不配置,默认是3秒) }
}); } else if (obj.event === 'createQrCode') {
//执行搜索重载 $.ajax({
table.reload('currentTableId', { url: "/material/createQrCode?mid=3",
url: '/material/material', dataType: 'json',
page: { type: 'get',
curr: 1 contentType: "application/json;charset=utf-8",
success: function (data) {
if (data.status != 200) {
layer.msg(data.statusInfo.messgae)
} else {
$("#qrCode").attr("src", data.data);
}
}
})
}
});
var upLoader = upload.render({
elem: "#u_fileUpload", // 绑定元素
url: '/excel/importExcel', // 上传接口
accept: 'file', // 允许上传的格式,
exts: 'xls|xlsx|csv',
done: function (res) {
//如果上传成功
if (res.code == 200) {
var re = "";
for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"];
var texture = res.data.dataList[i]["texture"];
var price = res.data.dataList[i]["price"];
var quantity = res.data.dataList[i]["quantity"];
var unit = res.data.dataList[i]["unit"];
var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + price + " " + quantity + " " + unit + ":成功" + "</p>";
re += show
}
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
} }
}, 'data'); layer.open({
return false; type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
} else {
layer.msg(res.msg)
} }
}
}) },
}) error: function () {
} var demoText = $('#demoText');
else{ demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
layer.msg("未选中记录,请确认!"); demoText.find('.demo-reload').on('click', function () {
return false; upLoader.upload()
} })
}
else if(obj.event === 'createQrCode'){
$.ajax({
url:"/material/createQrCode?mid=3",
dataType: 'json',
type: 'get',
contentType: "application/json;charset=utf-8",
success:function (data) {
if(data.status != 200){
layer.msg(data.statusInfo.messgae)
}else{
$("#qrCode").attr("src",data.data);
} }
} });
})
}
});
var upLoader = upload.render({ //监听表格复选框选择
elem:"#u_fileUpload", // 绑定元素 table.on('checkbox(currentTableFilter)', function (obj) {
url:'/excel/importExcel', // 上传接口 console.log(obj)
accept:'file', // 允许上传的格式, });
exts:'xls|xlsx|csv',
done:function(res){
//如果上传成功
if(res.code == 200){
var re = ""
for (let i = 0; i < res.data.dataList.length; i++) {
var mname = res.data.dataList[i]["mname"]
var code = res.data.dataList[i]["code"]
var version = res.data.dataList[i]["version"]
var texture = res.data.dataList[i]["texture"]
var price = res.data.dataList[i]["price"]
var quantity = res.data.dataList[i]["quantity"]
var unit = res.data.dataList[i]["unit"]
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+price +" "+quantity +" "+unit +":成功" +"</p>"
re += show
}
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"
re += show
}
layer.open({
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
}else{
layer.msg(res.msg)
}
}, table.on('tool(currentTableFilter)', function (obj) {
error:function (){ let data = obj.data;
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
upLoader.upload()
})
}
})
//监听表格复选框选择 if (obj.event === 'detail') {
table.on('checkbox(currentTableFilter)', function (obj) { var index = layer.open({
console.log(obj) title: '仓库信息详情',
}); type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/material_view?id=' + data.id,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/material/material_del',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
table.on('tool(currentTableFilter)', function (obj) { } else {
let data = obj.data; obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
});
} else if (obj.event == 'realDelete') { //彻底删除
var req = {};
req.id = data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续', '取消'] //按钮
}, function () {
$.ajax({
url: '/material/realDeleteMaterial',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
if (obj.event === 'detail') { } else {
var index = layer.open({ obj.del();
title: '仓库信息详情', layer.msg("删除成功", {
type: 2, icon: 6,//成功的表情
shade: 0.2, time: 500 //1秒关闭(如果不配置,默认是3秒)
maxmin: true, });
shadeClose: true, }
area: ['100%', '100%'], }
content: '/material_view?id='+data.id, })
}); }, function () {
$(window).on("resize", function () { // 执行重加载
layer.full(index); table.reload('currentTableId', {
}); url: '/repository/warehouseRecord',
return false; page: {
} curr: 1
else if (obj.event === 'delete') { },
var req={}; where: {"parentId": parentId}
req.id=data.id; });
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/material/material_del',
dataType:'json',
type:'POST',
contentType: "application/json;charset=utf-8",
data:JSON.stringify(req),
beforeSend:function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });
},
success:function(data){
layer.close(this.layerIndex);
if(data.status >= 300){
layer.msg(data.statusInfo.message);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}); });
} } else if (obj.event == 'manager') {
}
}) layer.open({
}); type: 2,
} title: '仓管员信息',
else if (obj.event == 'realDelete'){ //彻底删除 shadeClose: true,
var req={}; shade: false,
req.id=data.id; maxmin: true, //开启最大化最小化按钮
layer.confirm('该操作会造成不可逆后果,是否继续?', { area: ['893px', '600px'],
btn: ['继续','取消'] //按钮 content: '/ManagerViewByMid?id=' + data.id
}, function(){
$.ajax({
url: '/material/realDeleteMaterial',
dataType:'json',
type:'POST',
contentType: "application/json;charset=utf-8",
data:JSON.stringify(req),
beforeSend:function () {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });
},
success:function(data){
layer.close(this.layerIndex);
if(data.status >= 300){
layer.msg(data.statusInfo.message);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}); });
}
} }
})
},function (){
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId":parentId}
});
}); });
}
else if (obj.event == 'manager'){
layer.open({ //监听状态操作
type: 2, form.on('switch(changeState)', function (obj) {
title: '仓管员信息', var req = new Map;
shadeClose: true, if (obj.elem.checked) {
shade: false, req["state"] = 1
maxmin: true, //开启最大化最小化按钮 }
area: ['893px', '600px'], req["id"] = this.value;
content: '/ManagerViewByMid?id='+data.id $.ajax({
}); url: "/material/material_edit",
} type: 'post',
}); dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
//监听状态操作 } else {
form.on('switch(changeState)', function(obj){ layer.msg("修改成功", {
var req = new Map icon: 6,//成功的表情
if(obj.elem.checked){ time: 500 //1秒关闭(如果不配置,默认是3秒)
req["state"] = 1 }, function () {
} window.location = '/material_out'
req["id"] = this.value })
$.ajax({ }
url: "/material/material_edit", }
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){
window.location='/material_out'
}) })
} });
}
})
}); });
});
</script> </script>
</body> </body>

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();

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

@ -15,7 +15,7 @@
<!-- 状态展示--> <!-- 状态展示-->
<input th:value="${mid}" style="display: none" id="mid"> <input th:value="${mid}" style="display: none" id="mid">
<input style="display: none" id="barCodeList"> <input style="display: none" id="barCodeList">
<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>
@ -34,14 +34,16 @@
<script> <script>
var barCode = []; var barCode = [];
function notice(){
}; function notice() {
function addBarCodeByMid(){
}; }
layui.use(['form', 'table','upload'], function () { function addBarCodeByMid() {
}
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}, [
{field: 'id',width:50,title:'id'}, {type: "checkbox", width: 50},
{field: 'mcode',width: 150,title: '存货编码',sort: true}, {field: 'id', width: 50, title: 'id'},
{field: 'bmcode',width: 150,title: '条形码',sort: true}, {field: 'mcode', width: 150, title: '存货编码', sort: true},
{field: 'mname', width: 120, title: '物料名称', sort: false}, {field: 'bmcode', width: 150, title: '条形码', sort: true},
{field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'mname', width: 120, title: '物料名称', sort: false},
{field: 'texture',width: 100,title: '材质'}, {field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'unit',width: 150,title: '计量单位'}, {field: 'texture', width: 100, title: '材质'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {field: 'unit', width: 150, title: '计量单位'},
]], {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,//成功的表情

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

@ -1,258 +1,263 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title> <title>layui</title>
<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">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all"> <link rel="stylesheet" href="/static/css/public.css" media="all">
</head> </head>
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<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">
<form class="layui-form layui-form-pane" action=""> <form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}"> <input id="parentId" style="display: none" th:value="${parentId}">
<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="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}"
</select> th:value="${materialType?.getTname()}"
</div> th:text="${materialType?.getTname()}">顶级类型
</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div> </div>
<div class="layui-inline"> </fieldset>
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div>
</fieldset>
<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>
</div> </div>
</script> </script>
<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">
<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>
</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'], function () { layui.use(['form', 'table'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table; table = layui.table;
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, //解析接口状态
"message": res.statusInfo.message, //解析提示文本 "message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度 "count": res.count, //解析数据长度
"data": res.data //解析数据列表 "data": res.data //解析数据列表
}; };
}, },
request: { request: {
pageName: 'page', //页码的参数名称,默认:page pageName: 'page', //页码的参数名称,默认:page
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}, [
{field: 'id', width: 100, title: '类型编号', sort: true}, {type: "checkbox", width: 50},
{field: 'tname', width: 120, title: '类型名称', sort: true}, {field: 'id', width: 100, title: '类型编号', sort: true},
{field: 'introduce',width: 200,title: '类型介绍',sort: true}, {field: 'tname', width: 120, title: '类型名称', sort: true},
{ {field: 'introduce', width: 200, title: '类型介绍', sort: true},
field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, sort: true, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
} return "禁用";
} }
}, }
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} },
]], {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
limits: [10, 15, 20, 25, 50], ]
limit: 10, ],
page: true, limits: [10, 15, 20, 25, 50],
skin: 'line' limit: 10,
}); page: true,
skin: 'line'
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req={};
data=data.field;
req.type=1;
if (data.tname!==''){
req.tname = data.tname;
}
if(data.state != ''){
req.state = data.state;
}
req.parentId = parentId
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '申请提交',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_add',
});
$(window).on("resize", function () {
layer.full(index);
}); });
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId') // 监听搜索操作
, data = checkStatus.data; form.on('submit(data-search-btn)', function (data) {
var req={}; var req = {};
req.ids=[]; data = data.field;
for (i=0,len=data.length;i<len;i++){ req.type = 1;
req.ids[i]=data[i].id; if (data.tname !== '') {
} req.tname = data.tname;
$.ajax({ }
url: '/materialType/materialType_del', if (data.state != '') {
dataType:'json', req.state = data.state;
type:'POST', }
contentType: "application/json;charset=utf-8", req.parentId = parentId;
data:JSON.stringify(req), //执行搜索重载
beforeSend:function () { table.reload('currentTableId', {
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });
},
success:function(data){
layer.close(this.layerIndex);
if(data.status >= 300){
layer.msg(data.statusInfo.message);//失败的表情
return;
}else{
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord', url: '/materialType/materialTypeRecord',
page: { page: {
curr: 1 curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '申请提交',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_add',
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
} }
}, 'data'); $.ajax({
return false; url: '/materialType/materialType_del',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
} }
} });
})
}
});
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj) console.log(obj)
}); });
table.on('tool(currentTableFilter)', function (obj) { table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data; let data = obj.data;
if (obj.event === 'detail') { if (obj.event === 'detail') {
var index = layer.open({ var index = layer.open({
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: '/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,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒) time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
}); });
}
} }
})
}); });
}
}); });
});
</script> </script>
</body> </body>

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

File diff suppressed because it is too large

100
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}, [
{field: 'id', width: 100, title: 'id', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '编号', sort: true}, {field: 'id', width: 100, title: 'id', sort: true},
{field: 'name', width: 250, title: '名称'}, {field: 'number', width: 100, title: '编号', sort: true},
{field: 'dutiesname',width: 200,title: '名称'}, {field: 'name', width: 250, title: '名称'},
{field: 'aoname',width: 200,title: '归属行政组织名称'}, {field: 'dutiesname', width: 200, title: '名称'},
{field: 'aonumber',width: 200,title: '归属行政组织编号'}, {field: 'aoname', width: 200, title: '归属行政组织名称'},
{field: 'jobname',width: 200,title: '职务类别'}, {field: 'aonumber', width: 200, title: '归属行政组织编号'},
{field: 'rolename', width: 200, title: '权限名称'}, {field: 'jobname', width: 200, title: '职务类别'},
{field: 'depositoryName', width: 200, title: '管理仓库'}, {field: 'rolename', width: 200, title: '权限名称'},
{field: 'superiorname',width: 200,title: '上级名称'}, {field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiornumber',width: 200,title: '上级编号'}, {field: 'superiorname', width: 200, title: '上级名称'},
{field: 'departmentname',width: 200,title: '部门'}, {field: 'superiornumber', width: 200, title: '上级编号'},
{ {field: 'departmentname', width: 200, title: '部门'},
field: 'state', title: '状态', minWidth: 80, templet: function (d) { {
if (d.state == 1){ field: 'state', title: '状态', minWidth: 80, templet: function (d) {
return "启用"; if (d.state == 1) {
}else if(d.state == 2){ return "启用";
return "禁用"; } else if (d.state == 2) {
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);

178
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,93 +104,97 @@
}, },
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}, [
{field: 'id', width: 80, title: 'ID', sort: true}, {type: "checkbox", width: 50},
{field: 'number', width: 100, title: '工号', sort: true}, {field: 'id', width: 80, title: 'ID', sort: true},
{field: 'name', width: 100, title: '姓名'}, {field: 'number', width: 100, title: '工号', sort: true},
{field: 'gender', width: 80, title: '性别',templet: function (d) { {field: 'name', width: 100, title: '姓名'},
if (d.gender == 1){ {
return "男性"; field: 'gender', width: 80, title: '性别', templet: function (d) {
}else if(d.gender == 2){ if (d.gender == 1) {
return "女性"; return "男性";
}else if(d.gender == 3){ } else if (d.gender == 2) {
return "中性"; return "女性";
}else{ } else if (d.gender == 3) {
return ""; return "中性";
} } else {
}}, return "";
{ }
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){
return "启用";
}else if(d.state == 2){
return "禁用";
}else{
return "";
} }
} },
}, {
{ field: 'state', title: '状态', minWidth: 80, templet: function (d) {
field: 'health', title: '健康状况', minWidth: 160, templet: function (d) { if (d.state == 1) {
switch (d.health) { return "启用";
case 1: } else if (d.state == 2) {
return "良好"; return "禁用";
case 2: } else {
return "一般";
case 3:
return "较弱";
case 4:
return "有生理缺陷";
case 5:
return "残废";
default:
return ""; return "";
}
} }
} },
}, {
{field: 'rolename', width: 200, title: '权限名称'}, field: 'health', title: '健康状况', minWidth: 160, templet: function (d) {
{field: 'depositoryName', width: 200, title: '管理仓库'}, switch (d.health) {
{field: 'mobilephone', width: 200, title: '内线电话'}, case 1:
{field: 'companyname', width: 200, title: '公司名称'}, return "良好";
{field: 'maindeparmentname', width: 200, title: '主部门'}, case 2:
{field: 'sunmaindeparmentname', width: 200, title: '岗位'}, return "一般";
{field: 'workpostname', width: 200, title: '工段'}, case 3:
{field: 'positionname', width: 200, title: '职位'}, return "较弱";
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} case 4:
]], return "有生理缺陷";
case 5:
return "残废";
default:
return "";
}
}
},
{field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'mobilephone', width: 200, title: '内线电话'},
{field: 'companyname', width: 200, title: '公司名称'},
{field: 'maindeparmentname', width: 200, title: '主部门'},
{field: 'sunmaindeparmentname', width: 200, title: '岗位'},
{field: 'workpostname', width: 200, title: '工段'},
{field: 'positionname', width: 200, title: '职位'},
{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
}); });
} }
}); });

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

@ -1,347 +1,349 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title> <title>layui</title>
<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">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all"> <link rel="stylesheet" href="/static/css/public.css" media="all">
</head> </head>
<body> <body>
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<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">
<form class="layui-form layui-form-pane" action=""> <form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}"> <input id="parentId" style="display: none" th:value="${parentId}">
<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">
<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 class="layui-inline">-->
<!-- <label class="layui-form-label">库位列</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline">
<label class="layui-form-label">库位层</label>
<div class="layui-input-inline">
<input type="text" name="place_z" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">库位编码</label>
<div class="layui-input-inline">
<input type="text" name="code" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div> </div>
<!-- <div class="layui-inline">--> </fieldset>
<!-- <label class="layui-form-label">库位列</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="place_x" autocomplete="off" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline">
<label class="layui-form-label">库位层</label>
<div class="layui-input-inline">
<input type="text" name="place_z" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">库位编码</label>
<div class="layui-input-inline">
<input type="text" name="code" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<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>
</div>
</div>
</form>
</div>
</fieldset>
<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-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"> 删除库位
</div> </button>
</script> </div>
</script>
<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">
<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>
</script> </script>
<!-- 状态展示--> <!-- 状态展示-->
<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="启用|禁用"
</script> lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</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'], function () { layui.use(['form', 'table'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
table = layui.table; table = layui.table;
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, //解析接口状态
"message": res.statusInfo.message, //解析提示文本 "message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度 "count": res.count, //解析数据长度
"data": res.data //解析数据列表 "data": res.data //解析数据列表
}; };
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
type:"0"
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
{type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname',width: 200,title: '物料名称'},
{field: 'depositoryName',width: 200,title: '仓库名称'},
{field: 'depositoryCode',width: 200,title: '仓库编码'},
{field: 'state', title:'状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done: function () {
$("[data-field='id']").css('display','none');
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req={};
data=data.field;
if (data.place_x!==''){
req.place_x=data.place_x;
}
if(data.place_z!== ''){
req.place_x = data.place_z;
}
if(data.state != ''){
req.state = data.state;
}
req.did = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/place/findPlace',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '库位增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertPlace?depositoryId='+parentId,
});
$(window).on("resize", function () {
layer.full(index);
});
}
else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
$.ajax({
url: '/place/deletePlace',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}, },
success: function (data) { request: {
layer.close(this.layerIndex); pageName: 'page', //页码的参数名称,默认:page
if (data.status >= 300) { limitName: 'size' //每页数据量的参数名,默认:limit
layer.msg(data.statusInfo.message);//失败的表情 },
return; where: {
} else { type: "0"
layer.msg("删除成功", { },
icon: 6,//成功的表情 response: {
time: 500 //1秒关闭(如果不配置,默认是3秒) statusName: 'status' //规定数据状态的字段名称,默认:code
}); , statusCode: 200 //规定成功的状态码,默认:0
//执行搜索重载 , msgName: 'message' //规定状态信息的字段名称,默认:msg
table.reload('currentTableId', { , countName: 'count' //规定数据总数的字段名称,默认:count
url: '/place/findPlace', , dataName: 'data' //规定数据列表的字段名称,默认:data
page: { },
curr: 1 toolbar: '#toolbarDemo',
} defaultToolbar: ['filter', 'exports', 'print'],
}, 'data'); cols: [
return false; [
} {type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname', width: 200, title: '物料名称'},
{field: 'depositoryName', width: 200, title: '仓库名称'},
{field: 'depositoryCode', width: 200, title: '仓库编码'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done: function () {
$("[data-field='id']").css('display', 'none');
} }
})
}else{
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'addList'){
var index = layer.open({
title: '批量增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertListPlace?depositoryId='+parentId,
});
$(window).on("resize", function () {
layer.full(index);
}); });
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) { // 监听搜索操作
let data = obj.data; form.on('submit(data-search-btn)', function (data) {
var req = {};
if (obj.event === 'detail') { data = data.field;
var index = layer.open({ if (data.place_x !== '') {
title: '库位信息详情', req.place_x = data.place_x;
type: 2, }
shade: 0.2, if (data.place_z !== '') {
maxmin: true, req.place_x = data.place_z;
shadeClose: true, }
area: ['100%', '100%'], if (data.state != '') {
content: '/placeView?id='+data.id, req.state = data.state;
end:function () { }
req = {};
req.did = parentId; req.did = parentId;
//执行搜索重载 //执行搜索重载
table.reload('currentTableId', { table.reload('currentTableId', {
url: '/place/findPlace', url: '/place/findPlace',
page: { page: {
curr: 1 curr: 1
}, },
where: req where: req
}, 'data'); }, 'data');
return false; return false;
}
}); });
$(window).on("resize", function () {
layer.full(index); /**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '库位增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertPlace?depositoryId=' + parentId,
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
$.ajax({
url: '/place/deletePlace',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/place/findPlace',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
} else {
layer.msg("未选中记录,请确认!");
return false;
}
} else if (obj.event === 'addList') {
var index = layer.open({
title: '批量增加',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/insertListPlace?depositoryId=' + parentId,
});
$(window).on("resize", function () {
layer.full(index);
});
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
}); });
return false;
} else if (obj.event === 'delete') { table.on('tool(currentTableFilter)', function (obj) {
var req={}; let data = obj.data;
req.id=data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { if (obj.event === 'detail') {
$.ajax({ var index = layer.open({
url: '/place/deletePlace', title: '库位信息详情',
dataType:'json', type: 2,
type:'POST', shade: 0.2,
contentType: "application/json;charset=utf-8", maxmin: true,
data:JSON.stringify(req), shadeClose: true,
beforeSend:function () { area: ['100%', '100%'],
this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] }); content: '/placeView?id=' + data.id,
}, end: function () {
success:function(data){ req = {};
layer.close(this.layerIndex); req.did = parentId;
if(data.status >= 300){ //执行搜索重载
layer.msg(data.statusInfo.message);//失败的表情 table.reload('currentTableId', {
return; url: '/place/findPlace',
}else{ page: {
obj.del(); curr: 1
layer.msg("删除成功", { },
icon: 6,//成功的表情 where: req
time: 500 //1秒关闭(如果不配置,默认是3秒) }, 'data');
return false;
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/place/deletePlace',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
}); });
}
} }
})
}); });
}
});
//监听状态操作 //监听状态操作
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: "/place/place_edit", url: "/place/place_edit",
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 {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){
window.location='/warehouseByParentId?parentId='+parentId;
})
}
}
}) } else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = '/warehouseByParentId?parentId=' + parentId;
})
}
}
})
});
}); });
});
</script> </script>
</body> </body>

Loading…
Cancel
Save