Browse Source

优化部分移动端页面

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

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

98
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 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;
/**
@ -82,4 +113,41 @@ public class Material {
*/
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() {

46
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());
@ -711,8 +747,7 @@ public class MaterialServiceImpl implements MaterialService {
}
}
return result;
}
else{
} else {
List<String> objectList = redisTemplate.opsForList().range("wms_materialTree_result", 0, -1);
try {
Thread.sleep(10);
@ -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();
@ -1366,6 +1399,7 @@ public class MaterialServiceImpl implements MaterialService {
return null;
}
}
// 根据id获取子类(只获取类别)
public List<Object> findChildForMaterialTypeByParent_OnlyType(Long Oldid) {
Map<String, Object> param = new HashMap<>();
@ -1387,8 +1421,6 @@ public class MaterialServiceImpl implements MaterialService {
}
// 根据id获取子类
public List<Object> findChildForMaterialTypeByParent_Test(Long Oldid, int level, int staticlevel) {
Map<String, Object> param = new HashMap<>();

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

57
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,15 +149,21 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
headerMenuCheckDefault = 'layui-this';
if (menuChildOpen) childOpenClass = ' layui-nav-itemed';
var headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染
if(miniMenu.checkMobile()){
headerMenuHtml = this.each(menuList, function (index, val) { //顶部菜单渲染
leftMenuCheckDefault = 'layui-hide';
var menu = 'multi_module_' + index;
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: val.title,
title: title,
href: "",
target: "",
children: ""
@ -152,7 +176,34 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
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);
@ -160,6 +211,7 @@ layui.define(["element", "laytpl", "jquery"], function (exports) {
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');

62
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,9 +529,44 @@ layui.define(["element", "layer", "jquery"], function (exports) {
listenSwitchMultiModule: function (tabId) {
$("[layuimini-href]").each(function () {
if ($(this).attr("layuimini-href") === tabId) {
var addMenuClass ;
// 如果是移动端
if(miniTab.checkMobile()){
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
// 自动展开菜单栏
var addMenuClass = function ($element, type) {
} 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");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
} else {
addMenuClass($element.parent().parent(), 2);
}
}
};
}else{
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
@ -526,6 +579,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
addMenuClass($element.parent().parent(), 2);
}
} else {
$element.addClass('layui-nav-itemed');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) {
var moduleId = $element.parent().attr('id');
@ -538,6 +592,8 @@ layui.define(["element", "layer", "jquery"], function (exports) {
}
}
};
}
// 自动展开菜单栏
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,

149
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-clear="清理" class="layuimini-clear"><i class="fa fa-trash-o"></i></a>
<a href="javascript:" data-refresh="刷新"><i class="fa fa-refresh"></i></a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:" data-clear="清理" class="layuimini-clear"><i class="fa fa-trash-o"></i></a>
</li>
<li 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 () {
$.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>

166
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">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required">
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div 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,9 +783,11 @@
$("#quantity" + id).val("")
});
} else {
let val = $("#quantity" + id).val();
if(val !== null && val !== undefined && val !== '') {
var req = {};
req.code = mcode;
req.quantity = $("#quantity" + id).val();
req.quantity = val;
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
@ -767,11 +806,17 @@
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 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();
}
});
}
@ -779,6 +824,7 @@
});
}
}
}
})

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

@ -65,7 +65,8 @@
},
toolbar: '#toolbarDemo',
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
cols: [
[
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true},
@ -80,7 +81,8 @@
{field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,

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

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

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

@ -23,7 +23,10 @@
<div class="layui-input-inline">
<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">
@ -93,7 +94,8 @@
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
@ -109,7 +111,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -129,7 +132,7 @@
if (data.state != '') {
req.state = data.state;
}
req.superior = parentId
req.superior = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/company/companyByCondition',
@ -163,8 +166,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子公司',
type: 2,
@ -178,8 +180,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'post'){
} else if (obj.event == 'post') {
var index = layer.open({
title: '岗位列表',
type: 2,

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

@ -23,7 +23,9 @@
<div class="layui-input-inline">
<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>
@ -105,14 +109,16 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
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,
@ -130,7 +136,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/company/companyByCondition',
@ -159,8 +165,7 @@
$(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 = {};
@ -181,7 +186,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -222,8 +227,7 @@
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,
@ -266,8 +269,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'realDelete') { // 彻底删除
} else if (obj.event == 'realDelete') { // 彻底删除
var req = {};
req.id = data.cid;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
@ -286,7 +288,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -311,12 +313,12 @@
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map
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,7 +332,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

@ -23,7 +23,10 @@
<div class="layui-input-inline">
<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">
@ -94,7 +95,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
@ -110,7 +112,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -131,7 +134,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/company/companyByCondition',
@ -165,8 +168,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子公司',
type: 2,

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

@ -37,8 +37,10 @@
<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;" />
<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>-->
@ -74,8 +76,12 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
// 用于加载仓库菜单
function openDepositoryTree(obj){}
function selectMaterialByName(obj){}
function openDepositoryTree(obj) {
}
function selectMaterialByName(obj) {
}
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
@ -97,8 +103,7 @@
fixed: false,
content: '/selectDepository?type=1&clickObj=' + parentId,
});
}
};
//日期
@ -120,8 +125,7 @@
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
},
where: {},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
@ -132,7 +136,8 @@
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'aircode', width: 100, title: '提交编码', sort: true},
@ -145,7 +150,8 @@
{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,
@ -219,7 +225,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -283,7 +289,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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

@ -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,8 +80,11 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
// 用于加载仓库菜单
function selectMaterialByName(obj){}
function selectMaterialByName(obj) {
}
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
@ -136,8 +143,7 @@
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
},
where: {},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
@ -148,7 +154,8 @@
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: '申请编号', sort: true},
{field: 'code', width: 100, title: '申请编码', sort: true},
@ -179,7 +186,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -253,7 +261,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -316,7 +324,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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,

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

@ -12,6 +12,7 @@
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<input style="display:none;" id="nowDay" th:value="${nowDay}">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
@ -19,14 +20,13 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<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" />
<input type="text" class="layui-input" id="brand" name="brand" autocomplete="off"/>
</div>
</div>
<div class="layui-inline">
@ -36,8 +36,10 @@
<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" />
<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">
@ -75,15 +77,19 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script 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" lay-event="applicationIn"> 入库申请</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请
</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div>
</script>
@ -92,17 +98,21 @@
<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>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
// 定义过期警报时间为7天
var warningTime = 604800000;
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
upload = layui.upload;
var nowDay = $("#nowDay").val();
$('#openSonByMateralType').on('click', function () {
layer.open({
@ -118,19 +128,6 @@
});
});
$('#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",
@ -159,7 +156,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号', hidden: true},
@ -168,18 +166,54 @@
{field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture', width: 100, title: '材质'},
{field: 'unit', width: 150, title: '计量单位'},
{field: 'brand', width: 150, title: '品牌'},
{field: 'producedDate', width: 150, title: '生产日期'},
{field: 'shelfLife', width: 150, title: '保质期'},
{field: 'productionPlace', width: 150, title: '产地'},
{field: 'remark', width: 150, title: '备注'},
{field: 'shelfLifeForCalc', width: 150, title: '用于计算时间'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done:function () {
done: function (res, curr, count) {
$("[data-field='id']").css('display', 'none');
$("[data-field='shelfLifeForCalc']").css('display', 'none');
$.each(res['data'], function (i, j) {
let jElement = j['shelfLifeForCalc'];
if (jElement !== null && jElement !== undefined) {
let flag = (Number(jElement) - Number(nowDay) < warningTime);
if (flag) {
// console.log(i + ' -458- ' + 'jdjg is null');
Layui_SetDataTableRowColor('table', i + 1, '#b1070a');
}
}
});
}
});
// 用于给table行上色的方法
function Layui_SetDataTableRowColor(TabDivId, RowIndex, ColorString) {
try {
var div = $("[lay-id='currentTableId'] tr:eq(" + RowIndex + ")");
if (div != null) //找到对象了
{
// console.log(div);
div.css("color", ColorString);
} else {
console.log('没有找到对象');
}
} catch (e) {
console.log(e.message);
}
}
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
@ -189,8 +223,8 @@
if (data.mname !== '') {
req.mname = data.mname;
}
if(data.depositoryId!== ''){
req.depositoryId = data.depositoryId;
if (data.brand !== '') {
req.brand = data.brand;
}
if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId;
@ -230,8 +264,7 @@
$(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 = {};
@ -254,7 +287,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -272,13 +305,11 @@
}
})
})
}
else{
} else {
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'applicationIn'){
} else if (obj.event === 'applicationIn') {
// 入库申请
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
@ -337,7 +368,7 @@
//如果上传成功
var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
}
if (res.code === 200) {
@ -348,7 +379,7 @@
var texture = res.data.dataList[i]["texture"] == null || res.data.dataList[i]["texture"] == undefined ? "" : res.data.dataList[i]["texture"];
var unit = res.data.dataList[i]["unit"] == null || res.data.dataList[i]["unit"] == undefined ? "" : res.data.dataList[i]["unit"];
var typeId = res.data.dataList[i]["typeId"] == null || res.data.dataList[i]["typeId"] == undefined ? "" : res.data.dataList[i]["typeId"];
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+unit +" "+typeId+" :成功" +"</p>"
var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + unit + " " + typeId + " :成功" + "</p>";
re += show
}
@ -371,7 +402,7 @@
upLoader.upload()
})
}
})
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
@ -404,8 +435,7 @@
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
@ -422,7 +452,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -433,8 +463,7 @@
}
})
});
}
else if (obj.event == 'realDelete'){ //彻底删除
} else if (obj.event == 'realDelete') { //彻底删除
var req = {};
req.id = data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
@ -453,7 +482,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -473,8 +502,7 @@
where: {"parentId": parentId}
});
});
}
else if (obj.event == 'manager'){
} else if (obj.event == 'manager') {
layer.open({
type: 2,
@ -490,7 +518,7 @@
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
@ -508,7 +536,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

@ -25,8 +25,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">
@ -36,8 +38,10 @@
<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" />
<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">
@ -76,14 +80,17 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script 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>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div>
</script>
@ -92,7 +99,8 @@
<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>
<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">
@ -164,7 +172,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号', hidden: true},
@ -181,7 +190,8 @@
{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,
@ -238,8 +248,7 @@
$(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 = {};
@ -262,7 +271,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -280,13 +289,11 @@
}
})
})
}
else{
} else {
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'createQrCode'){
} else if (obj.event === 'createQrCode') {
$.ajax({
url: "/material/createQrCode?mid=3",
dataType: 'json',
@ -311,20 +318,20 @@
done: function (res) {
//如果上传成功
if (res.code == 200) {
var re = ""
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>"
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>"
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
}
layer.open({
@ -345,7 +352,7 @@
upLoader.upload()
})
}
})
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
@ -369,8 +376,7 @@
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
@ -387,7 +393,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -398,8 +404,7 @@
}
})
});
}
else if (obj.event == 'realDelete'){ //彻底删除
} else if (obj.event == 'realDelete') { //彻底删除
var req = {};
req.id = data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
@ -418,7 +423,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -438,8 +443,7 @@
where: {"parentId": parentId}
});
});
}
else if (obj.event == 'manager'){
} else if (obj.event == 'manager') {
layer.open({
type: 2,
@ -455,11 +459,11 @@
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
req["id"] = this.value
req["id"] = this.value;
$.ajax({
url: "/material/material_edit",
type: 'post',
@ -473,7 +477,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

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

@ -34,12 +34,14 @@
<script>
var barCode = [];
function notice() {
};
}
function addBarCodeByMid() {
};
}
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
@ -75,7 +77,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 50, title: 'id'},
{field: 'mcode', width: 150, title: '存货编码', sort: true},
@ -85,7 +88,8 @@
{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,
@ -155,7 +159,6 @@
};
/**
* toolbar监听事件
*/
@ -190,8 +193,7 @@
$(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 = {};
@ -214,7 +216,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -238,7 +240,7 @@
return false;
}
}
})
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
@ -260,7 +262,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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

@ -23,7 +23,10 @@
<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>
<option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select>
</div>
</div>
@ -97,7 +100,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: '类型编号', sort: true},
{field: 'tname', width: 120, title: '类型名称', sort: true},
@ -112,7 +116,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -130,7 +135,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
@ -180,7 +185,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -239,7 +244,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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

@ -23,7 +23,10 @@
<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>
<option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select>
</div>
</div>
@ -50,14 +53,17 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script 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>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div>
</script>
@ -67,7 +73,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>
@ -108,7 +115,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'oldId', width: 100, title: '类型编号', sort: true},
@ -116,7 +124,8 @@
{field: 'introduce', width: 200, title: '类型介绍'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -138,7 +147,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
@ -167,8 +176,7 @@
$(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 = {};
@ -191,7 +199,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -209,8 +217,7 @@
}
})
})
}
else{
} else {
layer.msg("未选中记录,请确认!");
return false;
}
@ -229,7 +236,7 @@
if (res.code == 200) {
var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
}
for (let i = 0; i < res.data.dataList.length; i++) {
@ -237,7 +244,7 @@
var id = res.data.dataList[i]["oldId"];
var parentId = res.data.dataList[i]["parentId"] == null ? "" : res.data.dataList[i]["parentId"];
var introduce = res.data.dataList[i]["introduce"] == null ? "" : res.data.dataList[i]["introduce"];
var show = "<p style='color: #00FF00'>"+tname + " "+ id+" " +parentId+"成功" +"</p>"
var show = "<p style='color: #00FF00'>" + tname + " " + id + " " + parentId + "成功" + "</p>";
re += show
}
@ -259,7 +266,7 @@
upLoader.upload()
})
}
})
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
@ -295,8 +302,7 @@
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
} else if (obj.event === 'delete') {
var req = {};
req.id = data.oldId;
$.ajax({
@ -335,7 +341,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -349,8 +355,7 @@
}
}
})
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子类型',
type: 2,
@ -364,8 +369,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'realDelete') { // 彻底删除
} else if (obj.event == 'realDelete') { // 彻底删除
var req = {};
req.id = data.oldId;
$.ajax({
@ -389,8 +393,7 @@
where: {"parentId": parentId}
});
})
}
else{
} else {
layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续', '取消'] //按钮
}, function () {
@ -407,7 +410,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -467,7 +470,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
@ -493,8 +496,7 @@
where: {"parentId": parentId}
});
});
}
else{ // 如果没有物品
} else { // 如果没有物品
$.ajax({
url: "/materialType/EditMaterialTypeState",
type: 'post',
@ -508,7 +510,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
@ -528,7 +530,8 @@
}
})
}
}})
}
})
} else { // 如果启用
$.ajax({
url: "/materialType/EditMaterialTypeState",
@ -543,7 +546,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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>

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

@ -24,7 +24,9 @@
<div class="layui-input-inline">
<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">
@ -95,7 +95,8 @@
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
@ -119,7 +120,8 @@
}
},
{title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -140,8 +142,8 @@
if (data.state != '') {
req.state = data.state;
}
req.superior = parentId
req.organization = organization
req.superior = parentId;
req.organization = organization;
//执行搜索重载
table.reload('currentTableId', {
@ -176,8 +178,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子岗位',
type: 2,
@ -191,8 +192,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
/*var index = layer.open({
title: '设置权限',

26
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>
@ -104,12 +109,14 @@
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
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) {
{
field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender == 1) {
return "男性";
} else if (d.gender == 2) {
@ -119,7 +126,8 @@
} else {
return "";
}
}},
}
},
{
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1) {
@ -158,7 +166,8 @@
{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,
@ -220,7 +229,7 @@
}
}
})
})
});
//监听表格复选框选择
@ -244,8 +253,7 @@
layer.full(index);
});
return false;
}
else if(obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
layer.open({
type: 2,
title: '权限信息',

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

@ -67,7 +67,8 @@
<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>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位
</button>
</div>
</script>
@ -81,7 +82,8 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
</div>
@ -120,7 +122,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname', width: 200, title: '物料名称'},
@ -128,7 +131,8 @@
{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,
@ -180,8 +184,7 @@
$(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 = {};
@ -203,7 +206,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -224,8 +227,7 @@
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'addList'){
} else if (obj.event === 'addList') {
var index = layer.open({
title: '批量增加',
type: 2,
@ -293,7 +295,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -328,7 +330,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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}

62
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,9 +529,44 @@ layui.define(["element", "layer", "jquery"], function (exports) {
listenSwitchMultiModule: function (tabId) {
$("[layuimini-href]").each(function () {
if ($(this).attr("layuimini-href") === tabId) {
var addMenuClass ;
// 如果是移动端
if(miniTab.checkMobile()){
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
var moduleId = $element.parent().attr('id');
$(".layuimini-header-menu li").attr('class', 'layui-nav-item');
$("#" + moduleId + "HeaderId").addClass("layui-this");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
// 自动展开菜单栏
var addMenuClass = function ($element, type) {
} 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");
let text = $("#" + moduleId + "HeaderId").text();
if(text === '仓库管理'){
$("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this');
$(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide');
}
} else {
addMenuClass($element.parent().parent(), 2);
}
}
};
}else{
addMenuClass = function ($element, type) {
if (type === 1) {
$element.addClass('layui-this');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) {
@ -526,6 +579,7 @@ layui.define(["element", "layer", "jquery"], function (exports) {
addMenuClass($element.parent().parent(), 2);
}
} else {
$element.addClass('layui-nav-itemed');
if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) {
var moduleId = $element.parent().attr('id');
@ -538,6 +592,8 @@ layui.define(["element", "layer", "jquery"], function (exports) {
}
}
};
}
// 自动展开菜单栏
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,

166
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">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required">
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div 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,9 +783,11 @@
$("#quantity" + id).val("")
});
} else {
let val = $("#quantity" + id).val();
if(val !== null && val !== undefined && val !== '') {
var req = {};
req.code = mcode;
req.quantity = $("#quantity" + id).val();
req.quantity = val;
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
@ -767,11 +806,17 @@
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 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();
}
});
}
@ -779,6 +824,7 @@
});
}
}
}
})

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

@ -65,7 +65,8 @@
},
toolbar: '#toolbarDemo',
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
cols: [
[
{title: '操作', width: 100, toolbar: '#currentTableBar', align: "center"},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'code', width: 200, title: '提交编码', sort: true},
@ -80,7 +81,8 @@
{field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,

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

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

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

@ -23,7 +23,10 @@
<div class="layui-input-inline">
<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">
@ -93,7 +94,8 @@
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
@ -109,7 +111,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -129,7 +132,7 @@
if (data.state != '') {
req.state = data.state;
}
req.superior = parentId
req.superior = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/company/companyByCondition',
@ -163,8 +166,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子公司',
type: 2,
@ -178,8 +180,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'post'){
} else if (obj.event == 'post') {
var index = layer.open({
title: '岗位列表',
type: 2,

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

@ -23,7 +23,9 @@
<div class="layui-input-inline">
<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>
@ -105,14 +109,16 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
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,
@ -130,7 +136,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/company/companyByCondition',
@ -159,8 +165,7 @@
$(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 = {};
@ -181,7 +186,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -222,8 +227,7 @@
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,
@ -266,8 +269,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'realDelete') { // 彻底删除
} else if (obj.event == 'realDelete') { // 彻底删除
var req = {};
req.id = data.cid;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
@ -286,7 +288,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -311,12 +313,12 @@
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map
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,7 +332,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

@ -23,7 +23,10 @@
<div class="layui-input-inline">
<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">
@ -94,7 +95,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
@ -110,7 +112,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -131,7 +134,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/company/companyByCondition',
@ -165,8 +168,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子公司',
type: 2,

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

@ -37,8 +37,10 @@
<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;" />
<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>-->
@ -74,8 +76,12 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
// 用于加载仓库菜单
function openDepositoryTree(obj){}
function selectMaterialByName(obj){}
function openDepositoryTree(obj) {
}
function selectMaterialByName(obj) {
}
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
@ -97,8 +103,7 @@
fixed: false,
content: '/selectDepository?type=1&clickObj=' + parentId,
});
}
};
//日期
@ -120,8 +125,7 @@
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
},
where: {},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
@ -132,7 +136,8 @@
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: '提交编号', sort: true},
{field: 'aircode', width: 100, title: '提交编码', sort: true},
@ -145,7 +150,8 @@
{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,
@ -219,7 +225,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -283,7 +289,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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

@ -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,8 +80,11 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
// 用于加载仓库菜单
function selectMaterialByName(obj){}
function selectMaterialByName(obj) {
}
layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
@ -136,8 +143,7 @@
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
where: {
},
where: {},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
@ -148,7 +154,8 @@
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
//这里layui和thymeleaf冲突了,要加个空格
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: '申请编号', sort: true},
{field: 'code', width: 100, title: '申请编码', sort: true},
@ -179,7 +186,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -253,7 +261,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -316,7 +324,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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,

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

@ -12,6 +12,7 @@
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<input style="display:none;" id="nowDay" th:value="${nowDay}">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
@ -19,14 +20,13 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<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" />
<input type="text" class="layui-input" id="brand" name="brand" autocomplete="off"/>
</div>
</div>
<div class="layui-inline">
@ -36,8 +36,10 @@
<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" />
<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">
@ -75,15 +77,19 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="核准|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script 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" lay-event="applicationIn"> 入库申请</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请
</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div>
</script>
@ -92,17 +98,21 @@
<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>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a>
</script>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
// 定义过期警报时间为7天
var warningTime = 604800000;
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
upload = layui.upload;
var nowDay = $("#nowDay").val();
$('#openSonByMateralType').on('click', function () {
layer.open({
@ -118,19 +128,6 @@
});
});
$('#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",
@ -159,7 +156,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号', hidden: true},
@ -168,18 +166,54 @@
{field: 'version', width: 200, title: '规格型号', sort: false},
{field: 'texture', width: 100, title: '材质'},
{field: 'unit', width: 150, title: '计量单位'},
{field: 'brand', width: 150, title: '品牌'},
{field: 'producedDate', width: 150, title: '生产日期'},
{field: 'shelfLife', width: 150, title: '保质期'},
{field: 'productionPlace', width: 150, title: '产地'},
{field: 'remark', width: 150, title: '备注'},
{field: 'shelfLifeForCalc', width: 150, title: '用于计算时间'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
skin: 'line',
done:function () {
done: function (res, curr, count) {
$("[data-field='id']").css('display', 'none');
$("[data-field='shelfLifeForCalc']").css('display', 'none');
$.each(res['data'], function (i, j) {
let jElement = j['shelfLifeForCalc'];
if (jElement !== null && jElement !== undefined) {
let flag = (Number(jElement) - Number(nowDay) < warningTime);
if (flag) {
// console.log(i + ' -458- ' + 'jdjg is null');
Layui_SetDataTableRowColor('table', i + 1, '#b1070a');
}
}
});
}
});
// 用于给table行上色的方法
function Layui_SetDataTableRowColor(TabDivId, RowIndex, ColorString) {
try {
var div = $("[lay-id='currentTableId'] tr:eq(" + RowIndex + ")");
if (div != null) //找到对象了
{
// console.log(div);
div.css("color", ColorString);
} else {
console.log('没有找到对象');
}
} catch (e) {
console.log(e.message);
}
}
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
@ -189,8 +223,8 @@
if (data.mname !== '') {
req.mname = data.mname;
}
if(data.depositoryId!== ''){
req.depositoryId = data.depositoryId;
if (data.brand !== '') {
req.brand = data.brand;
}
if (data.materialTypeId != '') {
req.materialTypeId = data.materialTypeId;
@ -230,8 +264,7 @@
$(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 = {};
@ -254,7 +287,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -272,13 +305,11 @@
}
})
})
}
else{
} else {
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'applicationIn'){
} else if (obj.event === 'applicationIn') {
// 入库申请
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
@ -337,7 +368,7 @@
//如果上传成功
var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
}
if (res.code === 200) {
@ -348,7 +379,7 @@
var texture = res.data.dataList[i]["texture"] == null || res.data.dataList[i]["texture"] == undefined ? "" : res.data.dataList[i]["texture"];
var unit = res.data.dataList[i]["unit"] == null || res.data.dataList[i]["unit"] == undefined ? "" : res.data.dataList[i]["unit"];
var typeId = res.data.dataList[i]["typeId"] == null || res.data.dataList[i]["typeId"] == undefined ? "" : res.data.dataList[i]["typeId"];
var show = "<p style='color: #00FF00'>"+mname + " "+ version+" " +code+" "+texture +" "+unit +" "+typeId+" :成功" +"</p>"
var show = "<p style='color: #00FF00'>" + mname + " " + version + " " + code + " " + texture + " " + unit + " " + typeId + " :成功" + "</p>";
re += show
}
@ -371,7 +402,7 @@
upLoader.upload()
})
}
})
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
@ -404,8 +435,7 @@
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
@ -422,7 +452,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -433,8 +463,7 @@
}
})
});
}
else if (obj.event == 'realDelete'){ //彻底删除
} else if (obj.event == 'realDelete') { //彻底删除
var req = {};
req.id = data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
@ -453,7 +482,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -473,8 +502,7 @@
where: {"parentId": parentId}
});
});
}
else if (obj.event == 'manager'){
} else if (obj.event == 'manager') {
layer.open({
type: 2,
@ -490,7 +518,7 @@
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
@ -508,7 +536,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

@ -25,8 +25,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">
@ -36,8 +38,10 @@
<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" />
<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">
@ -76,14 +80,17 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script 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>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div>
</script>
@ -92,7 +99,8 @@
<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>
<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">
@ -164,7 +172,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 150, title: '存货编码', sort: true},
{field: 'id', width: 100, title: 'EAS编号', hidden: true},
@ -181,7 +190,8 @@
{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,
@ -238,8 +248,7 @@
$(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 = {};
@ -262,7 +271,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -280,13 +289,11 @@
}
})
})
}
else{
} else {
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'createQrCode'){
} else if (obj.event === 'createQrCode') {
$.ajax({
url: "/material/createQrCode?mid=3",
dataType: 'json',
@ -311,20 +318,20 @@
done: function (res) {
//如果上传成功
if (res.code == 200) {
var re = ""
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>"
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>"
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
}
layer.open({
@ -345,7 +352,7 @@
upLoader.upload()
})
}
})
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
@ -369,8 +376,7 @@
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
} else if (obj.event === 'delete') {
var req = {};
req.id = data.id;
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
@ -387,7 +393,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -398,8 +404,7 @@
}
})
});
}
else if (obj.event == 'realDelete'){ //彻底删除
} else if (obj.event == 'realDelete') { //彻底删除
var req = {};
req.id = data.id;
layer.confirm('该操作会造成不可逆后果,是否继续?', {
@ -418,7 +423,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -438,8 +443,7 @@
where: {"parentId": parentId}
});
});
}
else if (obj.event == 'manager'){
} else if (obj.event == 'manager') {
layer.open({
type: 2,
@ -455,11 +459,11 @@
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1
}
req["id"] = this.value
req["id"] = this.value;
$.ajax({
url: "/material/material_edit",
type: 'post',
@ -473,7 +477,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

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

@ -34,12 +34,14 @@
<script>
var barCode = [];
function notice() {
};
}
function addBarCodeByMid() {
};
}
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
@ -75,7 +77,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 50, title: 'id'},
{field: 'mcode', width: 150, title: '存货编码', sort: true},
@ -85,7 +88,8 @@
{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,
@ -155,7 +159,6 @@
};
/**
* toolbar监听事件
*/
@ -190,8 +193,7 @@
$(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 = {};
@ -214,7 +216,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -238,7 +240,7 @@
return false;
}
}
})
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
@ -260,7 +262,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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

@ -23,7 +23,10 @@
<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>
<option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select>
</div>
</div>
@ -97,7 +100,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: '类型编号', sort: true},
{field: 'tname', width: 120, title: '类型名称', sort: true},
@ -112,7 +116,8 @@
}
},
{title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -130,7 +135,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
@ -180,7 +185,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -239,7 +244,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {

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

@ -23,7 +23,10 @@
<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>
<option th:each="materialType,iterStar:${materialTypes}"
th:value="${materialType?.getTname()}"
th:text="${materialType?.getTname()}">顶级类型
</option>
</select>
</div>
</div>
@ -50,14 +53,17 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script 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>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload"
lay-event="import">导入数据
</button>
</div>
</script>
@ -67,7 +73,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>
@ -108,7 +115,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'oldId', width: 100, title: '类型编号', sort: true},
@ -116,7 +124,8 @@
{field: 'introduce', width: 200, title: '类型介绍'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -138,7 +147,7 @@
if (data.state != '') {
req.state = data.state;
}
req.parentId = parentId
req.parentId = parentId;
//执行搜索重载
table.reload('currentTableId', {
url: '/materialType/materialTypeRecord',
@ -167,8 +176,7 @@
$(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 = {};
@ -191,7 +199,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -209,8 +217,7 @@
}
})
})
}
else{
} else {
layer.msg("未选中记录,请确认!");
return false;
}
@ -229,7 +236,7 @@
if (res.code == 200) {
var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"
var show = "<p style='color: #ff211e'>" + res.data.errMsg[i] + ":错误" + "</p>";
re += show
}
for (let i = 0; i < res.data.dataList.length; i++) {
@ -237,7 +244,7 @@
var id = res.data.dataList[i]["oldId"];
var parentId = res.data.dataList[i]["parentId"] == null ? "" : res.data.dataList[i]["parentId"];
var introduce = res.data.dataList[i]["introduce"] == null ? "" : res.data.dataList[i]["introduce"];
var show = "<p style='color: #00FF00'>"+tname + " "+ id+" " +parentId+"成功" +"</p>"
var show = "<p style='color: #00FF00'>" + tname + " " + id + " " + parentId + "成功" + "</p>";
re += show
}
@ -259,7 +266,7 @@
upLoader.upload()
})
}
})
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
@ -295,8 +302,7 @@
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
} else if (obj.event === 'delete') {
var req = {};
req.id = data.oldId;
$.ajax({
@ -335,7 +341,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -349,8 +355,7 @@
}
}
})
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子类型',
type: 2,
@ -364,8 +369,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'realDelete') { // 彻底删除
} else if (obj.event == 'realDelete') { // 彻底删除
var req = {};
req.id = data.oldId;
$.ajax({
@ -389,8 +393,7 @@
where: {"parentId": parentId}
});
})
}
else{
} else {
layer.confirm('该操作会造成不可逆后果,是否继续?', {
btn: ['继续', '取消'] //按钮
}, function () {
@ -407,7 +410,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -467,7 +470,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
@ -493,8 +496,7 @@
where: {"parentId": parentId}
});
});
}
else{ // 如果没有物品
} else { // 如果没有物品
$.ajax({
url: "/materialType/EditMaterialTypeState",
type: 'post',
@ -508,7 +510,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
@ -528,7 +530,8 @@
}
})
}
}})
}
})
} else { // 如果启用
$.ajax({
url: "/materialType/EditMaterialTypeState",
@ -543,7 +546,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

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

@ -24,7 +24,9 @@
<div class="layui-input-inline">
<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">
@ -95,7 +95,8 @@
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'id', width: 100, title: 'id', sort: true},
{field: 'number', width: 100, title: '编号', sort: true},
@ -119,7 +120,8 @@
}
},
{title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"}
]],
]
],
limits: [10, 15, 20, 25, 50],
limit: 10,
page: true,
@ -140,8 +142,8 @@
if (data.state != '') {
req.state = data.state;
}
req.superior = parentId
req.organization = organization
req.superior = parentId;
req.organization = organization;
//执行搜索重载
table.reload('currentTableId', {
@ -176,8 +178,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'subclass'){
} else if (obj.event == 'subclass') {
var index = layer.open({
title: '子岗位',
type: 2,
@ -191,8 +192,7 @@
layer.full(index);
});
return false;
}
else if (obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
/*var index = layer.open({
title: '设置权限',

26
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>
@ -104,12 +109,14 @@
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [ [
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) {
{
field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender == 1) {
return "男性";
} else if (d.gender == 2) {
@ -119,7 +126,8 @@
} else {
return "";
}
}},
}
},
{
field: 'state', title: '状态', minWidth: 80, templet: function (d) {
if (d.state == 1) {
@ -158,7 +166,8 @@
{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,
@ -220,7 +229,7 @@
}
}
})
})
});
//监听表格复选框选择
@ -244,8 +253,7 @@
layer.full(index);
});
return false;
}
else if(obj.event == 'add_role'){
} else if (obj.event == 'add_role') {
layer.open({
type: 2,
title: '权限信息',

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

@ -67,7 +67,8 @@
<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>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除库位
</button>
</div>
</script>
@ -81,7 +82,8 @@
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="changeState" {{ d.state == 1 ? 'checked' : '' }} >
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
</div>
@ -120,7 +122,8 @@
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [ [
cols: [
[
{type: "checkbox", width: 50},
{field: 'code', width: 120, title: '库位号', sort: true},
{field: 'mname', width: 200, title: '物料名称'},
@ -128,7 +131,8 @@
{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,
@ -180,8 +184,7 @@
$(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 = {};
@ -203,7 +206,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
@ -224,8 +227,7 @@
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'addList'){
} else if (obj.event === 'addList') {
var index = layer.open({
title: '批量增加',
type: 2,
@ -293,7 +295,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
obj.del();
layer.msg("删除成功", {
@ -328,7 +330,7 @@
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情

Loading…
Cancel
Save