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")
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("/")
public ModelAndView Init(HttpServletRequest request) {
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
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);
return mv;
}
@ -158,8 +165,15 @@ public class PageController {
@GetMapping("/index")
public ModelAndView index(HttpServletRequest request) {
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
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);
return mv;
}
@ -204,6 +218,7 @@ public class PageController {
}
}
//定义首页
Map<String, Object> home = new HashMap<>();
Map<String, Object> homeInfo = new HashMap<>();
homeInfo.put("title", "首页");
@ -293,15 +308,24 @@ public class PageController {
}
@GetMapping("/welcome")
public ModelAndView welcome() {
public ModelAndView welcome(HttpServletRequest request) {
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) {
{
put("beigin", 0);
put("size", 6);
}
};
mv.addObject("depositoryCount", depositoryService.findAllCountByNoDelete());
mv.addObject("allPrice", materialService.findAllPriceNoDelete());
mv.addObject("allMaterial", materialService.findMaterialAll().size());
@ -368,6 +392,10 @@ public class PageController {
mv.setViewName("pages/material/material-out");
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
Integer isadmin = userToken.getIsadmin();
// 获取当天时间戳
String currentDate = DateUtil.getCurrentDate();
Long aLong = DateUtil.DateTimeByMonthToTimeStamp(currentDate);
mv.addObject("nowDay", aLong);
if (isadmin == null) {
isadmin = 1;
}

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

@ -7,42 +7,65 @@ import java.util.List;
/**
* 产品信息记录库存(material)
*
* @author Dreamchaser
* @version 1.0.0 2021-05-20
*/
@Data
public class Material {
/** 版本号 */
/**
* 版本号
*/
private static final long serialVersionUID = 4604245526757565755L;
/** 存储id */
/**
* 存储id
*/
private Integer id;
/** 仓库id */
/**
* 仓库id
*/
private Integer depositoryId;
/** 物料名称 */
/**
* 物料名称
*/
private String mname;
/** 数量 */
/**
* 数量
*/
private Integer quantity;
/** 总金额 */
/**
* 总金额
*/
private Double amounts;
/** 物料种类id */
/**
* 物料种类id
*/
private Long materialTypeId;
/** 物料状态 */
/**
* 物料状态
*/
private Integer state;
/** 存货编码 */
private String code;
/**
* 存货编码
*/
private String code;
/** 规格型号 */
/**
* 规格型号
*/
private String version;
/** 单价 */
/**
* 单价
*/
private Double price;
/**
* 类型名称
@ -54,16 +77,24 @@ public class Material {
*/
private List<MaterialAndBarCode> materialAndBarCodeList;
/** 物料类型 */
/**
* 物料类型
*/
private MaterialType materialType;
/** 所属仓库 */
/**
* 所属仓库
*/
private Depository depository;
/** 计量单位 */
/**
* 计量单位
*/
private String unit;
/** 材质 */
/**
* 材质
*/
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="texture" property="texture" jdbcType="VARCHAR"/>
<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>
<!-- 字段映射-->
@ -37,6 +42,11 @@
<result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" 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">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" />
@ -72,17 +82,17 @@
<!-- 表查询字段 -->
<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 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 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>
@ -122,6 +132,21 @@
<if test="code != null and code != '' ">
and m.code = #{code}
</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
</select>
@ -156,6 +181,21 @@
<if test="code != null and code != '' ">
and code = #{code}
</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
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
@ -195,6 +235,21 @@
<if test="code != null and code != '' ">
and code = #{code}
</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
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
@ -230,6 +285,21 @@
<if test="code != null and code != '' ">
and code = #{code}
</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
</select>
@ -300,6 +370,21 @@
<if test="tname != null and tname != ''">
AND tname LIKE CONCAT('%', #{tname}, '%')
</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
</select>
@ -371,7 +456,7 @@
<!-- 插入数据 -->
<insert id="insertMaterial" useGeneratedKeys="true" keyProperty="id">
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 (
#{id},
<if test="depositoryId != null">
@ -405,11 +490,16 @@
0,
</if>
<if test="depositoryCode != null">
#{depositoryCode}
#{depositoryCode},
</if>
<if test="depositoryCode == null">
''
'',
</if>
#{producedDate},
#{shelfLife},
#{brand},
#{productionPlace},
#{remark}
)
</insert>
@ -516,7 +606,23 @@
number_of_temporary = #{numberOfTemporary},
</if>
<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>
</set>
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.MaterialAndBarCode;
import com.dreamchaser.depository_manage.utils.DateUtil;
import lombok.Data;
import java.math.BigInteger;
@ -119,6 +120,37 @@ public class MaterialP {
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) {
@ -144,6 +176,10 @@ public class MaterialP {
this.depositoryCode = material.getDepositoryCode(); // 仓库编码
this.depositoryId = material.getDepositoryId(); // 仓库id
this.placeCode = material.getPlaceCode(); // 库位编码
this.productionPlace = material.getProductionPlace(); // 产地
this.brand = material.getBrand(); // 品牌
this.remark = material.getRemark(); // 备注
this.shelfLifeForCalc = material.getShelfLife(); //保质期,用于计算
}
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("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")) {
Integer typeId = ObjectFormatUtil.toInteger(map.get("typeId").toString());
@ -113,6 +122,15 @@ public class MaterialServiceImpl implements MaterialService {
}
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);
@ -279,6 +297,15 @@ public class MaterialServiceImpl implements MaterialService {
Material material = materialMapper.findMaterialAndTypeById(id);
material.setPrice(material.getPrice() / 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;
}
@ -383,6 +410,15 @@ public class MaterialServiceImpl implements MaterialService {
m.setDepositoryName(depositoryMapper.findDepositoryNameById(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());
m.setTypeName(materialTypeByOldId.getTname());
m.setTypeId(materialTypeByOldId.getOldId());
@ -655,7 +691,7 @@ public class MaterialServiceImpl implements MaterialService {
// 获取当前类别级别
Integer mtLevel = getMtLevel(mt, 1);
if(materialTypeByParent.size() > 0) {
if (materialTypeByParent.size() > 0) {
String mname = "";
Object o = map.get("mname");
@ -689,7 +725,7 @@ public class MaterialServiceImpl implements MaterialService {
if (Long.compare(parentMt.getOldId(), id) == 0) {
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().leftPush("wms_materialTree_result",JSONObject.toJSONString(jsonObject));
jsonObject.put("spread", true);
@ -700,19 +736,18 @@ public class MaterialServiceImpl implements MaterialService {
List<Object> childList = (List<Object>) jsonObject.get("children");
List<Object> objectList1 = rewriteTree(childList, stringObjectMap, mtLevel - 1, mt);
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);
stringObjectMap.put("spread", true);
result.add(jsonObject);
}
} else {
redisTemplate.opsForList().set("wms_materialTree_result",i,JSONObject.toJSONString(jsonObject));
redisTemplate.opsForList().set("wms_materialTree_result", i, JSONObject.toJSONString(jsonObject));
result.add(jsonObject);
}
}
return result;
}
else{
} else {
List<String> objectList = redisTemplate.opsForList().range("wms_materialTree_result", 0, -1);
try {
Thread.sleep(10);
@ -727,8 +762,8 @@ public class MaterialServiceImpl implements MaterialService {
String s = objectList.get(i);
JSONObject jsonObject = JSONObject.parseObject(s);
Long id = Long.valueOf(jsonObject.getString("id"));
if(Long.compare(id,parent.getOldId()) == 0){
jsonObject = setTreeChildrenSpreadIsTrue(jsonObject, mt, mtLevel - 1,map);
if (Long.compare(id, parent.getOldId()) == 0) {
jsonObject = setTreeChildrenSpreadIsTrue(jsonObject, mt, mtLevel - 1, map);
}
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){
if(level != 0){
public JSONObject setTreeChildrenSpreadIsTrue(JSONObject jsonObject, MaterialType mt, Integer level, Map<String, Object> map) {
if (level != 0) {
MaterialType parent = mt;
for (int i = 0; i < level - 1; i++) {
parent = materialTypeMapper.findMaterialTypeByOldId(parent.getParentId());
}
jsonObject.put("spread",true);
jsonObject.put("spread", true);
JSONArray children = jsonObject.getJSONArray("children");
for (int i = 0; i < children.size(); i++) {
JSONObject object = children.getJSONObject(i);
Long id = Long.valueOf(object.getString("id"));
if(Long.compare(id,parent.getOldId()) == 0){
JSONObject object1 = setTreeChildrenSpreadIsTrue(object, mt, level - 1,map);
children.set(i,object1);
}else{
if (Long.compare(id, parent.getOldId()) == 0) {
JSONObject object1 = setTreeChildrenSpreadIsTrue(object, mt, level - 1, map);
children.set(i, object1);
} else {
List<Object> list = new ArrayList<>();
list.add(1);
object.put("children",list);
object.put("children", list);
}
}
}else{
} else {
Object o2 = map.get("depositoryId");
String mname = "";
Object o = map.get("mname");
if (o != null) {
mname = o.toString();
}
if(o2 != null){
if (o2 != null) {
String depositoryId = o2.toString();
Object o3 = map.get("placeId");
String placeId = "";
if(o3 != null){
if (o3 != null) {
placeId = o3.toString();
}
List<Object> objectList = AddMaterialByType(mt, mname, depositoryId, placeId);
Map<String, Object> stringObjectMap = new HashMap<>();
stringObjectMap = InitTreeMenusTest(mt, objectList);
jsonObject = new JSONObject(stringObjectMap);
}else{
jsonObject = new JSONObject(stringObjectMap);
} else {
Object o1 = map.get("adminorg");
@ -782,11 +817,11 @@ public class MaterialServiceImpl implements MaterialService {
if (o1 != null) {
adminorg = o1.toString();
}
List<Object> list = AddMaterialByType(mt,mname,adminorg);
List<Object> list = AddMaterialByType(mt, mname, adminorg);
Map<String, Object> stringObjectMap = new HashMap<>();
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) {
if(flag != 1){
if (flag != 1) {
mt = materialTypeMapper.findMaterialTypeByOldId(mt.getParentId());
return rewriteTree(childrenList,stringObjectMap,flag-1,mt);
}else{
return rewriteTree(childrenList, stringObjectMap, flag - 1, mt);
} else {
List<Object> list = new ArrayList<>();
Long somId = mt.getOldId();
for (int i = 0; i < childrenList.size(); i++) {
JSONObject jsonObject = (JSONObject) childrenList.get(i);
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());
if(Long.compare(childrenId,id) == 0){
if (Long.compare(childrenId, id) == 0) {
list.add(stringObjectMap);
}else{
} else {
// 获取当前下的子列表
JSONArray children = jsonObject.getJSONArray("children");
List<Object> objectList = updateTreeChildren(children, stringObjectMap,childrenId);
jsonObject.put("children",objectList);
jsonObject.put("spread",true);
List<Object> objectList = updateTreeChildren(children, stringObjectMap, childrenId);
jsonObject.put("children", objectList);
jsonObject.put("spread", true);
list.add(jsonObject);
}
}else{
} else {
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());
List<Object> children = new ArrayList<>();
for (int i = 0; i < childrenList.size(); i++) {
JSONObject o = (JSONObject) childrenList.get(i);
Long id = Long.valueOf(o.getString("id"));
if(Long.compare(somId,id) == 0){
if (Long.compare(somId, id) == 0) {
children.add(map);
}else{
} else {
children.add(o);
}
}
@ -859,7 +894,6 @@ public class MaterialServiceImpl implements MaterialService {
}
/**
* 构造树形选择框
*
@ -1288,8 +1322,7 @@ public class MaterialServiceImpl implements MaterialService {
list.add(jsonObject);
}
return list;
}
else {
} else {
List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent();
@ -1342,7 +1375,7 @@ public class MaterialServiceImpl implements MaterialService {
@Override
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<>();
if (childForMaterialTypeByParent != null) {
stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent);
@ -1366,8 +1399,9 @@ public class MaterialServiceImpl implements MaterialService {
return null;
}
}
// 根据id获取子类(只获取类别)
public List<Object> findChildForMaterialTypeByParent_OnlyType(Long Oldid){
public List<Object> findChildForMaterialTypeByParent_OnlyType(Long Oldid) {
Map<String, Object> param = new HashMap<>();
List<Object> result = new ArrayList<>();
Map<String, Object> children = new HashMap<>();
@ -1387,21 +1421,19 @@ public class MaterialServiceImpl implements MaterialService {
}
// 根据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<>();
List<Object> result = new ArrayList<>();
param.put("parentId", Oldid);
// 获取当前父类的子类
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++) {
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;
if(childForMaterialTypeByParent_test == null){
if (childForMaterialTypeByParent_test == null) {
List<Object> list = new ArrayList<>();
list.add(1);
stringObjectMap = InitTreeMenus(mt, list);
@ -1411,7 +1443,7 @@ public class MaterialServiceImpl implements MaterialService {
result.add(stringObjectMap);
}
return result;
}else{
} else {
List<Object> childForMaterialTypeByParent_onlyType = findChildForMaterialTypeByParent_OnlyType(Oldid);
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){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@ -91,6 +93,17 @@ public class DateUtil {
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(){

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:
username: 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
type: com.alibaba.druid.pool.DruidDataSource
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;
},
/**
* 判断是否为手机
* @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 菜单数据
@ -131,35 +149,69 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
headerMenuCheckDefault = 'layui-this';
if (menuChildOpen) childOpenClass = ' layui-nav-itemed';
var 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,
id: id,
icon: val.icon,
title: val.title,
}, true);
headerMenuCheckDefault = "";
leftMenuCheckDefault = "layui-hide";
return topMenuItemHtml;
}).join("");
if(miniMenu.checkMobile()){
headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染
leftMenuCheckDefault = 'layui-hide';
var menu = 'multi_module_' + index;
let title = val.title;
if(title === '仓库管理'){
leftMenuCheckDefault = 'layui-this';
}
var id = menu + "HeaderId";
var topMenuItemHtml = "";
topMenuItemHtml = me.compileMenu({
className: headerMenuCheckDefault,
menu: menu,
id: id,
title: 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: 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'); //多模块标识
$('.layuimini-menu-header-pc').html(headerMenuHtml); //电脑
$('.layuimini-menu-left').html(leftMenuHtml);
@ -224,7 +276,6 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
// $(".menu-li").each(function (idx,el) {
// $(el).addClass("hidden-sub-menu");
// });
} else { // 正常
$('.layuimini-tool [data-side-fold]').attr('data-side-fold', 1);
$('.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;
},
/**
* 判断是否为手机
* @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
@ -276,7 +294,6 @@ layui.define(["element", "layer", "jquery"], function (exports) {
var loading = layer.load(0, {shade: false, time: 2 * 1000});
var $parent = $(this).parent();
console.log($parent);
var tabId = $parent.attr('lay-id');
if (tabId !== undefined || tabId !== null) {
miniTab.delete(tabId);
@ -504,6 +521,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
});
},
/**
* 多模块切换
* @param tabId
@ -511,33 +529,71 @@ layui.define(["element", "layer", "jquery"], function (exports) {
listenSwitchMultiModule: function (tabId) {
$("[layuimini-href]").each(function () {
if ($(this).attr("layuimini-href") === tabId) {
// 自动展开菜单栏
var addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
$(".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');
var addMenuClass ;
// 如果是移动端
if(miniTab.checkMobile()){
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
} else {
addMenuClass($element.parent().parent(), 2);
}
} 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');
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 = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
$(".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 {
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);
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' +
'<ul>\n' + bgColorHtml + '</ul>\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>';
layer.open({
type: 1,

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

@ -1,10 +1,12 @@
<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>仓库管理系统</title>
<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 http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@ -19,7 +21,14 @@
<!--[if lt IE 9]>
<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>
<![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>
</head>
@ -38,46 +47,42 @@
<ul class="layui-nav layui-layout-left layuimini-header-menu layuimini-menu-header-pc layuimini-pc-show">
</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">
<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 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 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 class="layui-nav-item layuimini-setting">
<a href="javascript:;" th:text="${user.getUname()}"></a>
<div id="authority" th:text="${user.getAuthority()}" style="display: none"></div>
<a href="javascript:" th:text="${user.getName()}"></a>
<div id="uid" th:text="${user.getId()}" style="display: none"></div>
<dl class="layui-nav-child">
<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>
<a href="javascript:;" layuimini-content-href="/user_password" data-title="修改密码" data-icon="fa fa-gears">修改密码</a>
<dd style="display: none">
<a href="javascript:" layuimini-content-href="/user_password" data-title="修改密码"
data-icon="fa fa-gears">修改密码</a>
</dd>
<dd>
<hr>
</dd>
<dd>
<a href="javascript:;" class="login-out">退出登录</a>
<a href="javascript:" class="login-out">退出登录</a>
</dd>
</dl>
</li>
<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>
</ul>
</div>
@ -85,6 +90,7 @@
<!--无限极左侧菜单-->
<div class="layui-side layui-bg-black layuimini-menu-left">
</div>
<!--初始化加载层-->
@ -110,11 +116,11 @@
<li class="layui-tab-tool layui-icon layui-icon-down">
<ul class="layui-nav close-box">
<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">
<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="all">关 闭 全 部</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="all">关 闭 全 部</a></dd>
</dl>
</li>
</ul>
@ -127,21 +133,24 @@
</div>
</div>
<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="//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>
layui.use(['jquery', 'layer', 'miniAdmin','miniTongji'], function () {
layui.use(['jquery', 'layer', 'miniAdmin'], function () {
var $ = layui.jquery,
layer = layui.layer,
miniAdmin = layui.miniAdmin;
var authority = $("#authority").text()
let map = new Map();
map.set("roleId",authority)
let obj= Object.create(null);
for (let[k,v] of map) {
obj[k] = v;
}
var dataByConfig;
var uid = $("#uid").text();
var options = {
clearUrl: "/static/api/clear.json", // 缓存清理接口
urlHashLocation: true, // 是否打开hash定位
@ -152,39 +161,67 @@
pageAnim: true, // iframe窗口动画
maxTabNum: 20, // 最大的tab打开数量
};
options.iniUrl= "/static/api/test.json" // 初始化接口
// 获取对应菜单
$.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;
}
});
options.iniUrl = "/index/menus?uid=" + uid; // 初始化接口
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 () {
layer.msg('退出登录成功', function () {
window.location = '/login';
$.ajax({
url: "/loginOut",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
layer.msg(data.statusInfo.message, function () {
window.location = '/login';
});
}
});
});
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>

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

@ -70,9 +70,14 @@
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
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 class="layui-form-item">
@ -182,6 +187,11 @@
function Coverpage() {
}
// 用于扫码出库
function scanCodeByOut(obj) {
}
// 用于暂存卡片个数
var params = [];
// 用于卡片编号
@ -244,59 +254,6 @@
layer.msg(data.statusInfo.message);//失败的表情
} 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("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -496,7 +453,7 @@
// 输入code
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 children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
@ -569,7 +526,7 @@
var parentId = parent.id;
var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
@ -648,7 +605,7 @@
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
@ -714,7 +671,8 @@
// 条形码条码
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];
@ -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) {
var id = obj.id.split("quantity")[1];
@ -746,37 +783,46 @@
$("#quantity" + id).val("")
});
} else {
var req = {};
req.code = mcode;
req.quantity = $("#quantity" + id).val();
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () {
$("#quantity" + id).val("");
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
materialName.value = "";
materialId.value = "";
codeValue.value = "";
});
let val = $("#quantity" + id).val();
if(val !== null && val !== undefined && val !== '') {
var req = {};
req.code = mcode;
req.quantity = val;
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () {
$("#quantity" + id).val("");
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
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>
layui.use(['form', 'table','laydate'], function () {
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
@ -53,44 +53,46 @@
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
"depositoryId":depositoryId,
"state":state
"depositoryId": depositoryId,
"state": state
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true},
{field: 'mname', width: 120, title: '物料名称'},
{field: 'mcode', width: 120, title: '物料编码'},
{field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'pcode', width: 120, title: '库位编码'},
{field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'},
{field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
cols: [
[
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true},
{field: 'mname', width: 120, title: '物料名称'},
{field: 'mcode', width: 120, title: '物料编码'},
{field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'pcode', width: 120, title: '库位编码'},
{field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'},
{field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done:function (res, curr, count) {
$("[data-field='id']").css('display','none');
done: function (res, curr, count) {
$("[data-field='id']").css('display', 'none');
var data = res.data;
if(data.length > 0){
if(data[0].state === "进行中"){
$("[data-field='id']").css('display','none');
if (data.length > 0) {
if (data[0].state === "进行中") {
$("[data-field='id']").css('display', 'none');
}
}
@ -109,10 +111,10 @@
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move : '.layui-layer-title',
fixed:false,
content: '/scanQrCodeByOut?id='+data.id,
end:function () {
move: '.layui-layer-title',
fixed: false,
content: '/scanQrCodeByOut?id=' + data.id,
end: function () {
table.reload('currentTableId', {
url: '/depositoryRecord/ApplicationOutMinByDid',
page: {

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

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

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

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

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

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

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

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

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

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

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

@ -34,10 +34,10 @@
<legend>物料创建</legend>
<div class="layui-fluid">
<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>
<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">
<label class="layui-form-label">物料名称:</label>
<div class="layui-input-block">
@ -62,6 +62,15 @@
name="version"/>
</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">
<label class="layui-form-label">物料类型:</label>
@ -86,6 +95,34 @@
name="unit" />
</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-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
@ -110,11 +147,12 @@
var data;
function selectBarCode(){}
function scanBarCode(){}
layui.use(['form', 'layer','dropdown','tree'], function () {
layui.use(['form', 'layer','dropdown','tree','laydate'], function () {
var $ = layui.jquery,
form = layui.form,
dropdown = layui.dropdown,
tree = layui.tree,
laydate = layui.laydate,
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(){
layer.open({
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>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<!--<select name="depositoryId" >
<option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly />
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" />
</div>
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<!--<select name="depositoryId" >
<option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
readonly/>
<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 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>
</fieldset>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">二维码</label>
<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">-->
<img src="" id="qrCode">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">二维码</label>
<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">-->
<img src="" id="qrCode">
</div>
</div>
<!-- 状态展示-->
<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' : '' }} >
</script>
<!-- 状态展示-->
<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' : '' }} >
</script>
<script type="text/html" id="toolbarDemo">
<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-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>
</div>
</script>
<script type="text/html" id="toolbarDemo">
<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-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>
</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">
<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" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a>
</script>
<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-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>
</script>
<script id="selectManager" type="text/html">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</a>
</script>
<script id="selectManager" type="text/html">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</a>
</script>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'table','upload'], function () {
var $ = layui.jquery,
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
upload = layui.upload;
$('#openSonByMateralType').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: '/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',
});
});
$('#openSonByMateralType').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: '/selectType',
});
});
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');
$('#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({
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', {
url: '/material/material',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
// 监听搜索操作
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;
}
/**
* 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: '/material_add',
});
$(window).on("resize", function () {
layer.full(index);
//执行搜索重载
table.reload('currentTableId', {
url: '/material/material',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
}
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) {
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;
/**
* 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: '/material_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;
}
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 {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/material/material',
page: {
curr: 1
layer.msg("未选中记录,请确认!");
return false;
}
} 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", // 绑定元素
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');
return false;
layer.open({
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
} else {
layer.msg(res.msg)
}
}
})
})
}
else{
layer.msg("未选中记录,请确认!");
return false;
}
}
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);
},
error: function () {
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()
})
}
}
})
}
});
});
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
}
layer.open({
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
}else{
layer.msg(res.msg)
}
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
},
error:function (){
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()
})
}
})
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
if (obj.event === 'detail') {
var index = layer.open({
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) {
let data = obj.data;
} else {
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') {
var index = layer.open({
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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
} 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 == '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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
} else if (obj.event == 'manager') {
layer.open({
type: 2,
title: '仓管员信息',
shadeClose: true,
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],
content: '/ManagerViewByMid?id=' + data.id
});
}
}
})
},function (){
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId":parentId}
});
});
}
else if (obj.event == 'manager'){
layer.open({
type: 2,
title: '仓管员信息',
shadeClose: true,
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],
content: '/ManagerViewByMid?id='+data.id
});
}
});
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
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);//失败的表情
//监听状态操作
form.on('switch(changeState)', function(obj){
var req = new Map
if(obj.elem.checked){
req["state"] = 1
}
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'
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = '/material_out'
})
}
}
})
}
}
})
});
});
});
</script>
</body>

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

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

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

@ -1,258 +1,263 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">类型名称</label>
<div class="layui-input-inline">
<select name="tname" >
<option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getTname()}" th:text="${materialType?.getTname()}" >顶级类型</option>
</select>
</div>
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">类型名称</label>
<div class="layui-input-inline">
<select name="tname">
<option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
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 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>
</fieldset>
<script type="text/html" id="toolbarDemo">
<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-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
</div>
</script>
<script type="text/html" id="toolbarDemo">
<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-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</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">
<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>
</script>
<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-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId='+parentId,
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: 'id', width: 100, 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){
return "启用";
}else if(d.state == 2){
return "禁用";
}
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50],
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);
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId=' + parentId,
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: 'id', width: 100, 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) {
return "启用";
} else if (d.state == 2) {
return "禁用";
}
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line'
});
} 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;
}
$.ajax({
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);//失败的表情
return;
}else{
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
// 监听搜索操作
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
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');
return false;
$.ajax({
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) {
console.log(obj)
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if (obj.event === 'detail') {
var index = layer.open({
title: '物料种类详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_detail?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: '/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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
if (obj.event === 'detail') {
var index = layer.open({
title: '物料种类详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_detail?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: '/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 {
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
});
}
}
})
});
}
});
});
</script>
</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">
<label class="layui-form-label">岗位名称</label>
<div class="layui-input-inline">
<select name="name" >
<select name="name">
<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>
</div>
</div>
@ -49,8 +51,6 @@
</fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
@ -72,7 +72,7 @@
table.render({
elem: "#currentTableId",
url: '/company/allPostByOrganization',
method:"post",
method: "post",
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
@ -86,62 +86,64 @@
limitName: 'pagesize', //每页数据量的参数名,默认:limit
},
where: {
organization:parentId
organization: parentId
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'},
{field: 'dutiesname',width: 200,title: '名称'},
{field: 'aoname',width: 200,title: '归属行政组织名称'},
{field: 'aonumber',width: 200,title: '归属行政组织编号'},
{field: 'jobname',width: 200,title: '职务类别'},
{field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiorname',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){
return "启用";
}else if(d.state == 2){
return "禁用";
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'},
{field: 'dutiesname', width: 200, title: '名称'},
{field: 'aoname', width: 200, title: '归属行政组织名称'},
{field: 'aonumber', width: 200, title: '归属行政组织编号'},
{field: 'jobname', width: 200, title: '职务类别'},
{field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiorname', 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) {
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],
limit: 10,
page: true,
skin: 'line',
done:function () {
$("[data-field='id']").css('display','none');
$("[data-field='rolename']").css('display','none');
done: function () {
$("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display', 'none');
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req={};
data=data.field;
if (data.name!==''){
var req = {};
data = data.field;
if (data.name !== '') {
req.name = data.name;
}
if(data.state != ''){
if (data.state != '') {
req.state = data.state;
}
req.superior = parentId
req.organization = organization
req.superior = parentId;
req.organization = organization;
//执行搜索重载
table.reload('currentTableId', {
@ -170,14 +172,13 @@
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/post_detail?id='+data.id,
content: '/post_detail?id=' + data.id,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子岗位',
type: 2,
@ -185,14 +186,13 @@
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/findPostByParentId?parentId='+data.id
content: '/findPostByParentId?parentId=' + data.id
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if (obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
/*var index = layer.open({
title: '设置权限',
@ -210,7 +210,7 @@
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],
content: '/postRoleView?id='+data.id
content: '/postRoleView?id=' + data.id
});
$(window).on("resize", function () {
layer.full(index);

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

@ -36,7 +36,10 @@
<div class="layui-input-inline">
<select name="company" lay-filter="company">
<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>
</div>
</div>
@ -57,7 +60,9 @@
</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>
<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>
@ -84,7 +89,7 @@
table.render({
elem: '#currentTableId',
url: '/sys/findUsers',
method:"POST",
method: "POST",
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
@ -99,93 +104,97 @@
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
{type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true},
{field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'},
{field: 'gender', width: 80, title: '性别',templet: function (d) {
if (d.gender == 1){
return "男性";
}else if(d.gender == 2){
return "女性";
}else if(d.gender == 3){
return "中性";
}else{
return "";
}
}},
{
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){
return "启用";
}else if(d.state == 2){
return "禁用";
}else{
return "";
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true},
{field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'},
{
field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender == 1) {
return "男性";
} else if (d.gender == 2) {
return "女性";
} else if (d.gender == 3) {
return "中性";
} else {
return "";
}
}
}
},
{
field: 'health', title: '健康状况', minWidth: 160, templet: function (d) {
switch (d.health) {
case 1:
return "良好";
case 2:
return "一般";
case 3:
return "较弱";
case 4:
return "有生理缺陷";
case 5:
return "残废";
default:
},
{
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1) {
return "启用";
} else if (d.state == 2) {
return "禁用";
} else {
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"}
]],
},
{
field: 'health', title: '健康状况', minWidth: 160, templet: function (d) {
switch (d.health) {
case 1:
return "良好";
case 2:
return "一般";
case 3:
return "较弱";
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],
limit: 10,
page: true,
skin: 'line',
done:function () {
$("[data-field='id']").css('display','none');
$("[data-field='rolename']").css('display','none');
done: function () {
$("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display', 'none');
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
data=data.field;
let req={};
if (data.name!==''){
req.name=data.name;
data = data.field;
let req = {};
if (data.name !== '') {
req.name = data.name;
}
if (data.company!==''){
req.company=data.company;
if (data.company !== '') {
req.company = data.company;
}
if (data.adminorg!==''){
req.adminorg=data.adminorg;
if (data.adminorg !== '') {
req.adminorg = data.adminorg;
}
if (data.state != ''){
if (data.state != '') {
req.state = data.state;
}
if (data.number != ''){
if (data.number != '') {
req.number = data.number;
}
//执行搜索重载
@ -199,14 +208,14 @@
return false;
});
form.on('select(company)',function (data){
form.on('select(company)', function (data) {
$.ajax({
url:"/repository/findPostByCompany?company=0"+data.value,
type:'get',
dataType:'json',
url: "/repository/findPostByCompany?company=0" + data.value,
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success:function(d){
if(data.value != "") {
success: function (d) {
if (data.value != "") {
$('#adminorg').empty();
$('#adminorg').append(new Option("请选择部门", ""));
@ -214,13 +223,13 @@
$('#adminorg').append(new Option(item.name, item.id));//往下拉菜单里添加元素
});
form.render();
}else{
} else {
$('#adminorg').empty();
form.render();
}
}
})
})
});
//监听表格复选框选择
@ -235,17 +244,16 @@
title: '查看用户',
type: 2,
shade: 0.2,
maxmin:true,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/user_detail?id='+data.number,
content: '/user_detail?id=' + data.number,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if(obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
layer.open({
type: 2,
title: '权限信息',
@ -253,7 +261,7 @@
shade: false,
maxmin: true, //开启最大化最小化按钮
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>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<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 class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<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_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 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>
</fieldset>
</fieldset>
<script type="text/html" id="toolbarDemo">
<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="addList"> 批量创建</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位</button>
</div>
</script>
<script type="text/html" id="toolbarDemo">
<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="addList"> 批量创建</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位
</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-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
<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>
</script>
<!-- 状态展示-->
<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' : '' }} >
</script>
<!-- 状态展示-->
<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' : '' }} >
</script>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/place/findPlace?did='+parentId,
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: 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']});
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/place/findPlace?did=' + parentId,
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
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: '/place/findPlace',
page: {
curr: 1
}
}, 'data');
return false;
}
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');
}
})
}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;
if (obj.event === 'detail') {
var index = layer.open({
title: '库位信息详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/placeView?id='+data.id,
end:function () {
req = {};
// 监听搜索操作
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
url: '/place/findPlace',
page: {
curr: 1
},
where: req
}, 'data');
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') {
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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if (obj.event === 'detail') {
var index = layer.open({
title: '库位信息详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/placeView?id=' + data.id,
end: function () {
req = {};
req.did = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/place/findPlace',
page: {
curr: 1
},
where: req
}, '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){
var req = new Map;
if(obj.elem.checked){
req["state"] = 1
}
req["id"] = this.value;
$.ajax({
url: "/place/place_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='/warehouseByParentId?parentId='+parentId;
})
}
}
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
req["id"] = this.value;
$.ajax({
url: "/place/place_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 {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = '/warehouseByParentId?parentId=' + parentId;
})
}
}
})
});
});
});
</script>
</body>

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

@ -99,7 +99,7 @@ public class Test {
@org.junit.Test
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:
username: 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
type: com.alibaba.druid.pool.DruidDataSource
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="texture" property="texture" jdbcType="VARCHAR"/>
<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>
<!-- 字段映射-->
@ -37,6 +42,11 @@
<result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" 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">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" />
@ -72,17 +82,17 @@
<!-- 表查询字段 -->
<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 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 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>
@ -122,6 +132,21 @@
<if test="code != null and code != '' ">
and m.code = #{code}
</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
</select>
@ -156,6 +181,21 @@
<if test="code != null and code != '' ">
and code = #{code}
</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
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
@ -195,6 +235,21 @@
<if test="code != null and code != '' ">
and code = #{code}
</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
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
@ -230,6 +285,21 @@
<if test="code != null and code != '' ">
and code = #{code}
</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
</select>
@ -300,6 +370,21 @@
<if test="tname != null and tname != ''">
AND tname LIKE CONCAT('%', #{tname}, '%')
</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
</select>
@ -371,7 +456,7 @@
<!-- 插入数据 -->
<insert id="insertMaterial" useGeneratedKeys="true" keyProperty="id">
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 (
#{id},
<if test="depositoryId != null">
@ -405,11 +490,16 @@
0,
</if>
<if test="depositoryCode != null">
#{depositoryCode}
#{depositoryCode},
</if>
<if test="depositoryCode == null">
''
'',
</if>
#{producedDate},
#{shelfLife},
#{brand},
#{productionPlace},
#{remark}
)
</insert>
@ -516,7 +606,23 @@
number_of_temporary = #{numberOfTemporary},
</if>
<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>
</set>
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;
},
/**
* 判断是否为手机
* @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
@ -276,7 +294,6 @@ layui.define(["element", "layer", "jquery"], function (exports) {
var loading = layer.load(0, {shade: false, time: 2 * 1000});
var $parent = $(this).parent();
console.log($parent);
var tabId = $parent.attr('lay-id');
if (tabId !== undefined || tabId !== null) {
miniTab.delete(tabId);
@ -504,6 +521,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
});
},
/**
* 多模块切换
* @param tabId
@ -511,33 +529,71 @@ layui.define(["element", "layer", "jquery"], function (exports) {
listenSwitchMultiModule: function (tabId) {
$("[layuimini-href]").each(function () {
if ($(this).attr("layuimini-href") === tabId) {
// 自动展开菜单栏
var addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
$(".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');
var addMenuClass ;
// 如果是移动端
if(miniTab.checkMobile()){
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
} else {
addMenuClass($element.parent().parent(), 2);
}
} 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');
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 = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
$(".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 {
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);
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' +
'<ul>\n' + bgColorHtml + '</ul>\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>';
layer.open({
type: 1,

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

@ -70,9 +70,14 @@
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
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 class="layui-form-item">
@ -182,6 +187,11 @@
function Coverpage() {
}
// 用于扫码出库
function scanCodeByOut(obj) {
}
// 用于暂存卡片个数
var params = [];
// 用于卡片编号
@ -244,59 +254,6 @@
layer.msg(data.statusInfo.message);//失败的表情
} 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("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
@ -496,7 +453,7 @@
// 输入code
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 children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
@ -569,7 +526,7 @@
var parentId = parent.id;
var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
@ -648,7 +605,7 @@
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
@ -714,7 +671,8 @@
// 条形码条码
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];
@ -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) {
var id = obj.id.split("quantity")[1];
@ -746,37 +783,46 @@
$("#quantity" + id).val("")
});
} else {
var req = {};
req.code = mcode;
req.quantity = $("#quantity" + id).val();
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () {
$("#quantity" + id).val("");
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
materialName.value = "";
materialId.value = "";
codeValue.value = "";
});
let val = $("#quantity" + id).val();
if(val !== null && val !== undefined && val !== '') {
var req = {};
req.code = mcode;
req.quantity = val;
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前物料数量不足", {icon: 0, time: 500}, function () {
$("#quantity" + id).val("");
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
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>
layui.use(['form', 'table','laydate'], function () {
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
@ -53,44 +53,46 @@
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
"depositoryId":depositoryId,
"state":state
"depositoryId": depositoryId,
"state": state
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true},
{field: 'mname', width: 120, title: '物料名称'},
{field: 'mcode', width: 120, title: '物料编码'},
{field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'pcode', width: 120, title: '库位编码'},
{field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'},
{field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
cols: [
[
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true},
{field: 'mname', width: 120, title: '物料名称'},
{field: 'mcode', width: 120, title: '物料编码'},
{field: 'depositoryName', width: 120, title: '仓库名称'},
{field: 'pcode', width: 120, title: '库位编码'},
{field: 'quantity', width: 80, title: '数量', sort: true},
{field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'},
{field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done:function (res, curr, count) {
$("[data-field='id']").css('display','none');
done: function (res, curr, count) {
$("[data-field='id']").css('display', 'none');
var data = res.data;
if(data.length > 0){
if(data[0].state === "进行中"){
$("[data-field='id']").css('display','none');
if (data.length > 0) {
if (data[0].state === "进行中") {
$("[data-field='id']").css('display', 'none');
}
}
@ -109,10 +111,10 @@
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move : '.layui-layer-title',
fixed:false,
content: '/scanQrCodeByOut?id='+data.id,
end:function () {
move: '.layui-layer-title',
fixed: false,
content: '/scanQrCodeByOut?id=' + data.id,
end: function () {
table.reload('currentTableId', {
url: '/depositoryRecord/ApplicationOutMinByDid',
page: {

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -34,10 +34,10 @@
<legend>物料创建</legend>
<div class="layui-fluid">
<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>
<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">
<label class="layui-form-label">物料名称:</label>
<div class="layui-input-block">
@ -62,6 +62,15 @@
name="version"/>
</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">
<label class="layui-form-label">物料类型:</label>
@ -86,6 +95,34 @@
name="unit" />
</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-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
@ -110,11 +147,12 @@
var data;
function selectBarCode(){}
function scanBarCode(){}
layui.use(['form', 'layer','dropdown','tree'], function () {
layui.use(['form', 'layer','dropdown','tree','laydate'], function () {
var $ = layui.jquery,
form = layui.form,
dropdown = layui.dropdown,
tree = layui.tree,
laydate = layui.laydate,
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(){
layer.open({
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>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<!--<select name="depositoryId" >
<option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository" readonly />
<input type="text" name="depositoryId" class="layui-input" id="depositoryId" style="display: none" />
</div>
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<!--<select name="depositoryId" >
<option value="" selected>请选择仓库</option>
<option th:each="depository,iterStar:${depositories}" th:value="${depository?.getId()}" th:text="${depository?.getDname()}" >外芯仓库</option>
</select>-->
<input type="text" placeholder="请选择仓库" class="layui-input" id="openSonByDepository"
readonly/>
<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 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>
</fieldset>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">二维码</label>
<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">-->
<img src="" id="qrCode">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">二维码</label>
<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">-->
<img src="" id="qrCode">
</div>
</div>
<!-- 状态展示-->
<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' : '' }} >
</script>
<!-- 状态展示-->
<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' : '' }} >
</script>
<script type="text/html" id="toolbarDemo">
<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-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>
</div>
</script>
<script type="text/html" id="toolbarDemo">
<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-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>
</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">
<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" th:style="'display:'+${display}" lay-event="realDelete">彻底删除</a>
</script>
<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-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>
</script>
<script id="selectManager" type="text/html">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</a>
</script>
<script id="selectManager" type="text/html">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="manager">仓管员</a>
</script>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'table','upload'], function () {
var $ = layui.jquery,
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
upload = layui.upload;
$('#openSonByMateralType').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: '/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',
});
});
$('#openSonByMateralType').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: '/selectType',
});
});
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');
$('#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({
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', {
url: '/material/material',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
// 监听搜索操作
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;
}
/**
* 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: '/material_add',
});
$(window).on("resize", function () {
layer.full(index);
//执行搜索重载
table.reload('currentTableId', {
url: '/material/material',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
}
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) {
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;
/**
* 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: '/material_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;
}
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 {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/material/material',
page: {
curr: 1
layer.msg("未选中记录,请确认!");
return false;
}
} 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", // 绑定元素
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');
return false;
layer.open({
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
} else {
layer.msg(res.msg)
}
}
})
})
}
else{
layer.msg("未选中记录,请确认!");
return false;
}
}
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);
},
error: function () {
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()
})
}
}
})
}
});
});
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
}
layer.open({
type: 1,
skin: 'layui-layer-rim', //加上边框
area: ['500px', '500px'], //宽高
content: re
})
}else{
layer.msg(res.msg)
}
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
},
error:function (){
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()
})
}
})
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
if (obj.event === 'detail') {
var index = layer.open({
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) {
let data = obj.data;
} else {
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') {
var index = layer.open({
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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
} 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 == '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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
} else if (obj.event == 'manager') {
layer.open({
type: 2,
title: '仓管员信息',
shadeClose: true,
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],
content: '/ManagerViewByMid?id=' + data.id
});
}
}
})
},function (){
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId":parentId}
});
});
}
else if (obj.event == 'manager'){
layer.open({
type: 2,
title: '仓管员信息',
shadeClose: true,
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],
content: '/ManagerViewByMid?id='+data.id
});
}
});
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
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);//失败的表情
//监听状态操作
form.on('switch(changeState)', function(obj){
var req = new Map
if(obj.elem.checked){
req["state"] = 1
}
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'
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = '/material_out'
})
}
}
})
}
}
})
});
});
});
</script>
</body>

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

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

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

@ -1,258 +1,263 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">类型名称</label>
<div class="layui-input-inline">
<select name="tname" >
<option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}" th:value="${materialType?.getTname()}" th:text="${materialType?.getTname()}" >顶级类型</option>
</select>
</div>
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">类型名称</label>
<div class="layui-input-inline">
<select name="tname">
<option value="" selected>请选择类型</option>
<option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
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 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>
</fieldset>
<script type="text/html" id="toolbarDemo">
<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-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
</div>
</script>
<script type="text/html" id="toolbarDemo">
<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-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</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">
<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>
</script>
<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-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId='+parentId,
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: 'id', width: 100, 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){
return "启用";
}else if(d.state == 2){
return "禁用";
}
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50],
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);
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId=' + parentId,
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: 'id', width: 100, 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) {
return "启用";
} else if (d.state == 2) {
return "禁用";
}
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line'
});
} 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;
}
$.ajax({
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);//失败的表情
return;
}else{
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
// 监听搜索操作
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
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');
return false;
$.ajax({
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) {
console.log(obj)
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if (obj.event === 'detail') {
var index = layer.open({
title: '物料种类详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_detail?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: '/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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
if (obj.event === 'detail') {
var index = layer.open({
title: '物料种类详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/materialType_detail?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: '/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 {
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
});
}
}
})
});
}
});
});
</script>
</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">
<label class="layui-form-label">岗位名称</label>
<div class="layui-input-inline">
<select name="name" >
<select name="name">
<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>
</div>
</div>
@ -49,8 +51,6 @@
</fieldset>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
@ -72,7 +72,7 @@
table.render({
elem: "#currentTableId",
url: '/company/allPostByOrganization',
method:"post",
method: "post",
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
@ -86,62 +86,64 @@
limitName: 'pagesize', //每页数据量的参数名,默认:limit
},
where: {
organization:parentId
organization: parentId
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'},
{field: 'dutiesname',width: 200,title: '名称'},
{field: 'aoname',width: 200,title: '归属行政组织名称'},
{field: 'aonumber',width: 200,title: '归属行政组织编号'},
{field: 'jobname',width: 200,title: '职务类别'},
{field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiorname',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){
return "启用";
}else if(d.state == 2){
return "禁用";
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
{field: 'name', width: 250, title: '名称'},
{field: 'dutiesname', width: 200, title: '名称'},
{field: 'aoname', width: 200, title: '归属行政组织名称'},
{field: 'aonumber', width: 200, title: '归属行政组织编号'},
{field: 'jobname', width: 200, title: '职务类别'},
{field: 'rolename', width: 200, title: '权限名称'},
{field: 'depositoryName', width: 200, title: '管理仓库'},
{field: 'superiorname', 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) {
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],
limit: 10,
page: true,
skin: 'line',
done:function () {
$("[data-field='id']").css('display','none');
$("[data-field='rolename']").css('display','none');
done: function () {
$("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display', 'none');
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req={};
data=data.field;
if (data.name!==''){
var req = {};
data = data.field;
if (data.name !== '') {
req.name = data.name;
}
if(data.state != ''){
if (data.state != '') {
req.state = data.state;
}
req.superior = parentId
req.organization = organization
req.superior = parentId;
req.organization = organization;
//执行搜索重载
table.reload('currentTableId', {
@ -170,14 +172,13 @@
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/post_detail?id='+data.id,
content: '/post_detail?id=' + data.id,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子岗位',
type: 2,
@ -185,14 +186,13 @@
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/findPostByParentId?parentId='+data.id
content: '/findPostByParentId?parentId=' + data.id
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if (obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
/*var index = layer.open({
title: '设置权限',
@ -210,7 +210,7 @@
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],
content: '/postRoleView?id='+data.id
content: '/postRoleView?id=' + data.id
});
$(window).on("resize", function () {
layer.full(index);

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

@ -36,7 +36,10 @@
<div class="layui-input-inline">
<select name="company" lay-filter="company">
<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>
</div>
</div>
@ -57,7 +60,9 @@
</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>
<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>
@ -84,7 +89,7 @@
table.render({
elem: '#currentTableId',
url: '/sys/findUsers',
method:"POST",
method: "POST",
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
@ -99,93 +104,97 @@
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
{type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true},
{field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'},
{field: 'gender', width: 80, title: '性别',templet: function (d) {
if (d.gender == 1){
return "男性";
}else if(d.gender == 2){
return "女性";
}else if(d.gender == 3){
return "中性";
}else{
return "";
}
}},
{
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1){
return "启用";
}else if(d.state == 2){
return "禁用";
}else{
return "";
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true},
{field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'},
{
field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender == 1) {
return "男性";
} else if (d.gender == 2) {
return "女性";
} else if (d.gender == 3) {
return "中性";
} else {
return "";
}
}
}
},
{
field: 'health', title: '健康状况', minWidth: 160, templet: function (d) {
switch (d.health) {
case 1:
return "良好";
case 2:
return "一般";
case 3:
return "较弱";
case 4:
return "有生理缺陷";
case 5:
return "残废";
default:
},
{
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1) {
return "启用";
} else if (d.state == 2) {
return "禁用";
} else {
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"}
]],
},
{
field: 'health', title: '健康状况', minWidth: 160, templet: function (d) {
switch (d.health) {
case 1:
return "良好";
case 2:
return "一般";
case 3:
return "较弱";
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],
limit: 10,
page: true,
skin: 'line',
done:function () {
$("[data-field='id']").css('display','none');
$("[data-field='rolename']").css('display','none');
done: function () {
$("[data-field='id']").css('display', 'none');
$("[data-field='rolename']").css('display', 'none');
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
data=data.field;
let req={};
if (data.name!==''){
req.name=data.name;
data = data.field;
let req = {};
if (data.name !== '') {
req.name = data.name;
}
if (data.company!==''){
req.company=data.company;
if (data.company !== '') {
req.company = data.company;
}
if (data.adminorg!==''){
req.adminorg=data.adminorg;
if (data.adminorg !== '') {
req.adminorg = data.adminorg;
}
if (data.state != ''){
if (data.state != '') {
req.state = data.state;
}
if (data.number != ''){
if (data.number != '') {
req.number = data.number;
}
//执行搜索重载
@ -199,14 +208,14 @@
return false;
});
form.on('select(company)',function (data){
form.on('select(company)', function (data) {
$.ajax({
url:"/repository/findPostByCompany?company=0"+data.value,
type:'get',
dataType:'json',
url: "/repository/findPostByCompany?company=0" + data.value,
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success:function(d){
if(data.value != "") {
success: function (d) {
if (data.value != "") {
$('#adminorg').empty();
$('#adminorg').append(new Option("请选择部门", ""));
@ -214,13 +223,13 @@
$('#adminorg').append(new Option(item.name, item.id));//往下拉菜单里添加元素
});
form.render();
}else{
} else {
$('#adminorg').empty();
form.render();
}
}
})
})
});
//监听表格复选框选择
@ -235,17 +244,16 @@
title: '查看用户',
type: 2,
shade: 0.2,
maxmin:true,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/user_detail?id='+data.number,
content: '/user_detail?id=' + data.number,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if(obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
layer.open({
type: 2,
title: '权限信息',
@ -253,7 +261,7 @@
shade: false,
maxmin: true, //开启最大化最小化按钮
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>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
<meta charset="utf-8">
<title>layui</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/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<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 class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input id="parentId" style="display: none" th:value="${parentId}">
<div class="layui-form-item">
<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_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 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>
</fieldset>
</fieldset>
<script type="text/html" id="toolbarDemo">
<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="addList"> 批量创建</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位</button>
</div>
</script>
<script type="text/html" id="toolbarDemo">
<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="addList"> 批量创建</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位
</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-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
<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>
</script>
<!-- 状态展示-->
<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' : '' }} >
</script>
<!-- 状态展示-->
<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' : '' }} >
</script>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/place/findPlace?did='+parentId,
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: 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']});
var parentId = document.getElementById("parentId").value;
table.render({
elem: "#currentTableId",
url: '/place/findPlace?did=' + parentId,
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
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: '/place/findPlace',
page: {
curr: 1
}
}, 'data');
return false;
}
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');
}
})
}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;
if (obj.event === 'detail') {
var index = layer.open({
title: '库位信息详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/placeView?id='+data.id,
end:function () {
req = {};
// 监听搜索操作
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
url: '/place/findPlace',
page: {
curr: 1
},
where: req
}, 'data');
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') {
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);//失败的表情
return;
}else{
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if (obj.event === 'detail') {
var index = layer.open({
title: '库位信息详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/placeView?id=' + data.id,
end: function () {
req = {};
req.did = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/place/findPlace',
page: {
curr: 1
},
where: req
}, '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){
var req = new Map;
if(obj.elem.checked){
req["state"] = 1
}
req["id"] = this.value;
$.ajax({
url: "/place/place_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='/warehouseByParentId?parentId='+parentId;
})
}
}
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
req["id"] = this.value;
$.ajax({
url: "/place/place_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 {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = '/warehouseByParentId?parentId=' + parentId;
})
}
}
})
});
});
});
</script>
</body>

Loading…
Cancel
Save