diff --git a/.idea/encodings.xml b/.idea/encodings.xml index aa00ffab..e2d09724 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -3,5 +3,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java b/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java index b4d396e4..0381259e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java +++ b/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java @@ -1,6 +1,20 @@ package com.dreamchaser.depository_manage.config; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.controller.PageController; +import com.dreamchaser.depository_manage.entity.Administration; +import com.dreamchaser.depository_manage.entity.Post; +import com.dreamchaser.depository_manage.entity.UserByPort; +import com.dreamchaser.depository_manage.utils.HttpUtils; import lombok.Data; +import org.apache.http.protocol.HTTP; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 用于 @@ -13,4 +27,45 @@ public class PortConfig { public static String external_url_6666 = "http://172.20.2.87:6666"; // public static String external_url_6666 = "http://127.0.0.1:6666"; + /** + * 获取相应部门的部门负责人 + * @param administration + * @return + */ + public static List findDepartmentHeadByUser(Administration administration){ + String url = PortConfig.external_url + "/org/positionlist"; + Integer maindeparment = administration.getId(); + Map map = new HashMap<>(); + map.put("organization",maindeparment.toString()); + map.put("incharge",1); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } + List userPostList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Post userPost = JSONObject.toJavaObject((JSONObject) list.get(i), Post.class); + userPostList.add(userPost); + } + List userByPortList = new ArrayList<>(); + for (int i = 0; i < userPostList.size(); i++) { + Map param = new HashMap<>(); + Post userPost = userPostList.get(i); + param.put("position",userPost.getId()); + List userByPorts = PageController.FindUserByMap(param); + userByPortList.addAll(userByPorts); + } + return userByPortList; + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index ee78a5e6..94972109 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -121,7 +121,7 @@ public class DepositoryRecordController { List errMsg = new ArrayList<>(); List successMsg = new ArrayList<>(); for (int i = 0; i < params.size(); i++) { - Integer temp = params.get(i); + Integer temp = ObjectFormatUtil.toInteger(params.get(i)); Map insert = new HashMap<>(); Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId"+temp)); insert.put("applicantId",userToken.getId()); @@ -198,21 +198,41 @@ public class DepositoryRecordController { List params = (List) map.get("params"); Integer integer = 0; if(params.size() < 1 && map.size() > 3){ - integer += depositoryRecordService.insertApplicationOutRecord(map); + Integer res = depositoryRecordService.insertApplicationOutRecord(map,userToken); // 插入主订单 + if(res == 1){ // 如果插入成功 + Object id = map.get("id"); // 获取主订单编号 + if(id != null){ + map.remove("id"); + map.put("parentId",id); + } + integer += depositoryRecordService.insertApplicationOutMin(map); + } + }else{ - for (int i = 0; i < params.size(); i++) { - Integer temp = params.get(i); - Map insert = new HashMap<>(); - insert.put("applicantId",userToken.getId()); -// insert.put("departmenthead",departmentHeadByUser.getId()); - insert.put("mid",map.get("mid"+temp)); - insert.put("quantity",map.get("quantity"+temp)); - insert.put("applyRemark",map.get("applyRemark"+temp)); - insert.put("code",map.get("code"+temp)); - insert.put("placeId",map.get("placeId"+temp)); - integer += depositoryRecordService.insertApplicationOutRecord(insert); + // 插入主订单 + // map.put("departmenthead",departmentHeadByUser.getId()); + Integer res = depositoryRecordService.insertApplicationOutRecord(map,userToken); + if(res == 1) { + for (int i = 0; i < params.size(); i++) { + Integer temp = params.get(i); + Map insert = new HashMap<>(); + insert.put("applicantId", userToken.getId()); + insert.put("mid", map.get("mid" + temp)); + insert.put("quantity", map.get("quantity" + temp)); + insert.put("applyRemark", map.get("applyRemark" + temp)); + insert.put("code", map.get("code")); + insert.put("placeId", map.get("placeId" + temp)); + // 获取主订单编号 + insert.put("parentId", map.get("id")); + // 插入子订单 + integer += depositoryRecordService.insertApplicationOutMin(insert); + } + // 插入子订单 + map.put("parentId", map.get("id")); + map.remove("id"); + // 插入子订单 + integer += depositoryRecordService.insertApplicationOutMin(map); } - integer += depositoryRecordService.insertApplicationOutRecord(map); } if(integer != 0 && params.size() < 1){ return CrudUtil.postHandle(integer,1); @@ -328,7 +348,7 @@ public class DepositoryRecordController { map.remove("depositoryId"); Integer integer = 0; if(params.size() < 1 && map.size() > 4){ - integer += depositoryRecordService.transferApply(map); + integer += depositoryRecordService.transferApply(map,userToken); }else if(params.size() > 0){ for (int i = 0; i < params.size(); i++) { Integer temp = params.get(i); @@ -340,9 +360,9 @@ public class DepositoryRecordController { insert.put("quantity",map.get("quantity"+temp)); insert.put("applyRemark",map.get("applyRemark"+temp)); insert.put("code",map.get("code"+temp)); - integer += depositoryRecordService.transferApply(insert); + integer += depositoryRecordService.transferApply(insert,userToken); } - integer += depositoryRecordService.transferApply(map); + integer += depositoryRecordService.transferApply(map,userToken); } if(params.size() < 1) { return CrudUtil.postHandle(integer, 1); @@ -439,7 +459,7 @@ public class DepositoryRecordController { }else if("out".equals(type)){ UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); map.put("departmenthead",departmentHeadByUser.getId()); - success += depositoryRecordService.insertApplicationOutRecord(map); + success += depositoryRecordService.insertApplicationOutRecord(map,userToken); } if(success == 0){ return new RestResponse("",666,new StatusInfo("申请失败","超出最大存储容量")); @@ -493,7 +513,7 @@ public class DepositoryRecordController { outRecord.put("applyRemark",applyRemark); UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); outRecord.put("departmenthead",departmentHeadByUser.getId()); - success += depositoryRecordService.insertApplicationOutRecord(outRecord); + success += depositoryRecordService.insertApplicationOutRecord(outRecord,userToken); } } if(success == 0){ diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index bd31cdc1..1912d7f4 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -1,5 +1,7 @@ package com.dreamchaser.depository_manage.controller; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.pojo.*; @@ -12,6 +14,7 @@ import com.dreamchaser.depository_manage.utils.CrudUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import com.sun.mail.imap.protocol.ID; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -37,6 +40,9 @@ public class MaterialController { @Autowired PlaceService placeService; + @Autowired + private RedisTemplate redisTemplate; + /** * 根据物料进行查询 * @param map @@ -199,6 +205,8 @@ public class MaterialController { return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); } + + // 构造物料二维码 @GetMapping("/createQrCode") public RestResponse createQrCode(@RequestParam("mid") Integer mid) { Material materialById = materialService.findMaterialById(mid); @@ -214,4 +222,94 @@ public class MaterialController { return new RestResponse("err: "+e.getMessage(),678,new StatusInfo("失败","请联系开发人员")); } } + + // 将数据暂存到redis中 + @PostMapping("/temporaryValue") + public RestResponse temporaryValue(@RequestBody Map map,HttpServletRequest request){ + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + ArrayList arrayList = (ArrayList) map.get("materialList"); + ArrayList materailList = new ArrayList(); + for (int i = 0; i < arrayList.size(); i++) { + if(materailList.indexOf(arrayList.get(i)) == -1){ + materailList.add(arrayList.get(i)); + } + } + map.put("materialList",materailList); + redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); + return new RestResponse(); + } + + // 判断当前扫描的物料是否存在 + @GetMapping("/IsMaterialExist") + public RestResponse IsMaterialExist(HttpServletRequest request){ + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); + redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); + JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); + JSONObject depository = (JSONObject) jsonObject.get("depository"); // 扫描的仓库 + JSONObject place = (JSONObject) jsonObject.get("place"); // 扫描的库位 + JSONArray materialList = (JSONArray) jsonObject.get("materialList"); // 扫描的物料集合 + ArrayList newMaterialList = new ArrayList(); + Map map = new HashMap<>(); + + for (int i = 0; i < materialList.size(); i++) { + JSONObject obj = (JSONObject) materialList.get(i);; + map.put("code",obj.get("code")); + if(depository != null){ + map.put("depositoryId",depository.get("did")); + } + if(place != null){ + map.put("depositoryId",place.get("depositoryId")); + } + List inventory = materialService.findInventory(map); + if(inventory.size() > 0){ + MaterialP materialP = inventory.get(0); + Map params = new HashMap<>(); + // 有该物料 + // 重新缓存到redis中 + params.put("mid",materialP.getId()); + params.put("mname",materialP.getMname()); + params.put("code",materialP.getCode()); + params.put("version",materialP.getVersion()); + newMaterialList.add(params); + }else{ + // 没有该物料 + continue; + } + } + map.put("depository",depository); + map.put("place",place); + map.put("materialList",newMaterialList); + redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); + return new RestResponse(); + } + + //用于判断当前出库数量是否合适 + @PostMapping("/MaterialQuantityIsTrue") + public RestResponse MaterialQuantityIsTrue(@RequestBody Map map,HttpServletRequest request){ + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + // 当前出库数量 + Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); + // 标志变量,用于标识当前数量是否合适 + Boolean flag = false; + map.remove("quantity"); + // 获取当前用户所在部门关闭的仓库及公共仓库 + List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); + for (int i = 0; i < depositoryByAdminorg.size(); i++) { + map.put("depositoryId",depositoryByAdminorg.get(i).getId()); + List inventory = materialService.findInventory(map); + if(inventory.size() > 0){ // 如果有库存 + for (int j = 0; j < inventory.size(); j++) { + MaterialP materialP = inventory.get(j); + if(quantity < materialP.getQuantity()){ // 如果当前数量合适则跳出循环 + flag = true; + break; + } + } + + } + } + return new RestResponse(flag); + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index 4dfc589f..301d55af 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.IOException; @@ -62,6 +63,8 @@ public class PageController { @Autowired private PlaceService placeService; + @Autowired + private RedisTemplate redisTemplate; @@ -521,8 +524,11 @@ public class PageController { ModelAndView mv = new ModelAndView(); Material materialById = new Material(); Depository depositoryRecordById = new Depository(); - if(mid != null && depositoryId != null){ + if(mid != null ){ materialById = materialService.findMaterialById(mid); + + } + if(depositoryId != null){ depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId); } mv.addObject("materialById",materialById); @@ -549,14 +555,23 @@ public class PageController { } @GetMapping("/application_out_back") - public ModelAndView application_out_back(Integer mid) { + public ModelAndView application_out_back(Integer code,String depositoryCode) { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/application/application-out_back"); - Material materialById = new Material(); - if(mid != null) { - materialById = materialService.findMaterialById(mid); + MaterialP materialById = new MaterialP(); + if(code != null) { + Map map = new HashMap<>(); + Depository depositoryByCode = depositoryService.findDepositoryByCode(depositoryCode); + map.put("depositoryId",depositoryByCode.getId()); + map.put("code",code); + List inventory = materialService.findInventory(map); + if(inventory.size() < 1){ + mv.addObject("materialById",new Material()); + }else{ + materialById = inventory.get(0); + mv.addObject("materialById",materialById); + } } - mv.addObject("materialById",materialById); return mv; } @@ -816,7 +831,7 @@ public class PageController { // 用于二维码存放数据 Map param = new HashMap<>(); param.put("code",depositoryRecordById.getCode()); - param.put("id",depositoryRecordById.getId()); + param.put("did",depositoryRecordById.getId()); param.put("dname",depositoryRecordById.getDname()); param.put("introduce",depositoryRecordById.getIntroduce()); String context = JSONObject.toJSONString(param); @@ -866,17 +881,21 @@ public class PageController { Place placeById = placeService.findPlaceById(id); // 用于二维码存放数据 Map param = new HashMap<>(); - param.put("id",placeById.getId()); + param.put("pid",placeById.getId()); Depository depositoryRecordById = depositoryService.findDepositoryRecordById(placeById.getDid()); param.put("dname",depositoryRecordById.getDname()); - param.put("code",depositoryRecordById.getCode() +"-"+placeById.getCode()); + param.put("code",placeById.getCode()); + param.put("depositoryId",depositoryRecordById.getId()); List placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(placeById.getId()); StringBuilder mname = new StringBuilder(); + StringBuilder midList = new StringBuilder(); for (int i = 0; i < placeAndMaterialByPid.size(); i++) { Material materialById = materialService.findMaterialById(placeAndMaterialByPid.get(i).getMid()); mname.append(materialById.getMname()).append(", "); + midList.append(materialById.getId()).append(","); } param.put("mname",mname); + param.put("midList",midList); String context = JSONObject.toJSONString(param); String qrCode = ""; try { @@ -1013,7 +1032,7 @@ public class PageController { UserByPort userByPort = FindUserById(recordP.getApplicantId()); // 部门负责人 UserByPort departmenthead = FindUserById(recordP.getDepartmenthead()); - // 仓库管理员 + // 仓储中心负责人 String manager = recordP.getDepositoryManager(); String[] depositoryManagerId = new String[0]; if(manager != null){ @@ -1027,8 +1046,10 @@ public class PageController { depositoryManager.add(user); depositoryManagerNames += user.getName() +","; } - Place placeById = placeService.findPlaceById(recordP.getPlaceId()); - recordP.setPCode(placeById.getCode()); + if(recordP.getPlaceId() != null) { + Place placeById = placeService.findPlaceById(recordP.getPlaceId()); + recordP.setPCode(placeById.getCode()); + } recordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime()))); recordP.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getDepartmentheadTime()))); recordP.setDepositoryManagerName(depositoryManagerNames); @@ -1062,7 +1083,11 @@ public class PageController { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/application/form-step-look_back"); if (id != null) { + // 获取出库主单 ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(id); + // 获取出库子单 + List applicationOutRecordMinByParent = depositoryRecordService.findApplicationOutRecordMinByParent(applicationOutRecordPById.getId()); + // 申请人 UserByPort userByPort = FindUserById(applicationOutRecordPById.getApplicantId()); // 部门负责人 @@ -1088,8 +1113,10 @@ public class PageController { applicationOutRecordPById.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getDepartmentheadTime()))); applicationOutRecordPById.setDepositoryManagerTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getDepositoryManagerTime()))); applicationOutRecordPById.setPrice(applicationOutRecordPById.getPrice() / 100); - Place placeById = placeService.findPlaceById(applicationOutRecordPById.getPlaceId()); - applicationOutRecordPById.setPCode(placeById.getCode()); + if(applicationOutRecordPById.getPlaceId()!=null) { + Place placeById = placeService.findPlaceById(applicationOutRecordPById.getPlaceId()); + applicationOutRecordPById.setPCode(placeById.getCode()); + } mv.addObject("record", applicationOutRecordPById); } else { throw new MyException("缺少必要参数!"); @@ -1403,7 +1430,56 @@ public class PageController { @GetMapping("/scanQrCode") public String scanQrCode(){ - return "pages/uniApp/scanQrCodePlus?callback='/index'"; + return "pages/scanQrCode/ScanQrCode"; + } + + // 获取扫描结果并跳转到入库 + @GetMapping("/application_in_scanQrCode") + public ModelAndView applicationInScanQrCode(HttpServletRequest request){ + ModelAndView mv = new ModelAndView(); + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); + redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); + JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); + JSONObject depository = (JSONObject) jsonObject.get("depository"); + JSONObject place = (JSONObject) jsonObject.get("place"); + JSONArray materialList = (JSONArray) jsonObject.get("materialList"); + if(depository == null && place == null){ + // 如果库位与仓库都未选中 + }else if(depository != null && place == null){ + // 如果选中仓库未选中库位 + mv.addObject("depository",depository); + }else if(place != null && depository == null){ + // 如果选中库位未选中仓库 + mv.addObject("place",place); + } + mv.addObject("materialList",materialList); + mv.setViewName("pages/application/application-in_scanQrCode"); + return mv; } + // 获取扫描结果并跳转到出库 + @GetMapping("/application_Out_scanQrCode") + public ModelAndView applicationOutScanQrCode(HttpServletRequest request){ + ModelAndView mv = new ModelAndView(); + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); + redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); + JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); + JSONObject depository = (JSONObject) jsonObject.get("depository"); + JSONObject place = (JSONObject) jsonObject.get("place"); + JSONArray materialList = (JSONArray) jsonObject.get("materialList"); + if(depository == null && place == null){ + // 如果库位与仓库都未选中 + }else if(depository != null && place == null){ + // 如果选中仓库未选中库位 + mv.addObject("depository",depository); + }else if(place != null && depository == null){ + // 如果选中库位未选中仓库 + mv.addObject("place",place); + } + mv.addObject("materialList",materialList); + mv.setViewName("pages/application/application-out_scanQrCode"); + return mv; + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java index aa2c99f3..193ec77e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java @@ -216,6 +216,7 @@ public class PlaceController { return CrudUtil.postHandle(placeService.UpdatePlace(update),1); } + // 根据物料编号获取库位 @PostMapping("/findPlaceByMid") public RestResponse findPlaceByMid(@RequestBody Map map, HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); @@ -225,7 +226,31 @@ public class PlaceController { for (int i = 0; i < depositoryByAdminorg.size(); i++) { Depository depository = depositoryByAdminorg.get(i); List placeByMidAndDid = placeService.findPlaceByMidAndDid(mid, depository.getId()); - placeList.addAll(placeByMidAndDid); + for (int j = 0; j < placeByMidAndDid.size(); j++) { + int index = placeList.indexOf(placeByMidAndDid.get(j)); + if(index == -1){ + placeList.add(placeByMidAndDid.get(j)); + } + } + } + return new RestResponse(placeList); + } + // 根据物料编码以及仓库编号获取具体库位 + @PostMapping("/findPlaceByMcodeAndDid") + public RestResponse findPlaceByMcodeAndDid(@RequestBody Map map,HttpServletRequest request){ + List inventory = materialService.findInventory(map); + List placeList = new ArrayList<>(); + if(inventory.size() > 0){ // 如果有当前物料 + for (int i = 0; i < inventory.size(); i++) { + MaterialP materialP = inventory.get(i); + List placeByMidAndDid = placeService.findPlaceByMidAndDid(materialP.getId(), ObjectFormatUtil.toInteger(map.get("depositoryId"))); + for (int j = 0; j < placeByMidAndDid.size(); j++) { + int index = placeList.indexOf(placeByMidAndDid.get(j)); + if(index == -1){ + placeList.add(placeByMidAndDid.get(j)); + } + } + } } return new RestResponse(placeList); } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java index 07b1b926..00f5a699 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java @@ -110,4 +110,11 @@ public class ApplicationOutRecord { */ private Integer placeId; + /** + * 订单状态 + */ + private Integer pass; + + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecordMin.java b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecordMin.java index c102060f..1cbae241 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecordMin.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecordMin.java @@ -1,4 +1,47 @@ package com.dreamchaser.depository_manage.entity; +import lombok.Data; + +/** + * 出库子订单 + */ +@Data public class ApplicationOutRecordMin { + /** + * id + */ + private Integer id; + + /** + * 物料id + */ + private Integer mid; + + /** + * 仓库id + */ + private Integer depositoryId; + /** + * 对应库位id + */ + private Integer placeId; + /** + * 数量 + */ + private Integer quantity; + /** + * 出库单号 + */ + private String code; + + /** + * 审核人编号 + */ + private Integer checkId; + + /** + * 主订单编号 + */ + private Integer parentId; + } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java index a2c917c7..9f3ce302 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java @@ -149,4 +149,11 @@ public interface DepositoryMapper { * @return */ List findDepositoryByAdminorgAndParent(Map map); + + /** + * 根据仓库编码获取仓库 + * @param depositoryCode + * @return + */ + Depository findDepositoryByCode(String depositoryCode); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index 20735aa5..7fb56933 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -64,6 +64,16 @@ or d.adminorg = '' + + + @@ -630,6 +648,38 @@ ) + + + insert into application_out_record_min (id,mid,quantity,code,depositoryId,placeId,checkId,parentId) + values( + #{id}, + #{mid}, + #{quantity}, + #{code}, + #{depositoryId}, + #{placeId}, + #{checkId}, + #{parentId} + ) + + + + + + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml index 74884189..dd79fe19 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -350,7 +350,7 @@ depositoryCode = #{depositoryCode}, - + number_of_temporary = #{numberOfTemporary}, diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java index 0b84e0d7..788e2c9b 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java @@ -143,4 +143,9 @@ public class ApplicationOutRecordP { * 对应库位编码 */ private String pCode; + + /** + * 订单状态 + */ + private Integer pass; } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java index 4848e251..52f7c7c8 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java @@ -127,4 +127,7 @@ public class MaterialP { this.depositoryId = material.getDepositoryId(); // 仓库id this.placeCode = material.getPlaceCode(); // 库位编码 } + + public MaterialP() { + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java index 1f501651..c2a2908d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java @@ -1,8 +1,6 @@ package com.dreamchaser.depository_manage.service; -import com.dreamchaser.depository_manage.entity.ApplicationInRecord; -import com.dreamchaser.depository_manage.entity.ApplicationOutRecord; -import com.dreamchaser.depository_manage.entity.DepositoryRecord; +import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.pojo.*; import java.util.List; @@ -32,7 +30,7 @@ public interface DepositoryRecordService { * @param map 仓库调度信息 * @return 受影响的行数 */ - Integer transferApply(Map map); + Integer transferApply(Map map,UserByPort userByPort); /** @@ -256,7 +254,7 @@ public interface DepositoryRecordService { * @param map * @return */ - Integer insertApplicationOutRecord(Map map); + Integer insertApplicationOutRecord(Map map, UserByPort userToken); /** @@ -299,4 +297,20 @@ public interface DepositoryRecordService { * @return */ Integer deleteApplicaionInPlace(Map map); + + + /** + * 插入一条出库子订单 + * @param map + * @return + */ + Integer insertApplicationOutMin(Map map); + + + /** + * 根据主表获取所有子表 + * @param id + * @return + */ + List findApplicationOutRecordMinByParent(Integer id); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java index 2f724ebc..ab2721ac 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java @@ -147,4 +147,11 @@ public interface DepositoryService { */ List findDepositoryByAdminorg(String adminorg); + /** + * 根据仓库编码获取仓库 + * @param code + * @return + */ + Depository findDepositoryByCode(String code); + } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java b/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java index ea5d2bae..b6d26516 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java @@ -109,4 +109,7 @@ public interface PlaceService { */ Integer addMaterialOnPlace(Map map); + + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index a4428c73..8f812a4b 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -96,7 +96,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { temp.put("dcode", depositoryRecordById.getCode()); // 获取当前仓库库存 Double Inventory = depositoryMapper.getToDayInventoryByDName(temp); - String code = createCode(depositoryRecordById.getDname(), "InOrderNumber");//构造单号 + String code = createCode(depositoryRecordById.getDname(), "InOrderNumber","in","");//构造单号 Double quantity = Double.parseDouble((String) map.get("quantity")); Double price = Double.parseDouble((String) map.get("price")); Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); @@ -123,6 +123,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if (materialByCondition.size() > 0) { // 如果当前存在 Material mt = materialByCondition.get(0); map.put("oldPrice",mt.getPrice()); + map.put("mid",mt.getId()); mt.setAmounts(mt.getAmounts() + amounts); mt.setQuantity((int) (mt.getQuantity() + quantity)); mt.setPrice(avgPrice); @@ -146,6 +147,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { return depositoryRecordMapper.insertApplicationInRecord(map); } + + /** * 插入一条出库记录 * @@ -153,9 +156,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return */ @Override - public Integer insertApplicationOutRecord(Map map) { + public Integer insertApplicationOutRecord(Map map,UserByPort userToken) { String placeId = (String) map.get("placeId"); - if("".equals(placeId)){ + if("".equals(placeId) || "0".equals(placeId)){ map.put("placeId",0); } Double quantity = Double.parseDouble((String) map.get("quantity")); @@ -166,8 +169,6 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Material materialById = materialMapper.findMaterialById(mid); int amounts = (int) ((materialById.getPrice() / 100) * quantity * 100); map.put("price", amounts); - String simpleTime = DateUtil.getSimpleTime(new Date()); - map.put("depositoryId", materialById.getDepositoryId()); map.put("state", "待部门负责人审核"); map.put("istransfer", 2); Map update = new HashMap<>(); @@ -179,7 +180,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { update.put("numberOfTemporary", numberOfTemporary + quantity); materialMapper.updateMaterial(update); Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(materialById.getDepositoryId()); - String code = createCode(depositoryRecordById.getDname(), "outOrderNumber"); + Administration company = PageController.getCompany(userToken.getMaindeparment()); + String code = createCode(depositoryRecordById.getDname(), "outOrderNumber","out",company.getName()); map.put("code", code); return depositoryRecordMapper.insertApplicationOutRecord(map); } @@ -339,6 +341,26 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } + /** + * 插入一条出库子订单 + * @param map + * @return + */ + @Override + public Integer insertApplicationOutMin(Map map) { + return depositoryRecordMapper.insertApplicationOutRecordMin(map); + } + + /** + * 根据主表获取所有子表 + * @param id + * @return + */ + @Override + public List findApplicationOutRecordMinByParent(Integer id) { + return depositoryRecordMapper.findApplicationOutRecordMinByParent(id); + } + /** * 转移申请 * @@ -347,7 +369,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Override @Transactional - public Integer transferApply(Map map) { + public Integer transferApply(Map map,UserByPort userByPort) { Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); Double quantity = Double.parseDouble((String) map.get("quantity")); Material material = materialMapper.findMaterialById(mid); @@ -374,7 +396,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { TransferRecord transferRecordByCondition = transferRecordMapper.findTransferRecordByCondition(map).get(0); map.put("transferId", transferRecordByCondition.getId()); Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(material.getDepositoryId()); - map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber")); + Administration company = PageController.getCompany(userByPort.getMaindeparment()); + map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber","out",company.getName())); String placeId = (String) map.get("placeId"); if("".equals(placeId)){ map.put("placeId",0); @@ -393,7 +416,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { @Transactional public Integer review(Map map, Integer userid) { ApplicationOutRecordP record = depositoryRecordMapper.findApplicationOutRecordPById(ObjectFormatUtil.toInteger(map.get("id"))); - Object id = map.get("id"); + Object id = map.get("id"); // 主订单编号 map.remove("id"); if (map.containsKey("departmentheadPass")) { String simpleTime = DateUtil.getSimpleTime(new Date()); @@ -401,14 +424,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("departmenthead", userid); Integer departmentheadPass = (Integer) map.get("departmentheadPass"); if (departmentheadPass == 1) { - map.put("state", "待仓库管理员审核"); - String depositoryManager = ""; - List userIdByDidList = roleService.findUserIdByDid(record.getDepositoryId()); - for (int i = 0; i < userIdByDidList.size(); i++) { - UserByPort userByPort = PageController.FindUserById(userIdByDidList.get(i)); - depositoryManager += userByPort.getId().toString() + ","; + map.put("state", "待仓储中心负责人审核"); + // 获取仓储中心详情 + Administration company = PageController.getCompany(361); + // 获取仓储中心负责人 + List departmentHeadByUser = PortConfig.findDepartmentHeadByUser(company); + StringBuilder depositoryManager = new StringBuilder(); + for (int i = 0; i < departmentHeadByUser.size(); i++) { + depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); } - map.put("depositoryManager", depositoryManager); + map.put("depositoryManager", depositoryManager.toString()); } else { map.put("state", "部门负责人审核未通过"); } @@ -418,11 +443,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("depositoryManagerTime", DateUtil.DateTimeToTimeStamp(simpleTime)); map.put("depositoryManager", userid); map.put("depositoryId", record.getDepositoryId()); - map.put("mid", record.getMid()); - Material material = materialMapper.findMaterialById(record.getMid()); + // 获取主单下的子单 + List applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(record.getId()); + for (int i = 0; i < applicationOutRecordMinByParent.size(); i++) { + + } + // map.put("mid", record.getMid()); + // Material material = materialMapper.findMaterialById(record.getMid()); Integer depositoryManagerPass = (Integer) map.get("depositoryManagerPass"); if (depositoryManagerPass == 1) { - boolean flag = true; + /*boolean flag = true; Integer istransfer = record.getIstransfer(); Integer placeId = record.getPlaceId(); if(istransfer == 1){ @@ -480,15 +510,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("state", "未出库"); map.put("depositoryManagerMessage", "当前仓位库存量不足"); Map update = new HashMap<>(); - update.put("id", material.getId()); +// update.put("id", material.getId()); update.put("numberOfTemporary", 0); materialMapper.updateMaterial(update); depositoryRecordMapper.updateApplicationOutRecord(map); return -1; } - map.put("state", "已出库"); + */ + map.put("state", "出库中"); } else { - map.put("state", "仓库管理员审核未通过"); + map.put("state", "仓储中心负责人审核未通过"); } } map.put("id",id); @@ -1163,9 +1194,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @param depositoryName * @return */ - private String createCode(String depositoryName, String key) { + private String createCode(String depositoryName, String key,String type,String mainDeparmentName) { RLock lock = redissonClient.getLock(key); -// 单号(公司简称+仓库简称+年月日+数字(位数设置>=9)) +// 入库单号(公司简称+仓库简称+年月日+数字(位数设置>=9)) String code = "GK"; String nowTime = DateUtil.getNowTime(); depositoryName = WordUtil.getPinYinHeadChar(depositoryName); @@ -1179,7 +1210,13 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { redisTemplate.boundValueOps(key).set(String.valueOf(newNumber), DateUtil.getSecondsNextEarlyMorning(), TimeUnit.SECONDS); lock.unlock(); orderNumber = String.format("%09d", ObjectFormatUtil.toInteger(orderNumber)); - code = code + depositoryName + nowTime + orderNumber; + if("in".equals(type)){ + code = code + depositoryName + nowTime + orderNumber; + } + else if("out".equals(type)){ + mainDeparmentName = WordUtil.getPinYinHeadChar(mainDeparmentName); + code = code + mainDeparmentName + nowTime + orderNumber; + } return code; } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java index 271828f7..73c57946 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java @@ -370,6 +370,16 @@ public class DepositoryServiceImpl implements DepositoryService { return depositoryByAdminorg; } + /** + * 根据仓库编码获取仓库 + * @param code + * @return + */ + @Override + public Depository findDepositoryByCode(String code) { + return depositoryMapper.findDepositoryByCode(code); + } + //判断是否有子类 public boolean isChildForDepository(Integer parentId){ boolean flag = false; diff --git a/src/main/resources/static/js/VueQrcodeReader.umd.min.js b/src/main/resources/static/js/VueQrcodeReader.umd.min.js new file mode 100644 index 00000000..a6b2fa16 --- /dev/null +++ b/src/main/resources/static/js/VueQrcodeReader.umd.min.js @@ -0,0 +1,2 @@ +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["VueQrcodeReader"]=t():e["VueQrcodeReader"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="fb15")}({"00ee":function(e,t,r){var o=r("b622"),n=o("toStringTag"),a={};a[n]="z",e.exports="[object z]"===String(a)},"0366":function(e,t,r){var o=r("1c0b");e.exports=function(e,t,r){if(o(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,o){return e.call(t,r,o)};case 3:return function(r,o,n){return e.call(t,r,o,n)}}return function(){return e.apply(t,arguments)}}},"0538":function(e,t,r){"use strict";var o=r("1c0b"),n=r("861d"),a=[].slice,c={},i=function(e,t,r){if(!(t in c)){for(var o=[],n=0;n=r&&parseInt(o[r],10)}function b(){if("object"===("undefined"===typeof window?"undefined":Object(m["a"])(window))){if(k)return;"undefined"!==typeof console&&"function"===typeof console.log&&console.log.apply(console,arguments)}}function y(e,t){B&&console.warn(e+" is deprecated, please use "+t+" instead.")}function g(e){var t={browser:null,version:null};if("undefined"===typeof e||!e.navigator)return t.browser="Not a browser.",t;var r=e.navigator;if(r.mozGetUserMedia)t.browser="firefox",t.version=w(r.userAgent,/Firefox\/(\d+)\./,1);else if(r.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)t.browser="chrome",t.version=w(r.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(r.mediaDevices&&r.userAgent.match(/Edge\/(\d+).(\d+)$/))t.browser="edge",t.version=w(r.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!e.RTCPeerConnection||!r.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=w(r.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}function C(e){return"[object Object]"===Object.prototype.toString.call(e)}function P(e){return C(e)?Object.keys(e).reduce((function(t,r){var o=C(e[r]),n=o?P(e[r]):e[r],c=o&&!Object.keys(n).length;return void 0===n||c?t:Object.assign(t,a({},r,n))}),{}):e}var x=b;function S(e){var t=e&&e.navigator;if(t.mediaDevices){var r=g(e),o=function(e){if("object"!==Object(m["a"])(e)||e.mandatory||e.optional)return e;var t={};return Object.keys(e).forEach((function(r){if("require"!==r&&"advanced"!==r&&"mediaSource"!==r){var o="object"===Object(m["a"])(e[r])?e[r]:{ideal:e[r]};void 0!==o.exact&&"number"===typeof o.exact&&(o.min=o.max=o.exact);var n=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==o.ideal){t.optional=t.optional||[];var a={};"number"===typeof o.ideal?(a[n("min",r)]=o.ideal,t.optional.push(a),a={},a[n("max",r)]=o.ideal,t.optional.push(a)):(a[n("",r)]=o.ideal,t.optional.push(a))}void 0!==o.exact&&"number"!==typeof o.exact?(t.mandatory=t.mandatory||{},t.mandatory[n("",r)]=o.exact):["min","max"].forEach((function(e){void 0!==o[e]&&(t.mandatory=t.mandatory||{},t.mandatory[n(e,r)]=o[e])}))}})),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},n=function(e,n){if(r.version>=61)return n(e);if(e=JSON.parse(JSON.stringify(e)),e&&"object"===Object(m["a"])(e.audio)){var a=function(e,t,r){t in e&&!(r in e)&&(e[r]=e[t],delete e[t])};e=JSON.parse(JSON.stringify(e)),a(e.audio,"autoGainControl","googAutoGainControl"),a(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=o(e.audio)}if(e&&"object"===Object(m["a"])(e.video)){var c=e.video.facingMode;c=c&&("object"===Object(m["a"])(c)?c:{ideal:c});var i,s=r.version<66;if(c&&("user"===c.exact||"environment"===c.exact||"user"===c.ideal||"environment"===c.ideal)&&(!t.mediaDevices.getSupportedConstraints||!t.mediaDevices.getSupportedConstraints().facingMode||s))if(delete e.video.facingMode,"environment"===c.exact||"environment"===c.ideal?i=["back","rear"]:"user"!==c.exact&&"user"!==c.ideal||(i=["front"]),i)return t.mediaDevices.enumerateDevices().then((function(t){t=t.filter((function(e){return"videoinput"===e.kind}));var r=t.find((function(e){return i.some((function(t){return e.label.toLowerCase().includes(t)}))}));return!r&&t.length&&i.includes("back")&&(r=t[t.length-1]),r&&(e.video.deviceId=c.exact?{exact:r.deviceId}:{ideal:r.deviceId}),e.video=o(e.video),x("chrome: "+JSON.stringify(e)),n(e)}));e.video=o(e.video)}return x("chrome: "+JSON.stringify(e)),n(e)},a=function(e){return r.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},c=function(e,r,o){n(e,(function(e){t.webkitGetUserMedia(e,r,(function(e){o&&o(a(e))}))}))};if(t.getUserMedia=c.bind(t),t.mediaDevices.getUserMedia){var i=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return n(e,(function(e){return i(e).then((function(t){if(e.audio&&!t.getAudioTracks().length||e.video&&!t.getVideoTracks().length)throw t.getTracks().forEach((function(e){e.stop()})),new DOMException("","NotFoundError");return t}),(function(e){return Promise.reject(a(e))}))}))}}}}function O(e){var t=e&&e.navigator,r=function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString:function(){return this.name}}},o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return o(e).catch((function(e){return Promise.reject(r(e))}))}}function j(e){var t=g(e),r=e&&e.navigator,o=e&&e.MediaStreamTrack;if(r.getUserMedia=function(e,t,o){y("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),r.mediaDevices.getUserMedia(e).then(t,o)},!(t.version>55&&"autoGainControl"in r.mediaDevices.getSupportedConstraints())){var n=function(e,t,r){t in e&&!(r in e)&&(e[r]=e[t],delete e[t])},a=r.mediaDevices.getUserMedia.bind(r.mediaDevices);if(r.mediaDevices.getUserMedia=function(e){return"object"===Object(m["a"])(e)&&"object"===Object(m["a"])(e.audio)&&(e=JSON.parse(JSON.stringify(e)),n(e.audio,"autoGainControl","mozAutoGainControl"),n(e.audio,"noiseSuppression","mozNoiseSuppression")),a(e)},o&&o.prototype.getSettings){var c=o.prototype.getSettings;o.prototype.getSettings=function(){var e=c.apply(this,arguments);return n(e,"mozAutoGainControl","autoGainControl"),n(e,"mozNoiseSuppression","noiseSuppression"),e}}if(o&&o.prototype.applyConstraints){var i=o.prototype.applyConstraints;o.prototype.applyConstraints=function(e){return"audio"===this.kind&&"object"===Object(m["a"])(e)&&(e=JSON.parse(JSON.stringify(e)),n(e,"autoGainControl","mozAutoGainControl"),n(e,"noiseSuppression","mozNoiseSuppression")),i.apply(this,[e])}}}}r("c975"),r("a434");function E(e){var t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){var r=t.mediaDevices,o=r.getUserMedia.bind(r);t.mediaDevices.getUserMedia=function(e){return o(M(e))}}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,r,o){t.mediaDevices.getUserMedia(e).then(r,o)}.bind(t))}function M(e){return e&&void 0!==e.video?Object.assign({},e,{video:P(e.video)}):e}var L=function(e){var t=!1,r=void 0;return function(){return t||(r=e.apply(void 0,arguments),t=!0),r}},R=L((function(){var e=g(window),t=e.browser;switch(t){case"chrome":S(window);break;case"firefox":j(window);break;case"edge":O(window);break;case"safari":E(window);break;default:throw new p["c"]}})),A=function(){function e(t,r){Object(d["a"])(this,e),this.videoEl=t,this.stream=r}return h(e,[{key:"stop",value:function(){var e=this;this.videoEl.srcObject=null,this.stream.getTracks().forEach((function(t){e.stream.removeTrack(t),t.stop()}))}},{key:"getCapabilities",value:function(){var e,t,r=this.stream.getVideoTracks(),o=Object(l["a"])(r,1),n=o[0];return null!==(e=null===n||void 0===n||null===(t=n.getCapabilities)||void 0===t?void 0:t.call(n))&&void 0!==e?e:{}}}]),e}(),I=function(){var e=Object(s["a"])(regeneratorRuntime.mark((function e(t){var r,o,n,a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r=["OBS Virtual Camera","OBS-Camera"],e.next=3,navigator.mediaDevices.enumerateDevices();case 3:if(o=e.sent.filter((function(e){var t=e.kind;return"videoinput"===t})).filter((function(e){var t=e.label;return!r.includes(t)})).filter((function(e){var t=e.label;return!t.includes("infrared")})),!(o.length>2)){e.next=16;break}n=o[0],a=o[o.length-1],e.t0=t,e.next="auto"===e.t0?10:"rear"===e.t0?11:"front"===e.t0?12:13;break;case 10:return e.abrupt("return",{deviceId:{exact:a.deviceId}});case 11:return e.abrupt("return",{deviceId:{exact:a.deviceId}});case 12:return e.abrupt("return",{deviceId:{exact:n.deviceId}});case 13:return e.abrupt("return",void 0);case 14:e.next=23;break;case 16:e.t1=t,e.next="auto"===e.t1?19:"rear"===e.t1?20:"front"===e.t1?21:22;break;case 19:return e.abrupt("return",{facingMode:{ideal:"environment"}});case 20:return e.abrupt("return",{facingMode:{exact:"environment"}});case 21:return e.abrupt("return",{facingMode:{exact:"user"}});case 22:return e.abrupt("return",void 0);case 23:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),T=function(e,t){return _.apply(this,arguments)};function _(){return _=Object(s["a"])(regeneratorRuntime.mark((function e(t,r){var o,n,a,c,s,u,d,f,h,m;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(a=r.camera,c=r.torch,!0===window.isSecureContext){e.next=3;break}throw new p["b"];case 3:if(void 0!==(null===(o=navigator)||void 0===o||null===(n=o.mediaDevices)||void 0===n?void 0:n.getUserMedia)){e.next=5;break}throw new p["c"];case 5:return e.next=7,R();case 7:return e.t0=i,e.t1={width:{min:360,ideal:640,max:1920},height:{min:240,ideal:480,max:1080}},e.next=11,I(a);case 11:return e.t2=e.sent,e.t3=(0,e.t0)(e.t1,e.t2),s={audio:!1,video:e.t3},e.next=16,navigator.mediaDevices.getUserMedia(s);case 16:return u=e.sent,void 0!==t.srcObject?t.srcObject=u:void 0!==t.mozSrcObject?t.mozSrcObject=u:window.URL.createObjectURL?t.src=window.URL.createObjectURL(u):window.webkitURL?t.src=window.webkitURL.createObjectURL(u):t.src=u,e.next=20,Object(v["a"])(t,"loadeddata");case 20:return e.next=22,Object(v["b"])(500);case 22:return c&&(d=u.getVideoTracks(),f=Object(l["a"])(d,1),h=f[0],m=h.getCapabilities(),m.torch?h.applyConstraints({advanced:[{torch:!0}]}):console.warn("device does not support torch capability")),e.abrupt("return",new A(t,u));case 24:case"end":return e.stop()}}),e)}))),_.apply(this,arguments)}var N=r("b3af"),U={name:"qrcode-stream",mixins:[N["a"]],props:{camera:{type:String,default:"auto",validator:function(e){return["auto","rear","front","off"].includes(e)}},torch:{type:Boolean,default:!1},track:{type:Function}},data:function(){return{cameraInstance:null,destroyed:!1}},computed:{shouldStream:function(){return!1===this.destroyed&&"off"!==this.camera},shouldScan:function(){return!0===this.shouldStream&&null!==this.cameraInstance},scanInterval:function(){return void 0===this.track?500:40}},watch:{shouldStream:function(e){if(!e){var t=this.$refs.pauseFrame,r=t.getContext("2d"),o=this.$refs.video;t.width=o.videoWidth,t.height=o.videoHeight,r.drawImage(o,0,0,o.videoWidth,o.videoHeight)}},shouldScan:function(e){e&&(this.clearCanvas(this.$refs.pauseFrame),this.clearCanvas(this.$refs.trackingLayer),this.startScanning())},torch:function(){this.init()},camera:function(){this.init()}},mounted:function(){this.init()},beforeDestroy:function(){this.beforeResetCamera(),this.destroyed=!0},methods:{init:function(){var e=this,t=Object(s["a"])(regeneratorRuntime.mark((function t(){var r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(e.beforeResetCamera(),"off"!==e.camera){t.next=6;break}return e.cameraInstance=null,t.abrupt("return",{capabilities:{}});case 6:return t.next=8,T(e.$refs.video,{camera:e.camera,torch:e.torch});case 8:return e.cameraInstance=t.sent,r=e.cameraInstance.getCapabilities(),e.destroyed&&e.cameraInstance.stop(),t.abrupt("return",{capabilities:r});case 12:case"end":return t.stop()}}),t)})))();this.$emit("init",t)},startScanning:function(){var e=this,t=function(t){e.onDetect(Promise.resolve(t))};Object(u["a"])(this.$refs.video,{detectHandler:t,locateHandler:this.onLocate,minDelay:this.scanInterval})},beforeResetCamera:function(){null!==this.cameraInstance&&(this.cameraInstance.stop(),this.cameraInstance=null)},onLocate:function(e){var t=this.$refs.trackingLayer,r=this.$refs.video;if(void 0!==t)if(e.length>0&&void 0!==this.track&&void 0!==r){var o=r.offsetWidth,n=r.offsetHeight,a=r.videoWidth,c=r.videoHeight,s=Math.max(o/a,n/c),u=a*s,l=c*s,d=u/a,f=l/c,h=(o-u)/2,p=(n-l)/2,v=function(e){var t=e.x,r=e.y;return{x:Math.floor(t*d),y:Math.floor(r*f)}},m=function(e){var t=e.x,r=e.y;return{x:Math.floor(t+h),y:Math.floor(r+p)}},k=e.map((function(e){var t=e.boundingBox,r=e.cornerPoints,o=m(v({x:t.x,y:t.y})),n=o.x,a=o.y,c=v({x:t.width,y:t.height}),s=c.x,u=c.y;return i(i({},e),{},{cornerPoints:r.map((function(e){return m(v(e))})),boundingBox:DOMRectReadOnly.fromRect({x:n,y:a,width:s,height:u})})}));t.width=r.offsetWidth,t.height=r.offsetHeight;var B=t.getContext("2d");this.track(k,B)}else this.clearCanvas(t)},repaintTrackingLayer:function(e,t,r){var o=this,n=t.getContext("2d");window.requestAnimationFrame((function(){t.width=displayWidth,t.height=displayHeight,o.trackRepaintFunction(coordinatesAdjusted,n)}))},clearCanvas:function(e){var t=e.getContext("2d");t.clearRect(0,0,e.width,e.height)}}},D=U,F=(r("15fd"),r("2877")),z=Object(F["a"])(D,o,n,!1,null,"35411cc1",null);t["a"]=z.exports},"0d3b":function(e,t,r){var o=r("d039"),n=r("b622"),a=r("c430"),c=n("iterator");e.exports=!o((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,r="";return e.pathname="c%20d",t.forEach((function(e,o){t["delete"]("b"),r+=o+e})),a&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[c]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}))},"131a":function(e,t,r){var o=r("23e7"),n=r("d2bb");o({target:"Object",stat:!0},{setPrototypeOf:n})},"13d5":function(e,t,r){"use strict";var o=r("23e7"),n=r("d58f").left,a=r("a640"),c=r("ae40"),i=a("reduce"),s=c("reduce",{1:0});o({target:"Array",proto:!0,forced:!i||!s},{reduce:function(e){return n(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,t,r){var o=r("c6b6"),n=r("9263");e.exports=function(e,t){var r=e.exec;if("function"===typeof r){var a=r.call(e,t);if("object"!==typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return n.call(e,t)}},"159b":function(e,t,r){var o=r("da84"),n=r("fdbc"),a=r("17c2"),c=r("9112");for(var i in n){var s=o[i],u=s&&s.prototype;if(u&&u.forEach!==a)try{c(u,"forEach",a)}catch(l){u.forEach=a}}},"15fd":function(e,t,r){"use strict";var o=r("1d20"),n=r.n(o);n.a},"17c2":function(e,t,r){"use strict";var o=r("b727").forEach,n=r("a640"),a=r("ae40"),c=n("forEach"),i=a("forEach");e.exports=c&&i?[].forEach:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}},"19aa":function(e,t){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return e}},"1be4":function(e,t,r){var o=r("d066");e.exports=o("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1c7e":function(e,t,r){var o=r("b622"),n=o("iterator"),a=!1;try{var c=0,i={next:function(){return{done:!!c++}},return:function(){a=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(s){}e.exports=function(e,t){if(!t&&!a)return!1;var r=!1;try{var o={};o[n]=function(){return{next:function(){return{done:r=!0}}}},e(o)}catch(s){}return r}},"1cc0":function(e,t,r){"use strict";r.d(t,"a",(function(){return v})),r.d(t,"c",(function(){return m})),r.d(t,"b",(function(){return k}));r("b0c0");var o=r("d4ec");r("131a");function n(e,t){return n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(e,t)}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}r("4ae1"),r("3410");function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}r("d3b7"),r("25f0");function i(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}var s=r("53ca");function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(e,t){return!t||"object"!==Object(s["a"])(t)&&"function"!==typeof t?u(e):t}function d(e){var t=i();return function(){var r,o=c(e);if(t){var n=c(this).constructor;r=Reflect.construct(o,arguments,n)}else r=o.apply(this,arguments);return l(this,r)}}r("e260"),r("4ec9"),r("3ca3"),r("ddb0"),r("c975");function f(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function h(e,t,r){return h=i()?Reflect.construct:function(e,t,r){var o=[null];o.push.apply(o,t);var a=Function.bind.apply(e,o),c=new a;return r&&n(c,r.prototype),c},h.apply(null,arguments)}function p(e){var t="function"===typeof Map?new Map:void 0;return p=function(e){if(null===e||!f(e))return e;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return h(e,arguments,c(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),n(r,e)},p(e)}var v=function(e){a(r,e);var t=d(r);function r(){var e;return Object(o["a"])(this,r),e=t.call(this,"can't process cross-origin image"),e.name="DropImageFetchError",e}return r}(p(Error)),m=function(e){a(r,e);var t=d(r);function r(){var e;return Object(o["a"])(this,r),e=t.call(this,"this browser has no Stream API support"),e.name="StreamApiNotSupportedError",e}return r}(p(Error)),k=function(e){a(r,e);var t=d(r);function r(){var e;return Object(o["a"])(this,r),e=t.call(this,"camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP."),e.name="InsecureContextError",e}return r}(p(Error))},"1cdc":function(e,t,r){var o=r("342f");e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},"1d20":function(e,t,r){var o=r("7260");"string"===typeof o&&(o=[[e.i,o,""]]),o.locals&&(e.exports=o.locals);var n=r("499e").default;n("22ae7e38",o,!0,{sourceMap:!1,shadowMode:!1})},"1d80":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"1da1":function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));r("d3b7"),r("e6cf");function o(e,t,r,o,n,a,c){try{var i=e[a](c),s=i.value}catch(u){return void r(u)}i.done?t(s):Promise.resolve(s).then(o,n)}function n(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var c=e.apply(t,r);function i(e){o(c,n,a,i,s,"next",e)}function s(e){o(c,n,a,i,s,"throw",e)}i(void 0)}))}}},"1dde":function(e,t,r){var o=r("d039"),n=r("b622"),a=r("2d00"),c=n("species");e.exports=function(e){return a>=51||!o((function(){var t=[],r=t.constructor={};return r[c]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},2266:function(e,t,r){var o=r("825a"),n=r("e95a"),a=r("50c4"),c=r("0366"),i=r("35a1"),s=r("9bdd"),u=function(e,t){this.stopped=e,this.result=t},l=e.exports=function(e,t,r,l,d){var f,h,p,v,m,k,B,w=c(t,r,l?2:1);if(d)f=e;else{if(h=i(e),"function"!=typeof h)throw TypeError("Target is not iterable");if(n(h)){for(p=0,v=a(e.length);v>p;p++)if(m=l?w(o(B=e[p])[0],B[1]):w(e[p]),m&&m instanceof u)return m;return new u(!1)}f=h.call(e)}k=f.next;while(!(B=k.call(f)).done)if(m=s(f,w,B.value,l),"object"==typeof m&&m&&m instanceof u)return m;return new u(!1)};l.stop=function(e){return new u(!0,e)}},"23cb":function(e,t,r){var o=r("a691"),n=Math.max,a=Math.min;e.exports=function(e,t){var r=o(e);return r<0?n(r+t,0):a(r,t)}},"23e7":function(e,t,r){var o=r("da84"),n=r("06cf").f,a=r("9112"),c=r("6eeb"),i=r("ce4e"),s=r("e893"),u=r("94ca");e.exports=function(e,t){var r,l,d,f,h,p,v=e.target,m=e.global,k=e.stat;if(l=m?o:k?o[v]||i(v,{}):(o[v]||{}).prototype,l)for(d in t){if(h=t[d],e.noTargetGet?(p=n(l,d),f=p&&p.value):f=l[d],r=u(m?d:v+(k?".":"#")+d,e.forced),!r&&void 0!==f){if(typeof h===typeof f)continue;s(h,f)}(e.sham||f&&f.sham)&&a(h,"sham",!0),c(l,d,h,e)}}},"241c":function(e,t,r){var o=r("ca84"),n=r("7839"),a=n.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,a)}},"24fb":function(e,t,r){"use strict";function o(e,t){var r=e[1]||"",o=e[3];if(!o)return r;if(t&&"function"===typeof btoa){var a=n(o),c=o.sources.map((function(e){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(e," */")}));return[r].concat(c).concat([a]).join("\n")}return[r].join("\n")}function n(e){var t=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(t);return"/*# ".concat(r," */")}e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r=o(t,e);return t[2]?"@media ".concat(t[2]," {").concat(r,"}"):r})).join("")},t.i=function(e,r,o){"string"===typeof e&&(e=[[null,e,""]]);var n={};if(o)for(var a=0;a1?arguments[1]:void 0)}})},"25f0":function(e,t,r){"use strict";var o=r("6eeb"),n=r("825a"),a=r("d039"),c=r("ad6d"),i="toString",s=RegExp.prototype,u=s[i],l=a((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),d=u.name!=i;(l||d)&&o(RegExp.prototype,i,(function(){var e=n(this),t=String(e.source),r=e.flags,o=String(void 0===r&&e instanceof RegExp&&!("flags"in s)?c.call(e):r);return"/"+t+"/"+o}),{unsafe:!0})},2626:function(e,t,r){"use strict";var o=r("d066"),n=r("9bf2"),a=r("b622"),c=r("83ab"),i=a("species");e.exports=function(e){var t=o(e),r=n.f;c&&t&&!t[i]&&r(t,i,{configurable:!0,get:function(){return this}})}},2877:function(e,t,r){"use strict";function o(e,t,r,o,n,a,c,i){var s,u="function"===typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=r,u._compiled=!0),o&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),c?(s=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(c)},u._ssrRegister=s):n&&(s=i?function(){n.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:n),s)if(u.functional){u._injectStyles=s;var l=u.render;u.render=function(e,t){return s.call(t),l(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,s):[s]}return{exports:e,options:u}}r.d(t,"a",(function(){return o}))},2909:function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var o=r("6b75");function n(e){if(Array.isArray(e))return Object(o["a"])(e)}r("a4d3"),r("e01a"),r("d28b"),r("a630"),r("e260"),r("d3b7"),r("3ca3"),r("ddb0");function a(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}var c=r("06c5");function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(e){return n(e)||a(e)||Object(c["a"])(e)||i()}},"2b3d":function(e,t,r){"use strict";r("3ca3");var o,n=r("23e7"),a=r("83ab"),c=r("0d3b"),i=r("da84"),s=r("37e8"),u=r("6eeb"),l=r("19aa"),d=r("5135"),f=r("60da"),h=r("4df4"),p=r("6547").codeAt,v=r("5fb2"),m=r("d44e"),k=r("9861"),B=r("69f3"),w=i.URL,b=k.URLSearchParams,y=k.getState,g=B.set,C=B.getterFor("URL"),P=Math.floor,x=Math.pow,S="Invalid authority",O="Invalid scheme",j="Invalid host",E="Invalid port",M=/[A-Za-z]/,L=/[\d+-.A-Za-z]/,R=/\d/,A=/^(0x|0X)/,I=/^[0-7]+$/,T=/^\d+$/,_=/^[\dA-Fa-f]+$/,N=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,U=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,D=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,F=/[\u0009\u000A\u000D]/g,z=function(e,t){var r,o,n;if("["==t.charAt(0)){if("]"!=t.charAt(t.length-1))return j;if(r=X(t.slice(1,-1)),!r)return j;e.host=r}else if(Q(e)){if(t=v(t),N.test(t))return j;if(r=q(t),null===r)return j;e.host=r}else{if(U.test(t))return j;for(r="",o=h(t),n=0;n4)return e;for(r=[],o=0;o1&&"0"==n.charAt(0)&&(a=A.test(n)?16:8,n=n.slice(8==a?1:2)),""===n)c=0;else{if(!(10==a?T:8==a?I:_).test(n))return e;c=parseInt(n,a)}r.push(c)}for(o=0;o=x(256,5-t))return null}else if(c>255)return null;for(i=r.pop(),o=0;o6)return;o=0;while(f()){if(n=null,o>0){if(!("."==f()&&o<4))return;d++}if(!R.test(f()))return;while(R.test(f())){if(a=parseInt(f(),10),null===n)n=a;else{if(0==n)return;n=10*n+a}if(n>255)return;d++}s[u]=256*s[u]+n,o++,2!=o&&4!=o||u++}if(4!=o)return;break}if(":"==f()){if(d++,!f())return}else if(f())return;s[u++]=t}else{if(null!==l)return;d++,u++,l=u}}if(null!==l){c=u-l,u=7;while(0!=u&&c>0)i=s[u],s[u--]=s[l+c-1],s[l+--c]=i}else if(8!=u)return;return s},G=function(e){for(var t=null,r=1,o=null,n=0,a=0;a<8;a++)0!==e[a]?(n>r&&(t=o,r=n),o=null,n=0):(null===o&&(o=a),++n);return n>r&&(t=o,r=n),t},$=function(e){var t,r,o,n;if("number"==typeof e){for(t=[],r=0;r<4;r++)t.unshift(e%256),e=P(e/256);return t.join(".")}if("object"==typeof e){for(t="",o=G(e),r=0;r<8;r++)n&&0===e[r]||(n&&(n=!1),o===r?(t+=r?":":"::",n=!0):(t+=e[r].toString(16),r<7&&(t+=":")));return"["+t+"]"}return e},W={},H=f({},W,{" ":1,'"':1,"<":1,">":1,"`":1}),V=f({},H,{"#":1,"?":1,"{":1,"}":1}),J=f({},V,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),K=function(e,t){var r=p(e,0);return r>32&&r<127&&!d(t,e)?e:encodeURIComponent(e)},Z={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Q=function(e){return d(Z,e.scheme)},Y=function(e){return""!=e.username||""!=e.password},ee=function(e){return!e.host||e.cannotBeABaseURL||"file"==e.scheme},te=function(e,t){var r;return 2==e.length&&M.test(e.charAt(0))&&(":"==(r=e.charAt(1))||!t&&"|"==r)},re=function(e){var t;return e.length>1&&te(e.slice(0,2))&&(2==e.length||"/"===(t=e.charAt(2))||"\\"===t||"?"===t||"#"===t)},oe=function(e){var t=e.path,r=t.length;!r||"file"==e.scheme&&1==r&&te(t[0],!0)||t.pop()},ne=function(e){return"."===e||"%2e"===e.toLowerCase()},ae=function(e){return e=e.toLowerCase(),".."===e||"%2e."===e||".%2e"===e||"%2e%2e"===e},ce={},ie={},se={},ue={},le={},de={},fe={},he={},pe={},ve={},me={},ke={},Be={},we={},be={},ye={},ge={},Ce={},Pe={},xe={},Se={},Oe=function(e,t,r,n){var a,c,i,s,u=r||ce,l=0,f="",p=!1,v=!1,m=!1;r||(e.scheme="",e.username="",e.password="",e.host=null,e.port=null,e.path=[],e.query=null,e.fragment=null,e.cannotBeABaseURL=!1,t=t.replace(D,"")),t=t.replace(F,""),a=h(t);while(l<=a.length){switch(c=a[l],u){case ce:if(!c||!M.test(c)){if(r)return O;u=se;continue}f+=c.toLowerCase(),u=ie;break;case ie:if(c&&(L.test(c)||"+"==c||"-"==c||"."==c))f+=c.toLowerCase();else{if(":"!=c){if(r)return O;f="",u=se,l=0;continue}if(r&&(Q(e)!=d(Z,f)||"file"==f&&(Y(e)||null!==e.port)||"file"==e.scheme&&!e.host))return;if(e.scheme=f,r)return void(Q(e)&&Z[e.scheme]==e.port&&(e.port=null));f="","file"==e.scheme?u=we:Q(e)&&n&&n.scheme==e.scheme?u=ue:Q(e)?u=he:"/"==a[l+1]?(u=le,l++):(e.cannotBeABaseURL=!0,e.path.push(""),u=Pe)}break;case se:if(!n||n.cannotBeABaseURL&&"#"!=c)return O;if(n.cannotBeABaseURL&&"#"==c){e.scheme=n.scheme,e.path=n.path.slice(),e.query=n.query,e.fragment="",e.cannotBeABaseURL=!0,u=Se;break}u="file"==n.scheme?we:de;continue;case ue:if("/"!=c||"/"!=a[l+1]){u=de;continue}u=pe,l++;break;case le:if("/"==c){u=ve;break}u=Ce;continue;case de:if(e.scheme=n.scheme,c==o)e.username=n.username,e.password=n.password,e.host=n.host,e.port=n.port,e.path=n.path.slice(),e.query=n.query;else if("/"==c||"\\"==c&&Q(e))u=fe;else if("?"==c)e.username=n.username,e.password=n.password,e.host=n.host,e.port=n.port,e.path=n.path.slice(),e.query="",u=xe;else{if("#"!=c){e.username=n.username,e.password=n.password,e.host=n.host,e.port=n.port,e.path=n.path.slice(),e.path.pop(),u=Ce;continue}e.username=n.username,e.password=n.password,e.host=n.host,e.port=n.port,e.path=n.path.slice(),e.query=n.query,e.fragment="",u=Se}break;case fe:if(!Q(e)||"/"!=c&&"\\"!=c){if("/"!=c){e.username=n.username,e.password=n.password,e.host=n.host,e.port=n.port,u=Ce;continue}u=ve}else u=pe;break;case he:if(u=pe,"/"!=c||"/"!=f.charAt(l+1))continue;l++;break;case pe:if("/"!=c&&"\\"!=c){u=ve;continue}break;case ve:if("@"==c){p&&(f="%40"+f),p=!0,i=h(f);for(var k=0;k65535)return E;e.port=Q(e)&&b===Z[e.scheme]?null:b,f=""}if(r)return;u=ge;continue}return E}f+=c;break;case we:if(e.scheme="file","/"==c||"\\"==c)u=be;else{if(!n||"file"!=n.scheme){u=Ce;continue}if(c==o)e.host=n.host,e.path=n.path.slice(),e.query=n.query;else if("?"==c)e.host=n.host,e.path=n.path.slice(),e.query="",u=xe;else{if("#"!=c){re(a.slice(l).join(""))||(e.host=n.host,e.path=n.path.slice(),oe(e)),u=Ce;continue}e.host=n.host,e.path=n.path.slice(),e.query=n.query,e.fragment="",u=Se}}break;case be:if("/"==c||"\\"==c){u=ye;break}n&&"file"==n.scheme&&!re(a.slice(l).join(""))&&(te(n.path[0],!0)?e.path.push(n.path[0]):e.host=n.host),u=Ce;continue;case ye:if(c==o||"/"==c||"\\"==c||"?"==c||"#"==c){if(!r&&te(f))u=Ce;else if(""==f){if(e.host="",r)return;u=ge}else{if(s=z(e,f),s)return s;if("localhost"==e.host&&(e.host=""),r)return;f="",u=ge}continue}f+=c;break;case ge:if(Q(e)){if(u=Ce,"/"!=c&&"\\"!=c)continue}else if(r||"?"!=c)if(r||"#"!=c){if(c!=o&&(u=Ce,"/"!=c))continue}else e.fragment="",u=Se;else e.query="",u=xe;break;case Ce:if(c==o||"/"==c||"\\"==c&&Q(e)||!r&&("?"==c||"#"==c)){if(ae(f)?(oe(e),"/"==c||"\\"==c&&Q(e)||e.path.push("")):ne(f)?"/"==c||"\\"==c&&Q(e)||e.path.push(""):("file"==e.scheme&&!e.path.length&&te(f)&&(e.host&&(e.host=""),f=f.charAt(0)+":"),e.path.push(f)),f="","file"==e.scheme&&(c==o||"?"==c||"#"==c))while(e.path.length>1&&""===e.path[0])e.path.shift();"?"==c?(e.query="",u=xe):"#"==c&&(e.fragment="",u=Se)}else f+=K(c,V);break;case Pe:"?"==c?(e.query="",u=xe):"#"==c?(e.fragment="",u=Se):c!=o&&(e.path[0]+=K(c,W));break;case xe:r||"#"!=c?c!=o&&("'"==c&&Q(e)?e.query+="%27":e.query+="#"==c?"%23":K(c,W)):(e.fragment="",u=Se);break;case Se:c!=o&&(e.fragment+=K(c,H));break}l++}},je=function(e){var t,r,o=l(this,je,"URL"),n=arguments.length>1?arguments[1]:void 0,c=String(e),i=g(o,{type:"URL"});if(void 0!==n)if(n instanceof je)t=C(n);else if(r=Oe(t={},String(n)),r)throw TypeError(r);if(r=Oe(i,c,null,t),r)throw TypeError(r);var s=i.searchParams=new b,u=y(s);u.updateSearchParams(i.query),u.updateURL=function(){i.query=String(s)||null},a||(o.href=Me.call(o),o.origin=Le.call(o),o.protocol=Re.call(o),o.username=Ae.call(o),o.password=Ie.call(o),o.host=Te.call(o),o.hostname=_e.call(o),o.port=Ne.call(o),o.pathname=Ue.call(o),o.search=De.call(o),o.searchParams=Fe.call(o),o.hash=ze.call(o))},Ee=je.prototype,Me=function(){var e=C(this),t=e.scheme,r=e.username,o=e.password,n=e.host,a=e.port,c=e.path,i=e.query,s=e.fragment,u=t+":";return null!==n?(u+="//",Y(e)&&(u+=r+(o?":"+o:"")+"@"),u+=$(n),null!==a&&(u+=":"+a)):"file"==t&&(u+="//"),u+=e.cannotBeABaseURL?c[0]:c.length?"/"+c.join("/"):"",null!==i&&(u+="?"+i),null!==s&&(u+="#"+s),u},Le=function(){var e=C(this),t=e.scheme,r=e.port;if("blob"==t)try{return new URL(t.path[0]).origin}catch(o){return"null"}return"file"!=t&&Q(e)?t+"://"+$(e.host)+(null!==r?":"+r:""):"null"},Re=function(){return C(this).scheme+":"},Ae=function(){return C(this).username},Ie=function(){return C(this).password},Te=function(){var e=C(this),t=e.host,r=e.port;return null===t?"":null===r?$(t):$(t)+":"+r},_e=function(){var e=C(this).host;return null===e?"":$(e)},Ne=function(){var e=C(this).port;return null===e?"":String(e)},Ue=function(){var e=C(this),t=e.path;return e.cannotBeABaseURL?t[0]:t.length?"/"+t.join("/"):""},De=function(){var e=C(this).query;return e?"?"+e:""},Fe=function(){return C(this).searchParams},ze=function(){var e=C(this).fragment;return e?"#"+e:""},qe=function(e,t){return{get:e,set:t,configurable:!0,enumerable:!0}};if(a&&s(Ee,{href:qe(Me,(function(e){var t=C(this),r=String(e),o=Oe(t,r);if(o)throw TypeError(o);y(t.searchParams).updateSearchParams(t.query)})),origin:qe(Le),protocol:qe(Re,(function(e){var t=C(this);Oe(t,String(e)+":",ce)})),username:qe(Ae,(function(e){var t=C(this),r=h(String(e));if(!ee(t)){t.username="";for(var o=0;o1?arguments[1]:void 0,t.length)),o=String(e);return l?l.call(t,o,r):t.slice(r,r+o.length)===o}})},"2cf4":function(e,t,r){var o,n,a,c=r("da84"),i=r("d039"),s=r("c6b6"),u=r("0366"),l=r("1be4"),d=r("cc12"),f=r("1cdc"),h=c.location,p=c.setImmediate,v=c.clearImmediate,m=c.process,k=c.MessageChannel,B=c.Dispatch,w=0,b={},y="onreadystatechange",g=function(e){if(b.hasOwnProperty(e)){var t=b[e];delete b[e],t()}},C=function(e){return function(){g(e)}},P=function(e){g(e.data)},x=function(e){c.postMessage(e+"",h.protocol+"//"+h.host)};p&&v||(p=function(e){var t=[],r=1;while(arguments.length>r)t.push(arguments[r++]);return b[++w]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},o(w),w},v=function(e){delete b[e]},"process"==s(m)?o=function(e){m.nextTick(C(e))}:B&&B.now?o=function(e){B.now(C(e))}:k&&!f?(n=new k,a=n.port2,n.port1.onmessage=P,o=u(a.postMessage,a,1)):!c.addEventListener||"function"!=typeof postMessage||c.importScripts||i(x)||"file:"===h.protocol?o=y in d("script")?function(e){l.appendChild(d("script"))[y]=function(){l.removeChild(this),g(e)}}:function(e){setTimeout(C(e),0)}:(o=x,c.addEventListener("message",P,!1))),e.exports={set:p,clear:v}},"2d00":function(e,t,r){var o,n,a=r("da84"),c=r("342f"),i=a.process,s=i&&i.versions,u=s&&s.v8;u?(o=u.split("."),n=o[0]+o[1]):c&&(o=c.match(/Edge\/(\d+)/),(!o||o[1]>=74)&&(o=c.match(/Chrome\/(\d+)/),o&&(n=o[1]))),e.exports=n&&+n},3410:function(e,t,r){var o=r("23e7"),n=r("d039"),a=r("7b0b"),c=r("e163"),i=r("e177"),s=n((function(){c(1)}));o({target:"Object",stat:!0,forced:s,sham:!i},{getPrototypeOf:function(e){return c(a(e))}})},"342f":function(e,t,r){var o=r("d066");e.exports=o("navigator","userAgent")||""},"35a1":function(e,t,r){var o=r("f5df"),n=r("3f8c"),a=r("b622"),c=a("iterator");e.exports=function(e){if(void 0!=e)return e[c]||e["@@iterator"]||n[o(e)]}},"37e8":function(e,t,r){var o=r("83ab"),n=r("9bf2"),a=r("825a"),c=r("df75");e.exports=o?Object.defineProperties:function(e,t){a(e);var r,o=c(t),i=o.length,s=0;while(i>s)n.f(e,r=o[s++],t[r]);return e}},3835:function(e,t,r){"use strict";function o(e){if(Array.isArray(e))return e}r.d(t,"a",(function(){return i}));r("a4d3"),r("e01a"),r("d28b"),r("e260"),r("d3b7"),r("3ca3"),r("ddb0");function n(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var r=[],o=!0,n=!1,a=void 0;try{for(var c,i=e[Symbol.iterator]();!(o=(c=i.next()).done);o=!0)if(r.push(c.value),t&&r.length===t)break}catch(s){n=!0,a=s}finally{try{o||null==i["return"]||i["return"]()}finally{if(n)throw a}}return r}}var a=r("06c5");function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e,t){return o(e)||n(e,t)||Object(a["a"])(e,t)||c()}},"3bbe":function(e,t,r){var o=r("861d");e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"3ca3":function(e,t,r){"use strict";var o=r("6547").charAt,n=r("69f3"),a=r("7dd0"),c="String Iterator",i=n.set,s=n.getterFor(c);a(String,"String",(function(e){i(this,{type:c,string:String(e),index:0})}),(function(){var e,t=s(this),r=t.string,n=t.index;return n>=r.length?{value:void 0,done:!0}:(e=o(r,n),t.index+=e.length,{value:e,done:!1})}))},"3f8c":function(e,t){e.exports={}},4160:function(e,t,r){"use strict";var o=r("23e7"),n=r("17c2");o({target:"Array",proto:!0,forced:[].forEach!=n},{forEach:n})},"428f":function(e,t,r){var o=r("da84");e.exports=o},"44ad":function(e,t,r){var o=r("d039"),n=r("c6b6"),a="".split;e.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==n(e)?a.call(e,""):Object(e)}:Object},"44d2":function(e,t,r){var o=r("b622"),n=r("7c73"),a=r("9bf2"),c=o("unscopables"),i=Array.prototype;void 0==i[c]&&a.f(i,c,{configurable:!0,value:n(null)}),e.exports=function(e){i[c][e]=!0}},"44de":function(e,t,r){var o=r("da84");e.exports=function(e,t){var r=o.console;r&&r.error&&(1===arguments.length?r.error(e):r.error(e,t))}},"44e7":function(e,t,r){var o=r("861d"),n=r("c6b6"),a=r("b622"),c=a("match");e.exports=function(e){var t;return o(e)&&(void 0!==(t=e[c])?!!t:"RegExp"==n(e))}},"45fc":function(e,t,r){"use strict";var o=r("23e7"),n=r("b727").some,a=r("a640"),c=r("ae40"),i=a("some"),s=c("some");o({target:"Array",proto:!0,forced:!i||!s},{some:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}})},"466d":function(e,t,r){"use strict";var o=r("d784"),n=r("825a"),a=r("50c4"),c=r("1d80"),i=r("8aa5"),s=r("14c3");o("match",1,(function(e,t,r){return[function(t){var r=c(this),o=void 0==t?void 0:t[e];return void 0!==o?o.call(t,r):new RegExp(t)[e](String(r))},function(e){var o=r(t,e,this);if(o.done)return o.value;var c=n(e),u=String(this);if(!c.global)return s(c,u);var l=c.unicode;c.lastIndex=0;var d,f=[],h=0;while(null!==(d=s(c,u))){var p=String(d[0]);f[h]=p,""===p&&(c.lastIndex=i(u,a(c.lastIndex),l)),h++}return 0===h?null:f}]}))},4840:function(e,t,r){var o=r("825a"),n=r("1c0b"),a=r("b622"),c=a("species");e.exports=function(e,t){var r,a=o(e).constructor;return void 0===a||void 0==(r=o(a)[c])?t:n(r)}},4930:function(e,t,r){var o=r("d039");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},"499e":function(e,t,r){"use strict";function o(e,t){for(var r=[],o={},n=0;nr.parts.length&&(o.parts.length=r.parts.length)}else{var c=[];for(n=0;nl)if(i=s[l++],i!=i)return!0}else for(;u>l;l++)if((e||l in s)&&s[l]===r)return e||l||0;return!e&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(e,t,r){"use strict";var o=r("23e7"),n=r("b727").filter,a=r("1dde"),c=r("ae40"),i=a("filter"),s=c("filter");o({target:"Array",proto:!0,forced:!i||!s},{filter:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,t,r){"use strict";var o=r("0366"),n=r("7b0b"),a=r("9bdd"),c=r("e95a"),i=r("50c4"),s=r("8418"),u=r("35a1");e.exports=function(e){var t,r,l,d,f,h,p=n(e),v="function"==typeof this?this:Array,m=arguments.length,k=m>1?arguments[1]:void 0,B=void 0!==k,w=u(p),b=0;if(B&&(k=o(k,m>2?arguments[2]:void 0,2)),void 0==w||v==Array&&c(w))for(t=i(p.length),r=new v(t);t>b;b++)h=B?k(p[b],b):p[b],s(r,b,h);else for(d=w.call(p),f=d.next,r=new v;!(l=f.call(d)).done;b++)h=B?a(d,k,[l.value,b],!0):l.value,s(r,b,h);return r.length=b,r}},"4ec9":function(e,t,r){"use strict";var o=r("6d61"),n=r("6566");e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n)},"50c4":function(e,t,r){var o=r("a691"),n=Math.min;e.exports=function(e){return e>0?n(o(e),9007199254740991):0}},5135:function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},"53ca":function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));r("a4d3"),r("e01a"),r("d28b"),r("e260"),r("d3b7"),r("3ca3"),r("ddb0");function o(e){return o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}},5692:function(e,t,r){var o=r("c430"),n=r("c6cd");(e.exports=function(e,t){return n[e]||(n[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,r){var o=r("d066"),n=r("241c"),a=r("7418"),c=r("825a");e.exports=o("Reflect","ownKeys")||function(e){var t=n.f(c(e)),r=a.f;return r?t.concat(r(e)):t}},"5a34":function(e,t,r){var o=r("44e7");e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},"5c0b":function(e,t,r){"use strict";var o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("input",{attrs:{type:"file",name:"image",accept:"image/*",capture:"environment",multiple:""},on:{change:e.onChangeInput}})},n=[],a=(r("4160"),r("d81d"),r("159b"),r("2909")),c=r("a180"),i=r("b3af"),s={name:"qrcode-capture",mixins:[i["a"]],methods:{onChangeInput:function(e){var t=Object(a["a"])(e.target.files),r=t.map(c["b"]);r.forEach(this.onDetect)}}},u=s,l=r("2877"),d=Object(l["a"])(u,o,n,!1,null,null,null);t["a"]=d.exports},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"5fb2":function(e,t,r){"use strict";var o=2147483647,n=36,a=1,c=26,i=38,s=700,u=72,l=128,d="-",f=/[^\0-\u007E]/,h=/[.\u3002\uFF0E\uFF61]/g,p="Overflow: input needs wider integers to process",v=n-a,m=Math.floor,k=String.fromCharCode,B=function(e){var t=[],r=0,o=e.length;while(r=55296&&n<=56319&&r>1,e+=m(e/t);e>v*c>>1;o+=n)e=m(e/v);return m(o+(v+1)*e/(e+i))},y=function(e){var t=[];e=B(e);var r,i,s=e.length,f=l,h=0,v=u;for(r=0;r=f&&im((o-h)/P))throw RangeError(p);for(h+=(C-f)*P,f=C,r=0;ro)throw RangeError(p);if(i==f){for(var x=h,S=n;;S+=n){var O=S<=v?a:S>=v+c?c:S-v;if(xl){var h,p=u(arguments[l++]),v=d?a(p).concat(d(p)):a(p),m=v.length,k=0;while(m>k)h=v[k++],o&&!f.call(p,h)||(r[h]=p[h])}return r}:l},6547:function(e,t,r){var o=r("a691"),n=r("1d80"),a=function(e){return function(t,r){var a,c,i=String(n(t)),s=o(r),u=i.length;return s<0||s>=u?e?"":void 0:(a=i.charCodeAt(s),a<55296||a>56319||s+1===u||(c=i.charCodeAt(s+1))<56320||c>57343?e?i.charAt(s):a:e?i.slice(s,s+2):c-56320+(a-55296<<10)+65536)}};e.exports={codeAt:a(!1),charAt:a(!0)}},6566:function(e,t,r){"use strict";var o=r("9bf2").f,n=r("7c73"),a=r("e2cc"),c=r("0366"),i=r("19aa"),s=r("2266"),u=r("7dd0"),l=r("2626"),d=r("83ab"),f=r("f183").fastKey,h=r("69f3"),p=h.set,v=h.getterFor;e.exports={getConstructor:function(e,t,r,u){var l=e((function(e,o){i(e,l,t),p(e,{type:t,index:n(null),first:void 0,last:void 0,size:0}),d||(e.size=0),void 0!=o&&s(o,e[u],e,r)})),h=v(t),m=function(e,t,r){var o,n,a=h(e),c=k(e,t);return c?c.value=r:(a.last=c={index:n=f(t,!0),key:t,value:r,previous:o=a.last,next:void 0,removed:!1},a.first||(a.first=c),o&&(o.next=c),d?a.size++:e.size++,"F"!==n&&(a.index[n]=c)),e},k=function(e,t){var r,o=h(e),n=f(t);if("F"!==n)return o.index[n];for(r=o.first;r;r=r.next)if(r.key==t)return r};return a(l.prototype,{clear:function(){var e=this,t=h(e),r=t.index,o=t.first;while(o)o.removed=!0,o.previous&&(o.previous=o.previous.next=void 0),delete r[o.index],o=o.next;t.first=t.last=void 0,d?t.size=0:e.size=0},delete:function(e){var t=this,r=h(t),o=k(t,e);if(o){var n=o.next,a=o.previous;delete r.index[o.index],o.removed=!0,a&&(a.next=n),n&&(n.previous=a),r.first==o&&(r.first=n),r.last==o&&(r.last=a),d?r.size--:t.size--}return!!o},forEach:function(e){var t,r=h(this),o=c(e,arguments.length>1?arguments[1]:void 0,3);while(t=t?t.next:r.first){o(t.value,t.key,this);while(t&&t.removed)t=t.previous}},has:function(e){return!!k(this,e)}}),a(l.prototype,r?{get:function(e){var t=k(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),d&&o(l.prototype,"size",{get:function(){return h(this).size}}),l},setStrong:function(e,t,r){var o=t+" Iterator",n=v(t),a=v(o);u(e,t,(function(e,t){p(this,{type:o,target:e,state:n(e),kind:t,last:void 0})}),(function(){var e=a(this),t=e.kind,r=e.last;while(r&&r.removed)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?"keys"==t?{value:r.key,done:!1}:"values"==t?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),r?"entries":"values",!r,!0),l(t)}}},"65f0":function(e,t,r){var o=r("861d"),n=r("e8b5"),a=r("b622"),c=a("species");e.exports=function(e,t){var r;return n(e)&&(r=e.constructor,"function"!=typeof r||r!==Array&&!n(r.prototype)?o(r)&&(r=r[c],null===r&&(r=void 0)):r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},"69f3":function(e,t,r){var o,n,a,c=r("7f9a"),i=r("da84"),s=r("861d"),u=r("9112"),l=r("5135"),d=r("f772"),f=r("d012"),h=i.WeakMap,p=function(e){return a(e)?n(e):o(e,{})},v=function(e){return function(t){var r;if(!s(t)||(r=n(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}};if(c){var m=new h,k=m.get,B=m.has,w=m.set;o=function(e,t){return w.call(m,e,t),t},n=function(e){return k.call(m,e)||{}},a=function(e){return B.call(m,e)}}else{var b=d("state");f[b]=!0,o=function(e,t){return u(e,b,t),t},n=function(e){return l(e,b)?e[b]:{}},a=function(e){return l(e,b)}}e.exports={set:o,get:n,has:a,enforce:p,getterFor:v}},"6b75":function(e,t,r){"use strict";function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r",f="<",h="prototype",p="script",v=l("IE_PROTO"),m=function(){},k=function(e){return f+p+d+e+f+"/"+p+d},B=function(e){e.write(k("")),e.close();var t=e.parentWindow.Object;return e=null,t},w=function(){var e,t=u("iframe"),r="java"+p+":";return t.style.display="none",s.appendChild(t),t.src=String(r),e=t.contentWindow.document,e.open(),e.write(k("document.F=Object")),e.close(),e.F},b=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch(t){}b=o?B(o):w();var e=c.length;while(e--)delete b[h][c[e]];return b()};i[v]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(m[h]=n(e),r=new m,m[h]=null,r[v]=e):r=b(),void 0===t?r:a(r,t)}},"7db0":function(e,t,r){"use strict";var o=r("23e7"),n=r("b727").find,a=r("44d2"),c=r("ae40"),i="find",s=!0,u=c(i);i in[]&&Array(1)[i]((function(){s=!1})),o({target:"Array",proto:!0,forced:s||!u},{find:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}}),a(i)},"7dd0":function(e,t,r){"use strict";var o=r("23e7"),n=r("9ed3"),a=r("e163"),c=r("d2bb"),i=r("d44e"),s=r("9112"),u=r("6eeb"),l=r("b622"),d=r("c430"),f=r("3f8c"),h=r("ae93"),p=h.IteratorPrototype,v=h.BUGGY_SAFARI_ITERATORS,m=l("iterator"),k="keys",B="values",w="entries",b=function(){return this};e.exports=function(e,t,r,l,h,y,g){n(r,t,l);var C,P,x,S=function(e){if(e===h&&L)return L;if(!v&&e in E)return E[e];switch(e){case k:return function(){return new r(this,e)};case B:return function(){return new r(this,e)};case w:return function(){return new r(this,e)}}return function(){return new r(this)}},O=t+" Iterator",j=!1,E=e.prototype,M=E[m]||E["@@iterator"]||h&&E[h],L=!v&&M||S(h),R="Array"==t&&E.entries||M;if(R&&(C=a(R.call(new e)),p!==Object.prototype&&C.next&&(d||a(C)===p||(c?c(C,p):"function"!=typeof C[m]&&s(C,m,b)),i(C,O,!0,!0),d&&(f[O]=b))),h==B&&M&&M.name!==B&&(j=!0,L=function(){return M.call(this)}),d&&!g||E[m]===L||s(E,m,L),f[t]=L,h)if(P={values:S(B),keys:y?L:S(k),entries:S(w)},g)for(x in P)(v||j||!(x in E))&&u(E,x,P[x]);else o({target:t,proto:!0,forced:v||j},P);return P}},"7f9a":function(e,t,r){var o=r("da84"),n=r("8925"),a=o.WeakMap;e.exports="function"===typeof a&&/native code/.test(n(a))},"825a":function(e,t,r){var o=r("861d");e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,r){var o=r("d039");e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(e,t,r){"use strict";var o=r("c04e"),n=r("9bf2"),a=r("5c6c");e.exports=function(e,t,r){var c=o(t);c in e?n.f(e,c,a(0,r)):e[c]=r}},"861d":function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},8875:function(e,t,r){var o,n,a;(function(r,c){n=[],o=c,a="function"===typeof o?o.apply(t,n):o,void 0===a||(e.exports=a)})("undefined"!==typeof self&&self,(function(){function e(){var t=Object.getOwnPropertyDescriptor(document,"currentScript");if(!t&&"currentScript"in document&&document.currentScript)return document.currentScript;if(t&&t.get!==e&&document.currentScript)return document.currentScript;try{throw new Error}catch(h){var r,o,n,a=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,c=/@([^@]*):(\d+):(\d+)\s*$/gi,i=a.exec(h.stack)||c.exec(h.stack),s=i&&i[1]||!1,u=i&&i[2]||!1,l=document.location.href.replace(document.location.hash,""),d=document.getElementsByTagName("script");s===l&&(r=document.documentElement.outerHTML,o=new RegExp("(?:[^\\n]+?\\n){0,"+(u-2)+"}[^<]* + + + + diff --git a/src/main/resources/static/vuePage/scanCode.vue b/src/main/resources/static/vuePage/scanCode.vue index 882a4c8b..e31a79ea 100644 --- a/src/main/resources/static/vuePage/scanCode.vue +++ b/src/main/resources/static/vuePage/scanCode.vue @@ -1,144 +1,68 @@ - diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 3c25a3e0..181cd330 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -21,7 +21,14 @@ + + + + + @@ -136,14 +143,14 @@ - + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-out.html b/src/main/resources/templates/pages/application/application-out.html index 3dad98cb..17d46c83 100644 --- a/src/main/resources/templates/pages/application/application-out.html +++ b/src/main/resources/templates/pages/application/application-out.html @@ -56,16 +56,10 @@ class="layui-input" lay-verify="required"> -
- -
- -
-
-
@@ -129,6 +123,8 @@ function selectMaterial(obj){} // 用于物料名称查询 function selectMaterialByName(obj){} + // 用于判断当前物料数量是否合适 + function MaterialQuantityIsTrue(){} // 用于暂存卡片个数 var params = []; // 用于卡片编号 @@ -222,21 +218,15 @@
-
-
- -
- -
-
- +
@@ -251,7 +241,7 @@ // 获取当前高度 var height = parseInt(($("#stepForm").css('height')).split("px")[0]); params.push(NewIdNumber) - $("#stepForm").css("height",height+430 +'px'); + $("#stepForm").css("height",height+350 +'px'); $("#"+parentId).after(materialItem); }; @@ -261,11 +251,10 @@ var parent = obj.parentNode; var parentId = parent.id; parentId = parseInt(parentId.split("cardItem")[1]); - console.log(parentId); // 获取祖父节点 var reparent = parent.parentNode; var height = parseInt(($("#stepForm").css('height')).split("px")[0]); - $("#stepForm").css("height",height-430 +'px'); + $("#stepForm").css("height",height-350 +'px'); params = remove(params,parentId); reparent.removeChild(parent); }; @@ -287,6 +276,7 @@ var code = obj.value; // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode; + var objId = parent.id.split("cardItem")[1]; var children = parent.childNodes[5]; var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; @@ -307,26 +297,11 @@ materialName.value = ""; materialId.value = ""; obj.value = ""; - $('#place').empty(); + $('#place'+objId).empty(); }else{ req.mid = d.id; - $.ajax({ - url: "/place/findPlaceByMid", - type: "post", - dataType: 'json', - data:JSON.stringify(req), - contentType: "application/json;charset=utf-8", - success:function (res) { - $('#place').empty(); - $.each(res.data, function (index, item) { - $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 - }); - form.render(); - materialName.value = d.mname; - materialId.value = d.id; - } - }); - + materialName.value = d.mname; + materialId.value = d.id; } } }); @@ -363,16 +338,11 @@ contentType: "application/json;charset=utf-8", success: function (d) { var material = d.data.materialById; - var placeList = d.data.placeList; var code = material.code; if(code === undefined){ code = ""; } codeValue.value = code; - $('#place').empty(); - $.each(placeList, function (index, item) { - $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 - }); form.render(); } }); @@ -420,13 +390,50 @@ materialName.value = material.mname; materialId.value = material.id; codeValue.value = material.code; - } } }); }; - + //用于判断当前物料数量是否合适 + MaterialQuantityIsTrue = function (obj) { + var id = obj.id.split("quantity")[1]; + var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码 + if(mcode === "" || mcode ===undefined || mcode === null){ + layer.msg("请输入物料的正确编码!"); + $("#quantity"+id).val("") + }else{ + var req = {}; + req.code = mcode; + req.quantity = $("#quantity"+id).val(); + $.ajax({ + url:"/material/MaterialQuantityIsTrue", + type:"post", + data:JSON.stringify(req), + dataType: 'json', + contentType: "application/json;charset=utf-8", + success:function (res) { + var flag = res.data; + if(!flag){ // 如果当前数目不合适 + layer.msg("当前物料数量不足"); + $("#quantity"+id).val(""); + // 获取对应元素 + var parent = obj.parentNode.parentNode.parentNode; + var children = parent.childNodes[5]; + var codeChildren = parent.childNodes[7]; + var materialItem = children.childNodes[3].childNodes[1].childNodes; + var materialName = materialItem[1]; + var materialId = materialName.parentNode.parentNode.childNodes[3]; + var codeItem = codeChildren.childNodes[3].childNodes; + var codeValue = codeItem[1]; + materialName.value = ""; + materialId.value = ""; + codeValue.value = ""; + } + } + }); + } + } }) diff --git a/src/main/resources/templates/pages/application/application-out_back.html b/src/main/resources/templates/pages/application/application-out_back.html index 6a5008f9..a58fb336 100644 --- a/src/main/resources/templates/pages/application/application-out_back.html +++ b/src/main/resources/templates/pages/application/application-out_back.html @@ -38,6 +38,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -94,6 +100,24 @@ var $ = layui.$, form = layui.form, step = layui.step; + var temp = {}; + temp.mid = $("#mid").val(); + $.ajax({ + url: "/place/findPlaceByMid", + type: "post", + dataType: 'json', + data:JSON.stringify(temp), + contentType: "application/json;charset=utf-8", + success:function (res) { + $('#place').empty(); + $.each(res.data, function (index, item) { + $('#place').append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); + } + }); + + $("#code").blur(function () { var code = $(this).val(); var req = {}; @@ -112,8 +136,24 @@ $("#openSonByMaterial").val(""); $("#mid").val(""); }else{ - $("#openSonByMaterial").val(d.mname); - $("#mid").val(d.id); + req.mid = d.id; + $.ajax({ + url: "/place/findPlaceByMid", + type: "post", + dataType: 'json', + data:JSON.stringify(req), + contentType: "application/json;charset=utf-8", + success:function (res) { + $('#place').empty(); + $.each(res.data, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + $("#openSonByMaterial").val(d.mname); + $("#mid").val(d.id); + form.render(); + } + }); + } } }); diff --git a/src/main/resources/templates/pages/application/application-out_scanQrCode.html b/src/main/resources/templates/pages/application/application-out_scanQrCode.html index 3dad98cb..acc40b8a 100644 --- a/src/main/resources/templates/pages/application/application-out_scanQrCode.html +++ b/src/main/resources/templates/pages/application/application-out_scanQrCode.html @@ -29,58 +29,17 @@