自动化立体仓库 - WMS系统
#
pang.jiabao
2024-08-06 2ff79b71d902e733a0cf0d70052ace24fa1c479e
#
1个文件已添加
19个文件已修改
1330 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocDetlController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MatController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvAskOpenParam.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MobileService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OpenService.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/GhlnScheduler.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/GhlnHandler.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/OpenApiAddressConstant.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/locDetlQuery.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/static/js/pages-pakin-putDown.f2f0241f.js 617 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -13,11 +13,9 @@
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.ManLocDetlService;
import com.zy.asrs.service.MatService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -44,7 +42,7 @@
                       @RequestParam(defaultValue = "10")Integer limit,
                       @RequestParam String matnr) {
        EntityWrapper<LocDetl> locDetlEntityWrapper = new EntityWrapper<>();
        locDetlEntityWrapper.eq("matnr", matnr);
        locDetlEntityWrapper.like("model", matnr).orderBy("manu_date",true);
        Page<LocDetl> locDetlPage = locDetlService.selectPage(new Page<>(curr, limit), locDetlEntityWrapper);
        return R.ok(locDetlPage);
    }
src/main/java/com/zy/asrs/controller/MatController.java
@@ -13,7 +13,6 @@
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.MatPrint;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.result.KeyValueVo;
import com.zy.asrs.service.MatService;
import com.zy.asrs.utils.MatExcelListener;
@@ -342,7 +341,7 @@
    }
    @RequestMapping(value = "/mat/split")
    @ManagerAuth
    @ManagerAuth(memo = "解析物料码")
    public R split(@RequestParam("matnr") String matnr) {
        if (Cools.isEmpty(matnr)) {
            return R.error("数据为空");
@@ -351,10 +350,10 @@
        if (split.length != 8) {
            return R.error("数据错误");
        }
        Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", split[0]));
        if (Cools.isEmpty(mat)){
            return R.error("未查询到物料信息,"+split[0]);
        }
//        Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", split[0]));
//        if (Cools.isEmpty(mat)){
//            return R.error("未查询到物料信息,"+split[0]);
//        }
        Map<String, Object> map = new HashMap<>();
        map.put("matnr", split[0]);
        map.put("batch", split[1]);
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -63,9 +63,9 @@
    }
    @PostMapping("/outbound/auth")
    @ManagerAuth
    @ManagerAuth(memo = "pda出库")
    public R pdaOutbound(@RequestBody JSONObject param){ //pda出库
        return R.ok();
        return mobileService.pdaOutbound(param,getUserId());
    }
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -34,6 +34,36 @@
    @Autowired
    private OpenService openService;
    @PostMapping("/agv/allowWarehousing")
    @AppAuth(memo = "是否允许agv申请入库接口")
    public synchronized R synCallowWarehousing(@RequestHeader(required = false) String appkey,
                                               @RequestBody(required = false) Map<String,Object> param,
                                               HttpServletRequest request){
        auth(appkey, param, request);
        return openService.synCallowWarehousing();
    }
    @PostMapping("/agv/warehousing")
    @AppAuth(memo = "agv申请入库接口")
    public synchronized R syncWarehousing(@RequestHeader(required = false) String appkey,
                                          @RequestBody CombParam param,
                                          HttpServletRequest request){
        auth(appkey, param, request);
        return openService.syncWarehousing(param);
    }
    @PostMapping("/agv/agvAskOpen")
    @AppAuth(memo = "agv出入库请求wms开门")
    public synchronized R agvAskOpen(@RequestHeader(required = false) String appkey,
                                     @RequestBody AgvAskOpenParam param,
                                     HttpServletRequest request) {
        auth(appkey, param, request);
        if(Cools.isEmpty(param)) {
            throw new CoolException("请检测入库参数:" + param);
        }
        return openService.agvAskOpen(param);
    }
    @PostMapping("/order/matSync/default/v1")
    @AppAuth(memo = "商品信息同步接口")
    public synchronized R syncMatInfo(@RequestHeader(required = false) String appkey,
@@ -45,48 +75,6 @@
        }
        openService.syncMat(param);
        return R.ok();
    }
    @PostMapping("/agv/allowWarehousing")
    @AppAuth(memo = "是否允许agv申请入库接口")
    public synchronized R synCallowWarehousing(@RequestHeader(required = false) String appkey,
                                      @RequestBody(required = false) Map<String,Object> param,
                                      HttpServletRequest request){
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse("请求参数为空");
        }
        Object flag = param.get("flag");
        if(Cools.isEmpty(flag)) {
            return R.parse("参数flag不能为空");
        }
        return openService.synCallowWarehousing((String) flag);
    }
    @PostMapping("/agv/warehousing")
    @AppAuth(memo = "agv申请入库接口")
    public synchronized R syncWarehousing(@RequestHeader(required = false) String appkey,
                                          @RequestBody FullStoreParam param,
                                          HttpServletRequest request){
        auth(appkey, param, request);
        return openService.syncWarehousing(param);
    }
    @PostMapping("/agv/getOutboundMaterials")
    @AppAuth(memo = "agv获取出库物料信息")
    public synchronized R syncGetOutboundMaterials(@RequestHeader(required = false) String appkey,
                                          @RequestBody Map<String,Object> param,
                                          HttpServletRequest request){
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse("请求参数为空");
        }
        Object flag = param.get("flag");
        if(Cools.isEmpty(flag)) {
            return R.parse("参数flag不能为空");
        }
        return openService.getOutboundMaterials((String) flag);
    }
    /****************************************************************************/
src/main/java/com/zy/asrs/entity/param/AgvAskOpenParam.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.entity.param;
import lombok.Data;
/**
 * Created by vincent on 2022/4/9
 */
@Data
public class AgvAskOpenParam {
    // 出库请求wms开门0,入库请求wms开门1
    private int flag;
    private String matnr; // 物料编码
    private String batch; // 批号
}
src/main/java/com/zy/asrs/service/MobileService.java
@@ -41,6 +41,10 @@
                  Double curOutQty, Integer ioType, Long userId, Date now);
    /**
     * pda出库
     */
    R pdaOutbound(JSONObject param,long userId);
    /**
     * 人工呼叫空托盘(pda)
     * @param stnNo 出库站点号
     * @param userId 操作用户
src/main/java/com/zy/asrs/service/OpenService.java
@@ -10,6 +10,22 @@
public interface OpenService {
    /**
     * 是否允许agv申请入库
     */
    R synCallowWarehousing();
    /**
     * agv申请wms生成入库任务
     */
    R syncWarehousing(CombParam param);
    /**
     * agv出入库请求wms开门
     */
    R agvAskOpen(AgvAskOpenParam param);
    /**
     * 添加入库单
     */
    void pakinOrderCreate(OpenOrderPakinParam param);
@@ -45,24 +61,5 @@
     */
    void syncMat(MatSyncParam param);
    /**
     * 是否允许agv申请入库
     * @param flag agv标识
     * @return 200成功,其他失败
     */
    R synCallowWarehousing(String flag);
    /**
     * agv申请wms生成入库任务
     * @param param 物料信息
     * @return 200成功,其他失败
     */
    R syncWarehousing(FullStoreParam param);
    /**
     * agv获取出库物料信息
     * @param flag agv标识
     * @return 物料信息
     */
    R getOutboundMaterials(String flag);
}
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -52,9 +52,9 @@
            if(station.getAutoing()==null || !station.getAutoing().equals("Y")) {
                throw new CoolException(devpNo+"站点不是自动状态");
            }
            if(station.getLoading()==null || !station.getLoading().equals("Y")) {
                throw new CoolException(devpNo+"站点无物");
            }
//            if(station.getLoading()==null || !station.getLoading().equals("Y")) {
//                throw new CoolException(devpNo+"站点无物");
//            }
            if(station.getWrkNo()!=null && station.getWrkNo()>0 && station.getWrkNo() < 9990) {
                throw new CoolException(devpNo+"站点已有工作号");
            }
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -7,10 +7,7 @@
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.param.OffSaleParam;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
@@ -27,6 +24,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
/**
@@ -658,6 +656,34 @@
        }
    }
    @Resource
    private WorkService workService;
    @Override
    public R pdaOutbound(JSONObject param,long userId) {
        int sta = (int) param.get("sta");
        List<Map<String,Object>> combMats = (List<Map<String,Object>>) param.get("combMats");
        if (sta == 0 || combMats.isEmpty()) {
            throw new CoolException("参数异常!");
        }
        StockOutParam stockOutParam = new StockOutParam();
        stockOutParam.setOutSite(sta);
        List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
        for (Map locDetl :combMats) {
            StockOutParam.LocDetl detl = new StockOutParam.LocDetl();
            detl.setMatnr((String) locDetl.get("matnr"));
            detl.setBatch((String) locDetl.get("batch"));
            detl.setLocNo((String) locDetl.get("locNo"));
            detl.setCount(1.0);
            locDetls.add(detl);
        }
        stockOutParam.setLocDetls(locDetls);
        workService.startupFullTakeStore(stockOutParam, userId);
        return R.ok("出库启动成功");
    }
    @Override
    public R manualCallEmptyTray(int stnNo, Long userId) {
        // 人工pda呼叫空托盘
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -19,6 +19,8 @@
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.NodeUtils;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -28,7 +30,6 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * Created by vincent on 2022/4/9
@@ -73,6 +74,190 @@
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private ConfigService configService;
    @Override
    public R synCallowWarehousing() {
        Config outModel = configService.selectConfigByCode("outModel");
        if (outModel.getValue().equals("Y")) {
            // 没有到305的出库任务(305的出库任务优先)
            int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101)
                    .eq("sta_no", 305));
            if (count > 0) {
                return R.parse("存在305出库任务");
            }
            outModel.setValue("N");
            configService.updateById(outModel);
        }
        return R.ok();
    }
    @Autowired
    private WaitPakinService waitPakinService;
    @Override
    public R syncWarehousing(CombParam param) {
        Long userId = 9999L;
        // 参数非空判断
        if (Cools.isEmpty(param.getCombMats())) {
            throw new CoolException("数据不完整,请检查请求参数");
        }
        Config outModel = configService.selectConfigByCode("outModel");
        if (outModel.getValue().equals("Y")) {
            throw new CoolException("305不允许入库");
        }
        for (CombParam.CombMat combMat : param.getCombMats()) {
            String batch = combMat.getBatch();
            int countL = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("batch", batch));
            int countW = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("batch", batch));
            if (countW > 0) {
                return R.ok("存在任务");
            }
            int countP = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("batch", batch));
            if (countL > 0 || countW > 0 || countP > 0) {
                throw new CoolException("该批号已经存在===>>" + batch);
            }
            WaitPakin waitPakin = new WaitPakin();
            Date now = new Date();
            waitPakin.sync(combMat);
            waitPakin.setBarcode("");
            waitPakin.setZpallet(""); // 托盘码
            waitPakin.setIoStatus("N");     // 入出状态
            waitPakin.setAnfme(1.0);  // 数量
            waitPakin.setStatus("Y");    // 状态
            waitPakin.setAppeUser(userId);
            waitPakin.setAppeTime(now);
            waitPakin.setModiUser(userId);
            waitPakin.setModiTime(now);
            // 源站点状态检测
            BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true);
            // 长度>3500放宽库位
            sourceStaNo.setLocType2((short) (waitPakin.getLength() > 3500 ? 2 : 1));
            LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
            // 寻找库位
            StartupDto dto = commonService.getLocNo(sourceStaNo, locTypeDto, 1);
            int workNo = dto.getWorkNo();
            // 生成工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(workNo);
            wrkMast.setWhsType(1);
            wrkMast.setIoTime(new Date());
            wrkMast.setWrkSts(1L); // 工作状态:生成入库ID
            wrkMast.setIoType(1); // 入出库状态:1.入库
            wrkMast.setIoPri(13D); // 优先级
            wrkMast.setCrnNo(dto.getCrnNo());
            wrkMast.setSourceStaNo(dto.getSourceStaNo());
            wrkMast.setStaNo(dto.getStaNo());
            wrkMast.setLocNo(dto.getLocNo());
            wrkMast.setBarcode(""); // 托盘码
            wrkMast.setFullPlt("Y"); // 满板:Y
            wrkMast.setPicking("N"); // 拣料
            wrkMast.setExitMk("N"); // 退出
            wrkMast.setEmptyMk("N"); // 空板
            wrkMast.setLinkMis("Y");
            wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型
            // 操作人员数据
            wrkMast.setAppeTime(now);
            wrkMast.setModiTime(now);
            boolean res = wrkMastService.insert(wrkMast);
            if (!res) {
                throw new CoolException("保存工作档失败");
            }
            // 生成工作档明细
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(waitPakin);
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiTime(now);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
//            // 更新源站点信息
//            sourceStaNo.setWrkNo(workNo);
//            sourceStaNo.setModiTime(now);
//            if (!basDevpService.updateById(sourceStaNo)) {
//                throw new CoolException("更新源站失败");
//            }
            // 更新目标库位状态
            LocMast locMast = locMastService.selectById(dto.getLocNo());
            if (locMast.getLocSts().equals("O")) {
                locMast.setLocSts("S"); // S.入库预约
                locMast.setModiTime(now);
                if (!locMastService.updateById(locMast)) {
                    throw new CoolException("改变库位状态失败");
                }
            } else {
                throw new CoolException(dto.getLocNo() + "目标库位已被占用");
            }
        }
        return R.ok();
    }
    @Override
    public R agvAskOpen(AgvAskOpenParam param) {
        if (param.getFlag() == 0) { // 出库请求wms开门
            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
            if (basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")
                    && basDevp.getOutEnable().equals("Y")) { // 出库工作档
                WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
                if (wrkMast.getWhsType() == null) {
                    throw new CoolException("没有通知agv过来取货");
                } else if (wrkMast.getWhsType() == 1) {
                    WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo()));
                    if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) {
                        wrkMast.setWhsType(2);
                        wrkMastService.updateById(wrkMast);
                        return R.ok("物料校验成功,马上开门");
                    } else {
                        throw new CoolException("编码+批号校验失败:" + param.getBatch());
                    }
                } else if (wrkMast.getWhsType() == 2) {
                    return R.ok("马上开门");
                } else {
                    return R.error("工作档当前状态有误");
                }
            } else {
                return R.error("不满足出库条件");
            }
        } else if(param.getFlag() == 1) { // 入库请求wms开门
            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
            if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y")
                    && basDevp.getInEnable().equals("Y")) { // 入库底座
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type",1)
                        .eq("source_sta_no",305).lt("wrk_sts",3));
                if (wrkMast.getWhsType() == null) {
                    throw new CoolException("没有入库任务");
                } else if (wrkMast.getWhsType() == 1) {
                    WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) {
                        wrkMast.setWhsType(2);
                        wrkMastService.updateById(wrkMast);
                        return R.ok("物料校验成功,马上开门");
                    } else {
                        throw new CoolException("编码+批号校验失败:" + param.getBatch());
                    }
                } else if (wrkMast.getWhsType() == 2) {
                    return R.ok("马上开门");
                } else {
                    return R.error("工作档当前状态有误");
                }
            } else {
                return R.error("底座还未达到");
            }
        }
        return R.error("出入库标识错误:" + param.getFlag());
    }
    @Override
    @Transactional
@@ -567,128 +752,6 @@
            }
        }
    }
    @Override
    public R synCallowWarehousing(String flag) {
        List<WrkMast> wrkMasts = wrkMastMapper.queryOutLocWork();
        if (wrkMasts.isEmpty()) {
            return R.ok();
        }
        return R.parse("当前存在出库任务");
    }
    @Override
    public R syncWarehousing(FullStoreParam param) {
        Long userId = 9999L;
       // 参数非空判断
        if (Cools.isEmpty(param.getBarcode(), param.getList())) {
            throw new CoolException("数据不完整,请检查请求参数");
        }
        List<WrkMast> wrkMasts = wrkMastMapper.queryOutLocWork();
        if(!wrkMasts.isEmpty()) {
            throw new CoolException("305存在出库任务");
        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
        if (countLoc > 0 || countWrk > 0) {
            throw new CoolException("工作档/库存条码数据已存在");
        }
        Date now = new Date();
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true);
        // 检索库位
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
        StartupDto dto = commonService.getLocNo(sourceStaNo,locTypeDto, 1);
        // 生成工作号
        int workNo = dto.getWorkNo();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(2L); // 工作状态:生成入库ID
        wrkMast.setIoType(1); // 入出库状态:1.入库
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setCrnNo(dto.getCrnNo());
        wrkMast.setSourceStaNo(dto.getSourceStaNo());
        wrkMast.setStaNo(dto.getStaNo());
        wrkMast.setLocNo(dto.getLocNo());
        wrkMast.setBarcode(param.getBarcode()); // 托盘码
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("N");
        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型
        wrkMast.setAppeUser(userId);
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        if (!wrkMastService.insert(wrkMast)) {
            throw new CoolException("保存工作档失败");
        }
        // 生成工作档明细
        List<DetlDto> detlDtos = new ArrayList<>();
        param.getList().forEach(elem -> {
            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
            detlDto.setMaktx(elem.getMaktx());
            detlDto.setSpecs(elem.getSpecs());
            detlDto.setTagId(elem.getTagId());
            if (DetlDto.has(detlDtos, detlDto)) {
                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                assert detlDto1 != null;
                detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
            } else {
                detlDtos.add(detlDto);
            }
        });
        wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId, now);
        // 更新源站点信息
        sourceStaNo.setWrkNo(workNo);
        sourceStaNo.setModiUser(userId);
        sourceStaNo.setModiTime(now);
        if (!basDevpService.updateById(sourceStaNo)){
            throw new CoolException("更新源站失败");
        }
        // 更新目标库位状态
        LocMast locMast = locMastService.selectById(dto.getLocNo());
        if (locMast.getLocSts().equals("O")){
            locMast.setLocSts("S"); // S.入库预约
            locMast.setModiUser(userId);
            locMast.setModiTime(now);
            if (!locMastService.updateById(locMast)){
                throw new CoolException("改变库位状态失败");
            }
        } else {
            throw new CoolException(dto.getLocNo()+"目标库位已被占用");
        }
        return R.ok();
    }
    @Override
    public R getOutboundMaterials(String flag) {
        List<WrkDetl> outboundMaterials = wrkMastMapper.getOutboundMaterials();
        if (Cools.isEmpty(outboundMaterials)) {
            return R.parse("货物未到达或已取走");
        }
        List<FullStoreParam.MatCodeStore> matCodeStoreList = new ArrayList<>();
        for(WrkDetl wrkDetl : outboundMaterials){
            FullStoreParam.MatCodeStore matCodeStore = new FullStoreParam.MatCodeStore();
            matCodeStore.setMatnr(wrkDetl.getMatnr());
            matCodeStore.setBatch(wrkDetl.getBatch());
            matCodeStore.setAnfme(wrkDetl.getAnfme());
            matCodeStoreList.add(matCodeStore);
        }
        return R.ok(matCodeStoreList);
    }
}
src/main/java/com/zy/asrs/task/GhlnScheduler.java
@@ -2,6 +2,7 @@
import com.zy.asrs.task.handler.GhlnHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -19,10 +20,10 @@
    @Resource
    private GhlnHandler ghlnHandler;
    // 出库到达出库目标站时,调用AGV开放出库接口
//    @Scheduled(cron = "0/30 * * * * ?")
    private void sendOutboundTaskToAGV(){
        ghlnHandler.sendOutboundTaskToAGV();
    // 货物到达出库口,呼叫agv
    @Scheduled(cron = "0/5 * * * * ?")
    private void OutboundCallAGV(){
        ghlnHandler.OutboundCallAGV();
    }
    // 调用金蝶同步物料接口,增量同步每小时产生的新物料
src/main/java/com/zy/asrs/task/handler/GhlnHandler.java
@@ -9,8 +9,6 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.constant.MesConstant;
import com.zy.common.constant.OpenApiAddressConstant;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
@@ -20,7 +18,9 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * @author pang.jiabao
@@ -48,96 +48,6 @@
    @Resource
    private MatService matService;
    /**
     * 出库到达出库目标站时,调用AGV开放出库接口
     */
    public void sendOutboundTaskToAGV() {
        // 获取agv出库站点信息,并判断站点状态
        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
        if (basDevp != null && basDevp.getWrkNo() != 0 && basDevp.getOutEnable().equals("Y")) {
            // 判断是出库任务
            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())
                    .eq("plt_type",0));
            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo()));
            if (wrkMast != null && wrkMast.getIoType() == 101 && !wrkDetls.isEmpty()) {
                // 推送出库信息给agv
                sendTaskToAgv(wrkMast,wrkDetls);
            }
        }
    }
    private void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) {
    }
    /**
     * 调用AGV出库接口
     * @param wrkMast 工作主档
     * @param wrkDetls 工作档明细
     */
    private void sendTaskToAgv(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
        // 调用结果
        boolean success = false;
        // 构造请求头
        Map<String,Object> headers = new HashMap<>();
        headers.put("Content-Type","application/json;charset=UTF-8");
        WrkDetl wrkDetl = wrkDetls.get(0);
        // 构造请求体
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("TaskNo", wrkMast.getWrkNo()); // 任务号
        jsonObject.put("Address", ""); // 出库口
        jsonObject.put("Model", wrkDetl.getModel()); // 型号
        jsonObject.put("Batch", wrkDetl.getBatch()); // 批次
        jsonObject.put("Dimension", wrkDetl.getSpecs()); // 规格
        jsonObject.put("Weight", wrkDetl.getWeight()); // 重量
        jsonObject.put("ProductionDate", wrkDetl.getManuDate()); // 生产日期
        String body = jsonObject.toJSONString();
        String response = "";
        try {
            response = new HttpHandler.Builder()
                    .setUri(OpenApiAddressConstant.OUT_TO_AGV_IP)
                    .setPath(OpenApiAddressConstant.OUT_TO_AGV_URL)
                    .setHeaders(headers)
                    .setJson(body)
                    .build()
                    .doPost();
            if (!Cools.isEmpty(response)) {
                JSONObject jsonObject1 = JSONObject.parseObject(response);
                if ((Integer) jsonObject1.get("Code") == 200){
                    success = true;
                }
            } else {
                log.error("出库请求agv接口异常接口失败!!!url:{};request:{};response:{}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
            }
        } catch (Exception e) {
            log.error("出库请求agv接口异常:{}", e.getMessage());
        } finally {
            if (success) {
                wrkMast.setPltType(1); // 是否成功给agv出库接口下发过命令,避免重复请求
                wrkMastService.updateById(wrkMast);
            }
            try {
                // 保存接口日志
                apiLogService.save(
                        "出库请求agv",
                        MesConstant.URL + MesConstant.PAKIN_URL,
                        null,
                        "127.0.0.1",
                        jsonObject.toJSONString(),
                        response,
                        success
                );
            } catch (Exception e) {
                log.error("保存出库请求agv接口日志异常", e);
            }
        }
    }
    /**
     * 调用金蝶同步物料接口,增量同步每小时产生的新物料
@@ -231,4 +141,71 @@
            }
        }
    }
    /**
     * 到达出库口,呼叫agv
     */
    public void OutboundCallAGV() {
        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
        if (basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")
        &&basDevp.getOutEnable().equals("Y")) { // 出库工作档
            WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
            if(wrkMast.getWhsType() == null) {
                WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo()));
                // 调用结果
                boolean success = false;
                // 构造请求头
                Map<String,Object> headers = new HashMap<>();
                headers.put("Content-Type","application/json;charset=UTF-8");
                // 构造请求体
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("matnr", wrkDetl.getMatnr()); // 物料编码
                jsonObject.put("model", wrkDetl.getModel()); // 型号
                jsonObject.put("batch", wrkDetl.getBatch()); // 批次
                jsonObject.put("specs", wrkDetl.getSpecs()); // 膜类型
                jsonObject.put("manuDate", wrkDetl.getManuDate()); // 生产日期
                jsonObject.put("length", wrkDetl.getLength()+""); // 长
                jsonObject.put("weight", wrkDetl.getWeight()+""); // 宽
                jsonObject.put("volume", wrkDetl.getVolume()+""); // 面积
                String body = jsonObject.toString();
                String response = "";
                try {
                    response = new HttpHandler.Builder()
                            .setUri(OpenApiAddressConstant.AGV_IP)
                            .setPath(OpenApiAddressConstant.CALL_AGV_URL)
                            .setHeaders(headers)
                            .setJson(body)
                            .build()
                            .doPost();
                    if (!Cools.isEmpty(response)) {
                        JSONObject jsonObject1 = JSONObject.parseObject(response);
                        if ((Integer) jsonObject1.get("code") == 200){
                            success = true;
                            wrkMast.setWhsType(1);
                            wrkMastService.updateById(wrkMast);
                        }
                    } else {
                        log.error("出库呼叫agv接口异常接口失败!!!url:{};request:{};response:{}", OpenApiAddressConstant.AGV_IP + OpenApiAddressConstant.CALL_AGV_URL, body, response);
                    }
                } catch (Exception e) {
                    log.error("出库呼叫agv接口异常:{}", e.getMessage());
                } finally {
                    try {
                        // 保存接口日志
                        apiLogService.save(
                                "出库请求agv",
                                OpenApiAddressConstant.AGV_IP + OpenApiAddressConstant.CALL_AGV_URL,
                                null,
                                "127.0.0.1",
                                jsonObject.toJSONString(),
                                response,
                                success
                        );
                    } catch (Exception e) {
                        log.error("出库呼叫agv接口日志异常", e);
                    }
                }
            }
        }
    }
}
src/main/java/com/zy/common/constant/OpenApiAddressConstant.java
@@ -7,12 +7,12 @@
 */
public class OpenApiAddressConstant {
    /**
     * 出库请求AGV执行接口ip地址
     * AGV系统ip地址
     */
    public static final String OUT_TO_AGV_IP = "127.0.0.1:8080";
    public static final String AGV_IP = "http://192.168.204.44:8010";
    /**
     * 出库请求AGV执行接口后缀地址
     * 出库呼叫agv
     */
    public static final String OUT_TO_AGV_URL = "/api/TaskCreat/AGVOutboundTask";
    public static final String CALL_AGV_URL = "/api/TaskCreat/AGVOutboundTask";
}
src/main/java/com/zy/common/web/WcsController.java
@@ -64,6 +64,11 @@
            if (Cools.isEmpty(param.getBarcode())) {
                return R.error("条码不能为空");
            }
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
            if (countLoc > 0 || countWrk > 0) {
                return R.error(CodeRes.EXIST_500);
            }
            waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
            if (Cools.isEmpty(waitPakins)) {
                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
@@ -71,11 +76,6 @@
                    return R.parse(CodeRes.PICK_600);
                }
                return R.parse(CodeRes.NO_COMB_700);
            }
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
            if (countLoc > 0 || countWrk > 0) {
                return R.error(CodeRes.EXIST_500);
            }
        }
        if (Cools.isEmpty(param.getLocType1())){
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 9090
  port: 8080
  servlet:
    context-path: /@pom.build.finalName@
@@ -10,7 +10,7 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://192.168.4.15:1433;databasename=ghlnasrs
    url: jdbc:sqlserver://10.10.10.243:1433;databasename=ghlnasrs
    username: sa
    password: sa@123
  mvc:
src/main/resources/mapper/LocDetlMapper.xml
@@ -88,6 +88,9 @@
        <if test="loc_no!=null and loc_no!='' ">
            and a.loc_no like '%' + #{loc_no} + '%'
        </if>
        <if test="model!=null and model!='' ">
            and a.model like  #{model} + '%'
        </if>
        <if test="matnr!=null and matnr!='' ">
            and a.matnr like '%' + #{matnr} + '%'
        </if>
@@ -122,7 +125,7 @@
            where 1=1
            and b.loc_sts = 'F'
            <include refid="stockOutCondition"></include>
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) order by t.manu_date
    </select>
    <select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
src/main/resources/mapper/LocMastMapper.xml
@@ -119,13 +119,16 @@
        select loc_no locNo,loc_type2 locType2,crn_no crnNo from asr_loc_mast where loc_sts = 'O' and loc_type2 = #{locType2}
        <choose>
            <when  test="sourceStaNo == 101">
                AND crn_no = 2
                AND crn_no = 2 order by lev1,bay1,row1
            </when >
            <when  test="sourceStaNo == 103">
                AND crn_no = 1
                AND crn_no = 1 order by lev1,bay1,row1
            </when >
            <when  test="sourceStaNo == 305">
                order by lev1 asc,bay1 desc,row1 asc
            </when >
        </choose>
        order by lev1,bay1,row1
    </select>
    <select id="selectAllLocNotEmpty" resultType="com.zy.asrs.entity.LocMast">
        SELECT * FROM asr_loc_mast WHERE loc_sts != 'O' AND loc_no in
src/main/resources/mapper/WrkMastMapper.xml
@@ -77,8 +77,8 @@
    <select id="queryOutLocWork" resultType="com.zy.asrs.entity.WrkMast">
        select *
        from asr_wrk_mast awm
        where awm.io_type = 101
          and (awm.wrk_sts != 15 or wrk_no in (select wrk_no  from asr_bas_devp))
        where awm.io_type = 101 and awm.sta_no = 305
          and (awm.wrk_sts != 15 or wrk_no in (select wrk_no  from asr_bas_devp) or awm.wrk_sts = 12)
    </select>
    <select id="getOutboundMaterials" resultType="com.zy.asrs.entity.WrkDetl">
        select TOP 1 awd.*
src/main/webapp/views/pakStore/locDetlQuery.html
@@ -48,6 +48,11 @@
    <div id="search-box" class="layui-form layui-card-header">
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="model" placeholder="型号" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off">
            </div>
        </div>
src/main/webapp/views/pda/static/js/pages-pakin-putDown.f2f0241f.js
@@ -1 +1,616 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-pakin-putDown"],{"0a77":function(t,e,i){"use strict";i.r(e);var a=i("35bc"),n=i.n(a);for(var s in a)["default"].indexOf(s)<0&&function(t){i.d(e,t,(function(){return a[t]}))}(s);e["default"]=n.a},"0ef2":function(t,e,i){"use strict";var a=i("b18d"),n=i.n(a);n.a},"35bc":function(t,e,i){"use strict";(function(t){i("7a82"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,i("3c65"),i("a434"),i("e9c4");var a={data:function(){return{baseUrl:"",token:"",barcode:"",dataList:[],count:0,rowNum:"",matnr:"",batch:"",weight:"",msgType1:"success",msgType:"success",messageText:"",title:"",content:"",barcodeFocus:!0,matFocus:!1,matData:"",removeNum:0,specs:"",manuDate:"",model:"",length:"",volume:"",staList:[100,102,104,107,305],sta:"",item:""}},onLoad:function(){},onShow:function(){this.baseUrl=uni.getStorageSync("baseUrl"),this.token=uni.getStorageSync("token")},methods:{messageToggle:function(t){this.msgType1=t,this.$refs.message.open()},barcodeInput:function(){var t=this;setTimeout((function(){var e=t.barcode.length;if(8!=e)return uni.showToast({title:"托盘码有误请重试",icon:"none",position:"top"}),void t.barcodeFocuss();t.focuss()}),200)},barcodeFocuss:function(){var t=this;t.barcodeFocus=!1,setTimeout((function(){t.barcode="",t.barcodeFocus=!0}),100)},focuss:function(){var t=this;this.barcodeFocus=!1,this.matFocus=!1,setTimeout((function(){t.matnr="",t.matFocus=!0}),100)},findMat:function(){var t=this;uni.request({url:t.baseUrl+"/mat/split",data:{matnr:t.matnr},header:{token:uni.getStorageSync("token")},success:function(e){e=e.data,200===e.code&&e.data?(t.matData=e.data,t.checkMat(t.matData)):403==e.code?(uni.showToast({title:e.msg,icon:"none",position:"top"}),setTimeout((function(){uni.reLaunch({url:"../login/login"})}),1e3)):uni.showToast({title:e.msg,icon:"none",position:"top"})}})},selectMat:function(){var e=this;uni.navigateTo({url:"../locDetl/locDetl",success:function(t){t.eventChannel.emit("commonUrl",{commonUrl:""})},events:{acceptDataFromOpenedPage:function(i){t("log",i.data," at pages/pakin/putDown.vue:280");for(var a=0;a<i.data.length;a++)e.checkMat(i.data[a])}}}),e.matnr=""},checkMat:function(t){for(var e=this.dataList.length,i=!0,a=0;a<e;a++)t.locNo==this.dataList[a].locNo&&t.matnr==this.dataList[a].matnr&&(i=!1);i&&this.dataList.unshift(t),this.$forceUpdate()},revise:function(t,e){this.matnr=this.dataList[e].matnr,this.batch=this.dataList[e].batch,this.weight=this.dataList[e].weight,this.specs=this.dataList[e].specs,this.manuDate=this.dataList[e].manuDate,this.model=this.dataList[e].model,this.length=this.dataList[e].length,this.volume=this.dataList[e].volume,this.rowNum=e,this.eject()},eject:function(t){this.type=t,this.$refs.revise.open(t)},remove:function(t,e,i){this.removeNum=e,this.msgType=i,this.title="警告",this.content="是否移除当前商品!",this.$refs.alertDialog.open(e)},removeConfirm:function(){this.messageText="移除成功",this.messageToggle("success"),this.dataList.splice(this.removeNum,1)},removeClose:function(){this.$refs.alertDialog.close()},reviseConfirm:function(){this.dataList[this.rowNum].anfme=this.count,this.dataList[this.rowNum].batch=this.batch,this.dataList[this.rowNum].weight=this.weight,this.matnr="",this.messageText="修改成功",this.messageToggle("success"),this.$refs.revise.close()},reviseClose:function(){this.$refs.revise.close()},changeValue:function(t){this.count=t},combConfirm:function(t){this.msgType=t,this.title="警告",this.content="是否生成出库任务!",this.$refs.combConfirm.open()},combClose:function(){this.$refs.combConfirm.close()},comb:function(){uni.vibrateShort();var t=this;return 0===t.dataList.length?(this.messageText="请添加商品列表",void this.messageToggle("error")):""===t.sta?(this.messageText="请选择站点",void this.messageToggle("error")):void uni.request({url:t.baseUrl+"/mobile/outbound/auth",data:JSON.stringify({sta:t.barcode,combMats:t.dataList}),method:"POST",header:{token:uni.getStorageSync("token")},success:function(e){var i=e.data;200===i.code?(t.resst(),t.messageText="生成出库任务成功",t.messageToggle("success")):403==i.code?(t.messageText=i.msg,t.messageToggle("error"),setTimeout((function(){uni.reLaunch({url:"../login/login"})}),1e3)):(t.messageText=i.msg,t.messageToggle("error"))}})},reset:function(t){this.msgType=t,this.title="警告",this.content="是否重置!",this.$refs.resetConfirm.open()},resetConfirm:function(){this.dataList=[],this.messageText="重置完成",this.messageToggle("success")},resetClose:function(){},resst:function(){this.dataList=[],this.barcode="",this.sta="",this.barcodeFocuss()}}};e.default=a}).call(this,i("0de9")["log"])},3993:function(t,e,i){"use strict";i.d(e,"b",(function(){return a})),i.d(e,"c",(function(){return n})),i.d(e,"a",(function(){}));var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return t.text?i("v-uni-text",{staticClass:"uni-tag",class:t.classes,style:t.customStyle,on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.onClick.apply(void 0,arguments)}}},[t._v(t._s(t.text))]):t._e()},n=[]},"3d97":function(t,e,i){"use strict";i.d(e,"b",(function(){return n})),i.d(e,"c",(function(){return s})),i.d(e,"a",(function(){return a}));var a={uniCombox:i("6d8b").default,uniTag:i("b2a6").default,uniIcons:i("125d").default,uniPopup:i("0ffb").default,uniPopupDialog:i("ed48").default,uniPopupMessage:i("d001").default},n=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-uni-view",[i("v-uni-view",{staticClass:"code"},[i("v-uni-view",{staticClass:"itemButton"},[i("v-uni-button",{attrs:{size:"mini",type:"primary"},on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.selectMat()}}},[t._v("提取+")]),i("uni-combox",{attrs:{candidates:t.staList,placeholder:"请选择入库站点"},model:{value:t.sta,callback:function(e){t.sta=e},expression:"sta"}})],1)],1),i("v-uni-view",{staticClass:"mat-list-title"},[t._v("商品列表")]),i("v-uni-scroll-view",t._l(t.dataList,(function(e,a){return i("v-uni-view",{key:a,staticClass:"list"},[i("v-uni-view",{staticClass:"list-left"},[i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("No:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(a+1))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("编码:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.locNo))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("编码:")]),i("v-uni-view",{staticClass:"left-item"},[i("uni-tag",{attrs:{text:e.matnr,type:"primary"}})],1)],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("批号:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.batch))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("膜类型:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.specs))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("生产日期:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.manuDate))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("型号:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.model))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("宽度:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.weight))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("长度:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.length))])],1),i("v-uni-view",{staticClass:"list-left-item"},[i("v-uni-view",{staticClass:"desc"},[t._v("面积:")]),i("v-uni-view",{staticClass:"left-item"},[t._v(t._s(e.volume))])],1)],1),i("v-uni-view",{staticClass:"list-right"},[i("uni-icons",{attrs:{type:"trash",color:"#f58a8a",size:"24"},on:{click:function(i){arguments[0]=i=t.$handleEvent(i),t.remove(e,a,"warn")}}})],1)],1)})),1),i("v-uni-view",{staticClass:"buttom"},[i("v-uni-button",{attrs:{size:"mini"},on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.reset("warn")}}},[t._v("重置")]),i("v-uni-button",{attrs:{size:"mini",type:"primary"},on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.combConfirm("warn")}}},[t._v("出库")])],1),i("v-uni-view",[i("uni-popup",{ref:"revise",attrs:{type:"dialog"}},[i("v-uni-view",{staticClass:"popup"},[i("v-uni-view",{staticClass:"title"},[t._v("修改")]),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("编码:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{staticStyle:{"background-color":"#f7f7f7",padding:"0",color:"#d5d5d5"},attrs:{type:"text",disabled:"true"},model:{value:t.matnr,callback:function(e){t.matnr=e},expression:"matnr"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("批号:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.batch,callback:function(e){t.batch=e},expression:"batch"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("膜类型:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.specs,callback:function(e){t.specs=e},expression:"specs"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("生产日期:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.manuDate,callback:function(e){t.manuDate=e},expression:"manuDate"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("型号:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.model,callback:function(e){t.model=e},expression:"model"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("宽度:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.weight,callback:function(e){t.weight=e},expression:"weight"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("长度:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.length,callback:function(e){t.length=e},expression:"length"}})],1)],1),i("v-uni-view",{staticClass:"popup-item"},[i("v-uni-view",{staticClass:"popup-item-left"},[t._v("面积:")]),i("v-uni-view",{staticClass:"popup-item-right"},[i("v-uni-input",{attrs:{type:"text"},model:{value:t.volume,callback:function(e){t.volume=e},expression:"volume"}})],1)],1),i("v-uni-view",{staticClass:"btn"},[i("v-uni-view",{staticClass:"btn-left",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.reviseClose.apply(void 0,arguments)}}},[t._v("取消")]),i("v-uni-view",{staticClass:"btn-right",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.reviseConfirm()}}},[t._v("修改")])],1)],1)],1)],1),i("v-uni-view",[i("uni-popup",{ref:"alertDialog",attrs:{type:"dialog"}},[i("uni-popup-dialog",{attrs:{type:t.msgType,confirmText:"移除",title:t.title,content:t.content},on:{confirm:function(e){arguments[0]=e=t.$handleEvent(e),t.removeConfirm()},close:function(e){arguments[0]=e=t.$handleEvent(e),t.removeClose.apply(void 0,arguments)}}})],1)],1),i("v-uni-view",[i("uni-popup",{ref:"message",attrs:{type:"message"}},[i("uni-popup-message",{attrs:{type:t.msgType1,message:t.messageText,duration:2e3}})],1)],1),i("v-uni-view",[i("uni-popup",{ref:"combConfirm",attrs:{type:"dialog"}},[i("uni-popup-dialog",{attrs:{type:t.msgType,cancelText:"取消",confirmText:"确认",title:t.title,content:t.content},on:{confirm:function(e){arguments[0]=e=t.$handleEvent(e),t.comb.apply(void 0,arguments)},close:function(e){arguments[0]=e=t.$handleEvent(e),t.combClose.apply(void 0,arguments)}}})],1)],1),i("v-uni-view",[i("uni-popup",{ref:"resetConfirm",attrs:{type:"dialog"}},[i("uni-popup-dialog",{attrs:{type:t.msgType,cancelText:"取消",confirmText:"确认",title:t.title,content:t.content},on:{confirm:function(e){arguments[0]=e=t.$handleEvent(e),t.resetConfirm.apply(void 0,arguments)},close:function(e){arguments[0]=e=t.$handleEvent(e),t.resetClose.apply(void 0,arguments)}}})],1)],1)],1)},s=[]},"51a3":function(t,e,i){"use strict";i("7a82"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,i("a9e3"),i("4de4"),i("d3b7"),i("c975"),i("d401"),i("25f0");var a={name:"uniCombox",emits:["input","update:modelValue"],props:{border:{type:Boolean,default:!0},label:{type:String,default:""},labelWidth:{type:String,default:"auto"},placeholder:{type:String,default:""},candidates:{type:Array,default:function(){return[]}},emptyTips:{type:String,default:"无匹配项"},value:{type:[String,Number],default:""}},data:function(){return{showSelector:!1,inputVal:""}},computed:{labelStyle:function(){return"auto"===this.labelWidth?"":"width: ".concat(this.labelWidth)},filterCandidates:function(){var t=this;return this.candidates.filter((function(e){return e.toString().indexOf(t.inputVal)>-1}))},filterCandidatesLength:function(){return this.filterCandidates.length}},watch:{value:{handler:function(t){this.inputVal=t},immediate:!0}},methods:{toggleSelector:function(){this.showSelector=!this.showSelector},onFocus:function(){this.showSelector=!0},onBlur:function(){var t=this;setTimeout((function(){t.showSelector=!1}),153)},onSelectorClick:function(t){this.inputVal=this.filterCandidates[t],this.showSelector=!1,this.$emit("input",this.inputVal),this.$emit("update:modelValue",this.inputVal)},onInput:function(){var t=this;setTimeout((function(){t.$emit("input",t.inputVal),t.$emit("update:modelValue",t.inputVal)}))}}};e.default=a},"53d1":function(t,e,i){var a=i("dade");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var n=i("4f06").default;n("7983c66a",a,!0,{sourceMap:!1,shadowMode:!1})},"5fba":function(t,e,i){"use strict";i.d(e,"b",(function(){return n})),i.d(e,"c",(function(){return s})),i.d(e,"a",(function(){return a}));var a={uniIcons:i("125d").default},n=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-uni-view",{staticClass:"uni-combox",class:t.border?"":"uni-combox__no-border"},[t.label?i("v-uni-view",{staticClass:"uni-combox__label",style:t.labelStyle},[i("v-uni-text",[t._v(t._s(t.label))])],1):t._e(),i("v-uni-view",{staticClass:"uni-combox__input-box"},[i("v-uni-input",{staticClass:"uni-combox__input",attrs:{type:"text",placeholder:t.placeholder,"placeholder-class":"uni-combox__input-plac"},on:{input:function(e){arguments[0]=e=t.$handleEvent(e),t.onInput.apply(void 0,arguments)},focus:function(e){arguments[0]=e=t.$handleEvent(e),t.onFocus.apply(void 0,arguments)},blur:function(e){arguments[0]=e=t.$handleEvent(e),t.onBlur.apply(void 0,arguments)}},model:{value:t.inputVal,callback:function(e){t.inputVal=e},expression:"inputVal"}}),i("uni-icons",{attrs:{type:t.showSelector?"top":"bottom",size:"14",color:"#999"},on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.toggleSelector.apply(void 0,arguments)}}})],1),t.showSelector?i("v-uni-view",{staticClass:"uni-combox__selector"},[i("v-uni-view",{staticClass:"uni-popper__arrow"}),i("v-uni-scroll-view",{staticClass:"uni-combox__selector-scroll",attrs:{"scroll-y":"true"}},[0===t.filterCandidatesLength?i("v-uni-view",{staticClass:"uni-combox__selector-empty"},[i("v-uni-text",[t._v(t._s(t.emptyTips))])],1):t._e(),t._l(t.filterCandidates,(function(e,a){return i("v-uni-view",{key:a,staticClass:"uni-combox__selector-item",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.onSelectorClick(a)}}},[i("v-uni-text",[t._v(t._s(e))])],1)}))],2)],1):t._e()],1)},s=[]},"62e0":function(t,e,i){"use strict";i.r(e);var a=i("e4e8"),n=i.n(a);for(var s in a)["default"].indexOf(s)<0&&function(t){i.d(e,t,(function(){return a[t]}))}(s);e["default"]=n.a},6827:function(t,e,i){"use strict";var a=i("b18f"),n=i.n(a);n.a},"6d8b":function(t,e,i){"use strict";i.r(e);var a=i("5fba"),n=i("cc05");for(var s in n)["default"].indexOf(s)<0&&function(t){i.d(e,t,(function(){return n[t]}))}(s);i("0ef2");var o=i("f0c5"),r=Object(o["a"])(n["default"],a["b"],a["c"],!1,null,"1c3f77c9",null,!1,a["a"],void 0);e["default"]=r.exports},ac60:function(t,e,i){var a=i("24fb");e=a(!1),e.push([t.i,'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.uni-combox[data-v-1c3f77c9]{font-size:14px;border:1px solid #dcdfe6;border-radius:4px;padding:6px 10px;position:relative;display:flex;flex-direction:row;align-items:center}.uni-combox__label[data-v-1c3f77c9]{font-size:16px;line-height:22px;padding-right:10px;color:#999}.uni-combox__input-box[data-v-1c3f77c9]{position:relative;display:flex;flex:1;flex-direction:row;align-items:center}.uni-combox__input[data-v-1c3f77c9]{flex:1;font-size:14px;height:22px;line-height:22px}.uni-combox__input-plac[data-v-1c3f77c9]{font-size:14px;color:#999}.uni-combox__selector[data-v-1c3f77c9]{box-sizing:border-box;position:absolute;top:calc(100% + 12px);left:0;width:100%;background-color:#fff;border:1px solid #ebeef5;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);z-index:2;padding:4px 0}.uni-combox__selector-scroll[data-v-1c3f77c9]{max-height:200px;box-sizing:border-box}.uni-combox__selector-empty[data-v-1c3f77c9],\r\n.uni-combox__selector-item[data-v-1c3f77c9]{display:flex;cursor:pointer;line-height:36px;font-size:14px;text-align:center;padding:0 10px}.uni-combox__selector-item[data-v-1c3f77c9]:hover{background-color:#f9f9f9}.uni-combox__selector-empty[data-v-1c3f77c9]:last-child,\r\n.uni-combox__selector-item[data-v-1c3f77c9]:last-child{border-bottom:none}.uni-popper__arrow[data-v-1c3f77c9],\r\n.uni-popper__arrow[data-v-1c3f77c9]::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;border-width:6px}.uni-popper__arrow[data-v-1c3f77c9]{-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));top:-6px;left:10%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.uni-popper__arrow[data-v-1c3f77c9]::after{content:" ";top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.uni-combox__no-border[data-v-1c3f77c9]{border:none}',""]),t.exports=e},b18d:function(t,e,i){var a=i("ac60");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var n=i("4f06").default;n("f01df0cc",a,!0,{sourceMap:!1,shadowMode:!1})},b18f:function(t,e,i){var a=i("bc66");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var n=i("4f06").default;n("c442bfba",a,!0,{sourceMap:!1,shadowMode:!1})},b2a6:function(t,e,i){"use strict";i.r(e);var a=i("3993"),n=i("62e0");for(var s in n)["default"].indexOf(s)<0&&function(t){i.d(e,t,(function(){return n[t]}))}(s);i("6827");var o=i("f0c5"),r=Object(o["a"])(n["default"],a["b"],a["c"],!1,null,"350e8d74",null,!1,a["a"],void 0);e["default"]=r.exports},bc66:function(t,e,i){var a=i("24fb");e=a(!1),e.push([t.i,'@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.uni-tag[data-v-350e8d74]{line-height:14px;font-size:12px;font-weight:200;padding:4px 7px;color:#fff;border-radius:3px;background-color:#8f939c;border-width:%?1?%;border-style:solid;border-color:#8f939c;cursor:pointer}.uni-tag--default[data-v-350e8d74]{font-size:12px}.uni-tag--default--inverted[data-v-350e8d74]{color:#8f939c;border-color:#8f939c}.uni-tag--small[data-v-350e8d74]{padding:2px 5px;font-size:12px;border-radius:2px}.uni-tag--mini[data-v-350e8d74]{padding:1px 3px;font-size:12px;border-radius:2px}.uni-tag--primary[data-v-350e8d74]{background-color:#2979ff;border-color:#2979ff;color:#fff}.uni-tag--success[data-v-350e8d74]{color:#fff;background-color:#18bc37;border-color:#18bc37}.uni-tag--warning[data-v-350e8d74]{color:#fff;background-color:#f3a73f;border-color:#f3a73f}.uni-tag--error[data-v-350e8d74]{color:#fff;background-color:#e43d33;border-color:#e43d33}.uni-tag--primary--inverted[data-v-350e8d74]{color:#2979ff;border-color:#2979ff}.uni-tag--success--inverted[data-v-350e8d74]{color:#18bc37;border-color:#18bc37}.uni-tag--warning--inverted[data-v-350e8d74]{color:#f3a73f;border-color:#f3a73f}.uni-tag--error--inverted[data-v-350e8d74]{color:#e43d33;border-color:#e43d33}.uni-tag--inverted[data-v-350e8d74]{background-color:#fff}.uni-tag--circle[data-v-350e8d74]{border-radius:15px!important}.uni-tag--mark[data-v-350e8d74]{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:15px!important;border-bottom-right-radius:15px!important}.uni-tag--disabled[data-v-350e8d74]{opacity:.5;cursor:not-allowed}.uni-tag-text[data-v-350e8d74]{color:#fff;font-size:14px}.uni-tag-text--primary[data-v-350e8d74]{color:#2979ff}.uni-tag-text--success[data-v-350e8d74]{color:#18bc37}.uni-tag-text--warning[data-v-350e8d74]{color:#f3a73f}.uni-tag-text--error[data-v-350e8d74]{color:#e43d33}.uni-tag-text--small[data-v-350e8d74]{font-size:12px}',""]),t.exports=e},cc05:function(t,e,i){"use strict";i.r(e);var a=i("51a3"),n=i.n(a);for(var s in a)["default"].indexOf(s)<0&&function(t){i.d(e,t,(function(){return a[t]}))}(s);e["default"]=n.a},dade:function(t,e,i){var a=i("24fb");e=a(!1),e.push([t.i,".list[data-v-482a2878]{display:flex;min-height:%?80?%;background-color:#fff;margin:%?20?% %?20?%;border-radius:%?20?%;box-shadow:0 0 30px 0 rgba(0,0,0,.2);padding:%?10?%}.list[data-v-482a2878]:first-child{margin-top:%?320?%}.list[data-v-482a2878]:last-child{margin-bottom:%?120?%}.list-left[data-v-482a2878]{display:flex;flex-direction:column;margin-left:%?20?%;width:100vw}.list-left-item[data-v-482a2878]{min-height:%?40?%;line-height:%?40?%;display:flex}.desc[data-v-482a2878]{min-height:%?40?%;display:flex;align-items:center;width:35%}.left-item[data-v-482a2878]{display:flex;flex-wrap:wrap;width:75%;margin:1px 1px 1px 1px\r\n\t/* color: #409EFF; */}.list-right[data-v-482a2878]{display:flex;width:20vw;justify-content:space-between;align-items:center;margin-right:%?20?%}.buttom[data-v-482a2878]{width:100%;position:fixed;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;height:%?100?%;background-color:#fff;box-shadow:0 0 10px 0 rgba(0,0,0,.2)}.popup[data-v-482a2878]{width:80vw;min-height:%?100?%;background-color:#fff;border-radius:%?25?%}.title[data-v-482a2878]{height:%?100?%;line-height:%?100?%;width:100%;color:#606266;text-align:center;font-size:16px}.popup-item[data-v-482a2878]{height:%?80?%;line-height:%?80?%;display:flex;align-items:center;font-size:14px}.popup-item-left[data-v-482a2878]{width:16vw;padding-right:%?20?%;text-align:right;color:#606266}.popup-item-right[data-v-482a2878]{display:flex;align-items:center;width:50vw;height:%?50?%;padding:2px 5px;border:1px solid #e4e7ed;border-radius:%?5?%}.popup-item-right uni-input[data-v-482a2878]{color:#606266}.btn[data-v-482a2878]{display:flex;height:%?90?%;margin-top:%?20?%;border-top:1px solid #dcdfe6;justify-content:center;align-items:center}.btn-left[data-v-482a2878]{display:flex;flex:1;height:100%;justify-content:center;align-items:center;color:#606266;border-right:1px solid #dcdfe6}.btn-right[data-v-482a2878]{display:flex;flex:1;justify-content:center;align-items:center;color:#409eff}\r\n/* 搜索框 */.search-bar[data-v-482a2878]{background-color:#f8f8f8}.list[data-v-482a2878]:first-child{margin-top:%?220?%}.code[data-v-482a2878]{width:100%;position:fixed;min-height:%?100?%;background-color:#fff;z-index:10}.itemButton[data-v-482a2878]{display:flex;align-items:center;justify-content:space-around;height:%?100?%;\t\t\r\n\t/* justify-content: flex-start; */\r\n\t/* margin-left: 20rpx; */border-bottom:1px solid #dcdfe6}.itemButton uni-button[data-v-482a2878]{\r\n\t/* width: 20%; */margin:0}.item[data-v-482a2878]{display:flex;align-items:center;height:%?100?%;margin-left:%?20?%;border-bottom:1px solid #dcdfe6}.item uni-input[data-v-482a2878]{height:%?50?%;line-height:%?50?%;\r\n\t/* font-family: PingFang SC; uniapp 默认字体不居中 */font-size:%?36?%;font-family:PingFang SC;width:55vw}.code-decs[data-v-482a2878]{width:20vw;font-size:18px;color:#303133}.item-right[data-v-482a2878]{margin-left:auto;margin-right:%?20?%}.mat-list-title[data-v-482a2878]{height:%?80?%;line-height:%?80?%;width:100%;background-color:#fff;position:fixed;margin-top:%?100?%;z-index:9;\r\n\t/* border-top: 1px solid #DCDFE6; */text-align:center;box-shadow:0 0 10px 0 rgba(0,0,0,.2)}",""]),t.exports=e},e10b:function(t,e,i){"use strict";i.r(e);var a=i("3d97"),n=i("0a77");for(var s in n)["default"].indexOf(s)<0&&function(t){i.d(e,t,(function(){return n[t]}))}(s);i("ea38");var o=i("f0c5"),r=Object(o["a"])(n["default"],a["b"],a["c"],!1,null,"482a2878",null,!1,a["a"],void 0);e["default"]=r.exports},e4e8:function(t,e,i){"use strict";i("7a82"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a={name:"UniTag",emits:["click"],props:{type:{type:String,default:"default"},size:{type:String,default:"normal"},text:{type:String,default:""},disabled:{type:[Boolean,String],default:!1},inverted:{type:[Boolean,String],default:!1},circle:{type:[Boolean,String],default:!1},mark:{type:[Boolean,String],default:!1},customStyle:{type:String,default:""}},computed:{classes:function(){var t=this.type,e=this.disabled,i=this.inverted,a=this.circle,n=this.mark,s=this.size,o=this.isTrue,r=["uni-tag--"+t,"uni-tag--"+s,o(e)?"uni-tag--disabled":"",o(i)?"uni-tag--"+t+"--inverted":"",o(a)?"uni-tag--circle":"",o(n)?"uni-tag--mark":"",o(i)?"uni-tag--inverted uni-tag-text--"+t:"","small"===s?"uni-tag-text--small":""];return r.join(" ")}},methods:{isTrue:function(t){return!0===t||"true"===t},onClick:function(){this.isTrue(this.disabled)||this.$emit("click")}}};e.default=a},ea38:function(t,e,i){"use strict";var a=i("53d1"),n=i.n(a);n.a}}]);
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["pages-pakin-putDown"], {
    "0a77": function (t, e, i) {
        "use strict";
        i.r(e);
        var a = i("35bc"), n = i.n(a);
        for (var s in a) ["default"].indexOf(s) < 0 && function (t) {
            i.d(e, t, (function () {
                return a[t]
            }))
        }(s);
        e["default"] = n.a
    }, "0ef2": function (t, e, i) {
        "use strict";
        var a = i("b18d"), n = i.n(a);
        n.a
    }, "35bc": function (t, e, i) {
        "use strict";
        (function (t) {
            i("7a82"), Object.defineProperty(e, "__esModule", {value: !0}), e.default = void 0, i("3c65"), i("a434"), i("e9c4");
            var a = {
                data: function () {
                    return {
                        baseUrl: "",
                        token: "",
                        barcode: "",
                        dataList: [],
                        count: 0,
                        rowNum: "",
                        matnr: "",
                        batch: "",
                        weight: "",
                        msgType1: "success",
                        msgType: "success",
                        messageText: "",
                        title: "",
                        content: "",
                        barcodeFocus: !0,
                        matFocus: !1,
                        matData: "",
                        removeNum: 0,
                        specs: "",
                        manuDate: "",
                        model: "",
                        length: "",
                        volume: "",
                        staList: [100, 102, 104, 107, 305],
                        sta: "",
                        item: ""
                    }
                }, onLoad: function () {
                }, onShow: function () {
                    this.baseUrl = uni.getStorageSync("baseUrl"), this.token = uni.getStorageSync("token")
                }, methods: {
                    messageToggle: function (t) {
                        this.msgType1 = t, this.$refs.message.open()
                    }, barcodeInput: function () {
                        var t = this;
                        setTimeout((function () {
                            var e = t.barcode.length;
                            if (8 != e) return uni.showToast({
                                title: "托盘码有误请重试",
                                icon: "none",
                                position: "top"
                            }), void t.barcodeFocuss();
                            t.focuss()
                        }), 200)
                    }, barcodeFocuss: function () {
                        var t = this;
                        t.barcodeFocus = !1, setTimeout((function () {
                            t.barcode = "", t.barcodeFocus = !0
                        }), 100)
                    }, focuss: function () {
                        var t = this;
                        this.barcodeFocus = !1, this.matFocus = !1, setTimeout((function () {
                            t.matnr = "", t.matFocus = !0
                        }), 100)
                    }, findMat: function () {
                        var t = this;
                        uni.request({
                            url: t.baseUrl + "/mat/split",
                            data: {matnr: t.matnr},
                            header: {token: uni.getStorageSync("token")},
                            success: function (e) {
                                e = e.data, 200 === e.code && e.data ? (t.matData = e.data, t.checkMat(t.matData)) : 403 == e.code ? (uni.showToast({
                                    title: e.msg,
                                    icon: "none",
                                    position: "top"
                                }), setTimeout((function () {
                                    uni.reLaunch({url: "../login/login"})
                                }), 1e3)) : uni.showToast({title: e.msg, icon: "none", position: "top"})
                            }
                        })
                    }, selectMat: function () {
                        var e = this;
                        uni.navigateTo({
                            url: "../locDetl/locDetl", success: function (t) {
                                t.eventChannel.emit("commonUrl", {commonUrl: ""})
                            }, events: {
                                acceptDataFromOpenedPage: function (i) {
                                    t("log", i.data, " at pages/pakin/putDown.vue:280");
                                    for (var a = 0; a < i.data.length; a++) e.checkMat(i.data[a])
                                }
                            }
                        }), e.matnr = ""
                    }, checkMat: function (t) {
                        for (var e = this.dataList.length, i = !0, a = 0; a < e; a++) t.locNo == this.dataList[a].locNo && t.matnr == this.dataList[a].matnr && (i = !1);
                        i && this.dataList.unshift(t), this.$forceUpdate()
                    }, revise: function (t, e) {
                        this.matnr = this.dataList[e].matnr, this.batch = this.dataList[e].batch, this.weight = this.dataList[e].weight, this.specs = this.dataList[e].specs, this.manuDate = this.dataList[e].manuDate, this.model = this.dataList[e].model, this.length = this.dataList[e].length, this.volume = this.dataList[e].volume, this.rowNum = e, this.eject()
                    }, eject: function (t) {
                        this.type = t, this.$refs.revise.open(t)
                    }, remove: function (t, e, i) {
                        this.removeNum = e, this.msgType = i, this.title = "警告", this.content = "是否移除当前商品!", this.$refs.alertDialog.open(e)
                    }, removeConfirm: function () {
                        this.messageText = "移除成功", this.messageToggle("success"), this.dataList.splice(this.removeNum, 1)
                    }, removeClose: function () {
                        this.$refs.alertDialog.close()
                    }, reviseConfirm: function () {
                        this.dataList[this.rowNum].anfme = this.count, this.dataList[this.rowNum].batch = this.batch, this.dataList[this.rowNum].weight = this.weight, this.matnr = "", this.messageText = "修改成功", this.messageToggle("success"), this.$refs.revise.close()
                    }, reviseClose: function () {
                        this.$refs.revise.close()
                    }, changeValue: function (t) {
                        this.count = t
                    }, combConfirm: function (t) {
                        this.msgType = t, this.title = "警告", this.content = "是否生成出库任务!", this.$refs.combConfirm.open()
                    }, combClose: function () {
                        this.$refs.combConfirm.close()
                    }, comb: function () {
                        uni.vibrateShort();
                        var t = this;
                        return 0 === t.dataList.length ? (this.messageText = "请添加商品列表", void this.messageToggle("error")) : "" === t.sta ? (this.messageText = "请选择站点", void this.messageToggle("error")) : void uni.request({
                            url: t.baseUrl + "/mobile/outbound/auth",
                            data: JSON.stringify({sta: t.sta, combMats: t.dataList}),
                            method: "POST",
                            header: {token: uni.getStorageSync("token")},
                            success: function (e) {
                                var i = e.data;
                                200 === i.code ? (t.resst(), t.messageText = "生成出库任务成功", t.messageToggle("success")) : 403 == i.code ? (t.messageText = i.msg, t.messageToggle("error"), setTimeout((function () {
                                    uni.reLaunch({url: "../login/login"})
                                }), 1e3)) : (t.messageText = i.msg, t.messageToggle("error"))
                            }
                        })
                    }, reset: function (t) {
                        this.msgType = t, this.title = "警告", this.content = "是否重置!", this.$refs.resetConfirm.open()
                    }, resetConfirm: function () {
                        this.dataList = [], this.messageText = "重置完成", this.messageToggle("success")
                    }, resetClose: function () {
                    }, resst: function () {
                        this.dataList = [], this.barcode = "", this.sta = "", this.barcodeFocuss()
                    }
                }
            };
            e.default = a
        }).call(this, i("0de9")["log"])
    }, 3993: function (t, e, i) {
        "use strict";
        i.d(e, "b", (function () {
            return a
        })), i.d(e, "c", (function () {
            return n
        })), i.d(e, "a", (function () {
        }));
        var a = function () {
            var t = this, e = t.$createElement, i = t._self._c || e;
            return t.text ? i("v-uni-text", {
                staticClass: "uni-tag",
                class: t.classes,
                style: t.customStyle,
                on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.onClick.apply(void 0, arguments)
                    }
                }
            }, [t._v(t._s(t.text))]) : t._e()
        }, n = []
    }, "3d97": function (t, e, i) {
        "use strict";
        i.d(e, "b", (function () {
            return n
        })), i.d(e, "c", (function () {
            return s
        })), i.d(e, "a", (function () {
            return a
        }));
        var a = {
            uniCombox: i("6d8b").default,
            uniTag: i("b2a6").default,
            uniIcons: i("125d").default,
            uniPopup: i("0ffb").default,
            uniPopupDialog: i("ed48").default,
            uniPopupMessage: i("d001").default
        }, n = function () {
            var t = this, e = t.$createElement, i = t._self._c || e;
            return i("v-uni-view", [i("v-uni-view", {staticClass: "code"}, [i("v-uni-view", {staticClass: "itemButton"}, [i("v-uni-button", {
                attrs: {
                    size: "mini",
                    type: "primary"
                }, on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.selectMat()
                    }
                }
            }, [t._v("提取+")]), i("uni-combox", {
                attrs: {candidates: t.staList, placeholder: "请选择入库站点"},
                model: {
                    value: t.sta, callback: function (e) {
                        t.sta = e
                    }, expression: "sta"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "mat-list-title"}, [t._v("商品列表")]), i("v-uni-scroll-view", t._l(t.dataList, (function (e, a) {
                return i("v-uni-view", {
                    key: a,
                    staticClass: "list"
                }, [i("v-uni-view", {staticClass: "list-left"}, [i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("No:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(a + 1))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("库位号:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.locNo))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("编码:")]), i("v-uni-view", {staticClass: "left-item"}, [i("uni-tag", {
                    attrs: {
                        text: e.matnr,
                        type: "primary"
                    }
                })], 1)], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("批号:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.batch))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("膜类型:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.specs))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("生产日期:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.manuDate))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("型号:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.model))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("宽度:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.weight))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("长度:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.length))])], 1), i("v-uni-view", {staticClass: "list-left-item"}, [i("v-uni-view", {staticClass: "desc"}, [t._v("面积:")]), i("v-uni-view", {staticClass: "left-item"}, [t._v(t._s(e.volume))])], 1)], 1), i("v-uni-view", {staticClass: "list-right"}, [i("uni-icons", {
                    attrs: {
                        type: "trash",
                        color: "#f58a8a",
                        size: "24"
                    }, on: {
                        click: function (i) {
                            arguments[0] = i = t.$handleEvent(i), t.remove(e, a, "warn")
                        }
                    }
                })], 1)], 1)
            })), 1), i("v-uni-view", {staticClass: "buttom"}, [i("v-uni-button", {
                attrs: {size: "mini"},
                on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.reset("warn")
                    }
                }
            }, [t._v("重置")]), i("v-uni-button", {
                attrs: {size: "mini", type: "primary"}, on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.combConfirm("warn")
                    }
                }
            }, [t._v("出库")])], 1), i("v-uni-view", [i("uni-popup", {
                ref: "revise",
                attrs: {type: "dialog"}
            }, [i("v-uni-view", {staticClass: "popup"}, [i("v-uni-view", {staticClass: "title"}, [t._v("修改")]), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("编码:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                staticStyle: {
                    "background-color": "#f7f7f7",
                    padding: "0",
                    color: "#d5d5d5"
                }, attrs: {type: "text", disabled: "true"}, model: {
                    value: t.matnr, callback: function (e) {
                        t.matnr = e
                    }, expression: "matnr"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("批号:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.batch, callback: function (e) {
                        t.batch = e
                    }, expression: "batch"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("膜类型:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.specs, callback: function (e) {
                        t.specs = e
                    }, expression: "specs"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("生产日期:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.manuDate, callback: function (e) {
                        t.manuDate = e
                    }, expression: "manuDate"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("型号:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.model, callback: function (e) {
                        t.model = e
                    }, expression: "model"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("宽度:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.weight, callback: function (e) {
                        t.weight = e
                    }, expression: "weight"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("长度:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.length, callback: function (e) {
                        t.length = e
                    }, expression: "length"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "popup-item"}, [i("v-uni-view", {staticClass: "popup-item-left"}, [t._v("面积:")]), i("v-uni-view", {staticClass: "popup-item-right"}, [i("v-uni-input", {
                attrs: {type: "text"},
                model: {
                    value: t.volume, callback: function (e) {
                        t.volume = e
                    }, expression: "volume"
                }
            })], 1)], 1), i("v-uni-view", {staticClass: "btn"}, [i("v-uni-view", {
                staticClass: "btn-left",
                on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.reviseClose.apply(void 0, arguments)
                    }
                }
            }, [t._v("取消")]), i("v-uni-view", {
                staticClass: "btn-right", on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.reviseConfirm()
                    }
                }
            }, [t._v("修改")])], 1)], 1)], 1)], 1), i("v-uni-view", [i("uni-popup", {
                ref: "alertDialog",
                attrs: {type: "dialog"}
            }, [i("uni-popup-dialog", {
                attrs: {type: t.msgType, confirmText: "移除", title: t.title, content: t.content},
                on: {
                    confirm: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.removeConfirm()
                    }, close: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.removeClose.apply(void 0, arguments)
                    }
                }
            })], 1)], 1), i("v-uni-view", [i("uni-popup", {
                ref: "message",
                attrs: {type: "message"}
            }, [i("uni-popup-message", {
                attrs: {
                    type: t.msgType1,
                    message: t.messageText,
                    duration: 2e3
                }
            })], 1)], 1), i("v-uni-view", [i("uni-popup", {
                ref: "combConfirm",
                attrs: {type: "dialog"}
            }, [i("uni-popup-dialog", {
                attrs: {
                    type: t.msgType,
                    cancelText: "取消",
                    confirmText: "确认",
                    title: t.title,
                    content: t.content
                }, on: {
                    confirm: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.comb.apply(void 0, arguments)
                    }, close: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.combClose.apply(void 0, arguments)
                    }
                }
            })], 1)], 1), i("v-uni-view", [i("uni-popup", {
                ref: "resetConfirm",
                attrs: {type: "dialog"}
            }, [i("uni-popup-dialog", {
                attrs: {
                    type: t.msgType,
                    cancelText: "取消",
                    confirmText: "确认",
                    title: t.title,
                    content: t.content
                }, on: {
                    confirm: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.resetConfirm.apply(void 0, arguments)
                    }, close: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.resetClose.apply(void 0, arguments)
                    }
                }
            })], 1)], 1)], 1)
        }, s = []
    }, "51a3": function (t, e, i) {
        "use strict";
        i("7a82"), Object.defineProperty(e, "__esModule", {value: !0}), e.default = void 0, i("a9e3"), i("4de4"), i("d3b7"), i("c975"), i("d401"), i("25f0");
        var a = {
            name: "uniCombox",
            emits: ["input", "update:modelValue"],
            props: {
                border: {type: Boolean, default: !0},
                label: {type: String, default: ""},
                labelWidth: {type: String, default: "auto"},
                placeholder: {type: String, default: ""},
                candidates: {
                    type: Array, default: function () {
                        return []
                    }
                },
                emptyTips: {type: String, default: "无匹配项"},
                value: {type: [String, Number], default: ""}
            },
            data: function () {
                return {showSelector: !1, inputVal: ""}
            },
            computed: {
                labelStyle: function () {
                    return "auto" === this.labelWidth ? "" : "width: ".concat(this.labelWidth)
                }, filterCandidates: function () {
                    var t = this;
                    return this.candidates.filter((function (e) {
                        return e.toString().indexOf(t.inputVal) > -1
                    }))
                }, filterCandidatesLength: function () {
                    return this.filterCandidates.length
                }
            },
            watch: {
                value: {
                    handler: function (t) {
                        this.inputVal = t
                    }, immediate: !0
                }
            },
            methods: {
                toggleSelector: function () {
                    this.showSelector = !this.showSelector
                }, onFocus: function () {
                    this.showSelector = !0
                }, onBlur: function () {
                    var t = this;
                    setTimeout((function () {
                        t.showSelector = !1
                    }), 153)
                }, onSelectorClick: function (t) {
                    this.inputVal = this.filterCandidates[t], this.showSelector = !1, this.$emit("input", this.inputVal), this.$emit("update:modelValue", this.inputVal)
                }, onInput: function () {
                    var t = this;
                    setTimeout((function () {
                        t.$emit("input", t.inputVal), t.$emit("update:modelValue", t.inputVal)
                    }))
                }
            }
        };
        e.default = a
    }, "53d1": function (t, e, i) {
        var a = i("dade");
        a.__esModule && (a = a.default), "string" === typeof a && (a = [[t.i, a, ""]]), a.locals && (t.exports = a.locals);
        var n = i("4f06").default;
        n("7983c66a", a, !0, {sourceMap: !1, shadowMode: !1})
    }, "5fba": function (t, e, i) {
        "use strict";
        i.d(e, "b", (function () {
            return n
        })), i.d(e, "c", (function () {
            return s
        })), i.d(e, "a", (function () {
            return a
        }));
        var a = {uniIcons: i("125d").default}, n = function () {
            var t = this, e = t.$createElement, i = t._self._c || e;
            return i("v-uni-view", {
                staticClass: "uni-combox",
                class: t.border ? "" : "uni-combox__no-border"
            }, [t.label ? i("v-uni-view", {
                staticClass: "uni-combox__label",
                style: t.labelStyle
            }, [i("v-uni-text", [t._v(t._s(t.label))])], 1) : t._e(), i("v-uni-view", {staticClass: "uni-combox__input-box"}, [i("v-uni-input", {
                staticClass: "uni-combox__input",
                attrs: {type: "text", placeholder: t.placeholder, "placeholder-class": "uni-combox__input-plac"},
                on: {
                    input: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.onInput.apply(void 0, arguments)
                    }, focus: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.onFocus.apply(void 0, arguments)
                    }, blur: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.onBlur.apply(void 0, arguments)
                    }
                },
                model: {
                    value: t.inputVal, callback: function (e) {
                        t.inputVal = e
                    }, expression: "inputVal"
                }
            }), i("uni-icons", {
                attrs: {type: t.showSelector ? "top" : "bottom", size: "14", color: "#999"},
                on: {
                    click: function (e) {
                        arguments[0] = e = t.$handleEvent(e), t.toggleSelector.apply(void 0, arguments)
                    }
                }
            })], 1), t.showSelector ? i("v-uni-view", {staticClass: "uni-combox__selector"}, [i("v-uni-view", {staticClass: "uni-popper__arrow"}), i("v-uni-scroll-view", {
                staticClass: "uni-combox__selector-scroll",
                attrs: {"scroll-y": "true"}
            }, [0 === t.filterCandidatesLength ? i("v-uni-view", {staticClass: "uni-combox__selector-empty"}, [i("v-uni-text", [t._v(t._s(t.emptyTips))])], 1) : t._e(), t._l(t.filterCandidates, (function (e, a) {
                return i("v-uni-view", {
                    key: a, staticClass: "uni-combox__selector-item", on: {
                        click: function (e) {
                            arguments[0] = e = t.$handleEvent(e), t.onSelectorClick(a)
                        }
                    }
                }, [i("v-uni-text", [t._v(t._s(e))])], 1)
            }))], 2)], 1) : t._e()], 1)
        }, s = []
    }, "62e0": function (t, e, i) {
        "use strict";
        i.r(e);
        var a = i("e4e8"), n = i.n(a);
        for (var s in a) ["default"].indexOf(s) < 0 && function (t) {
            i.d(e, t, (function () {
                return a[t]
            }))
        }(s);
        e["default"] = n.a
    }, 6827: function (t, e, i) {
        "use strict";
        var a = i("b18f"), n = i.n(a);
        n.a
    }, "6d8b": function (t, e, i) {
        "use strict";
        i.r(e);
        var a = i("5fba"), n = i("cc05");
        for (var s in n) ["default"].indexOf(s) < 0 && function (t) {
            i.d(e, t, (function () {
                return n[t]
            }))
        }(s);
        i("0ef2");
        var o = i("f0c5"),
            r = Object(o["a"])(n["default"], a["b"], a["c"], !1, null, "1c3f77c9", null, !1, a["a"], void 0);
        e["default"] = r.exports
    }, ac60: function (t, e, i) {
        var a = i("24fb");
        e = a(!1), e.push([t.i, '@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.uni-combox[data-v-1c3f77c9]{font-size:14px;border:1px solid #dcdfe6;border-radius:4px;padding:6px 10px;position:relative;display:flex;flex-direction:row;align-items:center}.uni-combox__label[data-v-1c3f77c9]{font-size:16px;line-height:22px;padding-right:10px;color:#999}.uni-combox__input-box[data-v-1c3f77c9]{position:relative;display:flex;flex:1;flex-direction:row;align-items:center}.uni-combox__input[data-v-1c3f77c9]{flex:1;font-size:14px;height:22px;line-height:22px}.uni-combox__input-plac[data-v-1c3f77c9]{font-size:14px;color:#999}.uni-combox__selector[data-v-1c3f77c9]{box-sizing:border-box;position:absolute;top:calc(100% + 12px);left:0;width:100%;background-color:#fff;border:1px solid #ebeef5;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);z-index:2;padding:4px 0}.uni-combox__selector-scroll[data-v-1c3f77c9]{max-height:200px;box-sizing:border-box}.uni-combox__selector-empty[data-v-1c3f77c9],\r\n.uni-combox__selector-item[data-v-1c3f77c9]{display:flex;cursor:pointer;line-height:36px;font-size:14px;text-align:center;padding:0 10px}.uni-combox__selector-item[data-v-1c3f77c9]:hover{background-color:#f9f9f9}.uni-combox__selector-empty[data-v-1c3f77c9]:last-child,\r\n.uni-combox__selector-item[data-v-1c3f77c9]:last-child{border-bottom:none}.uni-popper__arrow[data-v-1c3f77c9],\r\n.uni-popper__arrow[data-v-1c3f77c9]::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;border-width:6px}.uni-popper__arrow[data-v-1c3f77c9]{-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));top:-6px;left:10%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.uni-popper__arrow[data-v-1c3f77c9]::after{content:" ";top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.uni-combox__no-border[data-v-1c3f77c9]{border:none}', ""]), t.exports = e
    }, b18d: function (t, e, i) {
        var a = i("ac60");
        a.__esModule && (a = a.default), "string" === typeof a && (a = [[t.i, a, ""]]), a.locals && (t.exports = a.locals);
        var n = i("4f06").default;
        n("f01df0cc", a, !0, {sourceMap: !1, shadowMode: !1})
    }, b18f: function (t, e, i) {
        var a = i("bc66");
        a.__esModule && (a = a.default), "string" === typeof a && (a = [[t.i, a, ""]]), a.locals && (t.exports = a.locals);
        var n = i("4f06").default;
        n("c442bfba", a, !0, {sourceMap: !1, shadowMode: !1})
    }, b2a6: function (t, e, i) {
        "use strict";
        i.r(e);
        var a = i("3993"), n = i("62e0");
        for (var s in n) ["default"].indexOf(s) < 0 && function (t) {
            i.d(e, t, (function () {
                return n[t]
            }))
        }(s);
        i("6827");
        var o = i("f0c5"),
            r = Object(o["a"])(n["default"], a["b"], a["c"], !1, null, "350e8d74", null, !1, a["a"], void 0);
        e["default"] = r.exports
    }, bc66: function (t, e, i) {
        var a = i("24fb");
        e = a(!1), e.push([t.i, '@charset "UTF-8";\r\n/**\r\n * 这里是uni-app内置的常用样式变量\r\n *\r\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\r\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\r\n *\r\n */\r\n/**\r\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\r\n *\r\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\r\n */\r\n/* 颜色变量 */\r\n/* 行为相关颜色 */\r\n/* 文字基本颜色 */\r\n/* 背景颜色 */\r\n/* 边框颜色 */\r\n/* 尺寸变量 */\r\n/* 文字尺寸 */\r\n/* 图片尺寸 */\r\n/* Border Radius */\r\n/* 水平间距 */\r\n/* 垂直间距 */\r\n/* 透明度 */\r\n/* 文章场景相关 */.uni-tag[data-v-350e8d74]{line-height:14px;font-size:12px;font-weight:200;padding:4px 7px;color:#fff;border-radius:3px;background-color:#8f939c;border-width:%?1?%;border-style:solid;border-color:#8f939c;cursor:pointer}.uni-tag--default[data-v-350e8d74]{font-size:12px}.uni-tag--default--inverted[data-v-350e8d74]{color:#8f939c;border-color:#8f939c}.uni-tag--small[data-v-350e8d74]{padding:2px 5px;font-size:12px;border-radius:2px}.uni-tag--mini[data-v-350e8d74]{padding:1px 3px;font-size:12px;border-radius:2px}.uni-tag--primary[data-v-350e8d74]{background-color:#2979ff;border-color:#2979ff;color:#fff}.uni-tag--success[data-v-350e8d74]{color:#fff;background-color:#18bc37;border-color:#18bc37}.uni-tag--warning[data-v-350e8d74]{color:#fff;background-color:#f3a73f;border-color:#f3a73f}.uni-tag--error[data-v-350e8d74]{color:#fff;background-color:#e43d33;border-color:#e43d33}.uni-tag--primary--inverted[data-v-350e8d74]{color:#2979ff;border-color:#2979ff}.uni-tag--success--inverted[data-v-350e8d74]{color:#18bc37;border-color:#18bc37}.uni-tag--warning--inverted[data-v-350e8d74]{color:#f3a73f;border-color:#f3a73f}.uni-tag--error--inverted[data-v-350e8d74]{color:#e43d33;border-color:#e43d33}.uni-tag--inverted[data-v-350e8d74]{background-color:#fff}.uni-tag--circle[data-v-350e8d74]{border-radius:15px!important}.uni-tag--mark[data-v-350e8d74]{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:15px!important;border-bottom-right-radius:15px!important}.uni-tag--disabled[data-v-350e8d74]{opacity:.5;cursor:not-allowed}.uni-tag-text[data-v-350e8d74]{color:#fff;font-size:14px}.uni-tag-text--primary[data-v-350e8d74]{color:#2979ff}.uni-tag-text--success[data-v-350e8d74]{color:#18bc37}.uni-tag-text--warning[data-v-350e8d74]{color:#f3a73f}.uni-tag-text--error[data-v-350e8d74]{color:#e43d33}.uni-tag-text--small[data-v-350e8d74]{font-size:12px}', ""]), t.exports = e
    }, cc05: function (t, e, i) {
        "use strict";
        i.r(e);
        var a = i("51a3"), n = i.n(a);
        for (var s in a) ["default"].indexOf(s) < 0 && function (t) {
            i.d(e, t, (function () {
                return a[t]
            }))
        }(s);
        e["default"] = n.a
    }, dade: function (t, e, i) {
        var a = i("24fb");
        e = a(!1), e.push([t.i, ".list[data-v-482a2878]{display:flex;min-height:%?80?%;background-color:#fff;margin:%?20?% %?20?%;border-radius:%?20?%;box-shadow:0 0 30px 0 rgba(0,0,0,.2);padding:%?10?%}.list[data-v-482a2878]:first-child{margin-top:%?320?%}.list[data-v-482a2878]:last-child{margin-bottom:%?120?%}.list-left[data-v-482a2878]{display:flex;flex-direction:column;margin-left:%?20?%;width:100vw}.list-left-item[data-v-482a2878]{min-height:%?40?%;line-height:%?40?%;display:flex}.desc[data-v-482a2878]{min-height:%?40?%;display:flex;align-items:center;width:35%}.left-item[data-v-482a2878]{display:flex;flex-wrap:wrap;width:75%;margin:1px 1px 1px 1px\r\n\t/* color: #409EFF; */}.list-right[data-v-482a2878]{display:flex;width:20vw;justify-content:space-between;align-items:center;margin-right:%?20?%}.buttom[data-v-482a2878]{width:100%;position:fixed;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;height:%?100?%;background-color:#fff;box-shadow:0 0 10px 0 rgba(0,0,0,.2)}.popup[data-v-482a2878]{width:80vw;min-height:%?100?%;background-color:#fff;border-radius:%?25?%}.title[data-v-482a2878]{height:%?100?%;line-height:%?100?%;width:100%;color:#606266;text-align:center;font-size:16px}.popup-item[data-v-482a2878]{height:%?80?%;line-height:%?80?%;display:flex;align-items:center;font-size:14px}.popup-item-left[data-v-482a2878]{width:16vw;padding-right:%?20?%;text-align:right;color:#606266}.popup-item-right[data-v-482a2878]{display:flex;align-items:center;width:50vw;height:%?50?%;padding:2px 5px;border:1px solid #e4e7ed;border-radius:%?5?%}.popup-item-right uni-input[data-v-482a2878]{color:#606266}.btn[data-v-482a2878]{display:flex;height:%?90?%;margin-top:%?20?%;border-top:1px solid #dcdfe6;justify-content:center;align-items:center}.btn-left[data-v-482a2878]{display:flex;flex:1;height:100%;justify-content:center;align-items:center;color:#606266;border-right:1px solid #dcdfe6}.btn-right[data-v-482a2878]{display:flex;flex:1;justify-content:center;align-items:center;color:#409eff}\r\n/* 搜索框 */.search-bar[data-v-482a2878]{background-color:#f8f8f8}.list[data-v-482a2878]:first-child{margin-top:%?220?%}.code[data-v-482a2878]{width:100%;position:fixed;min-height:%?100?%;background-color:#fff;z-index:10}.itemButton[data-v-482a2878]{display:flex;align-items:center;justify-content:space-around;height:%?100?%;\t\t\r\n\t/* justify-content: flex-start; */\r\n\t/* margin-left: 20rpx; */border-bottom:1px solid #dcdfe6}.itemButton uni-button[data-v-482a2878]{\r\n\t/* width: 20%; */margin:0}.item[data-v-482a2878]{display:flex;align-items:center;height:%?100?%;margin-left:%?20?%;border-bottom:1px solid #dcdfe6}.item uni-input[data-v-482a2878]{height:%?50?%;line-height:%?50?%;\r\n\t/* font-family: PingFang SC; uniapp 默认字体不居中 */font-size:%?36?%;font-family:PingFang SC;width:55vw}.code-decs[data-v-482a2878]{width:20vw;font-size:18px;color:#303133}.item-right[data-v-482a2878]{margin-left:auto;margin-right:%?20?%}.mat-list-title[data-v-482a2878]{height:%?80?%;line-height:%?80?%;width:100%;background-color:#fff;position:fixed;margin-top:%?100?%;z-index:9;\r\n\t/* border-top: 1px solid #DCDFE6; */text-align:center;box-shadow:0 0 10px 0 rgba(0,0,0,.2)}", ""]), t.exports = e
    }, e10b: function (t, e, i) {
        "use strict";
        i.r(e);
        var a = i("3d97"), n = i("0a77");
        for (var s in n) ["default"].indexOf(s) < 0 && function (t) {
            i.d(e, t, (function () {
                return n[t]
            }))
        }(s);
        i("ea38");
        var o = i("f0c5"),
            r = Object(o["a"])(n["default"], a["b"], a["c"], !1, null, "482a2878", null, !1, a["a"], void 0);
        e["default"] = r.exports
    }, e4e8: function (t, e, i) {
        "use strict";
        i("7a82"), Object.defineProperty(e, "__esModule", {value: !0}), e.default = void 0;
        var a = {
            name: "UniTag",
            emits: ["click"],
            props: {
                type: {type: String, default: "default"},
                size: {type: String, default: "normal"},
                text: {type: String, default: ""},
                disabled: {type: [Boolean, String], default: !1},
                inverted: {type: [Boolean, String], default: !1},
                circle: {type: [Boolean, String], default: !1},
                mark: {type: [Boolean, String], default: !1},
                customStyle: {type: String, default: ""}
            },
            computed: {
                classes: function () {
                    var t = this.type, e = this.disabled, i = this.inverted, a = this.circle, n = this.mark,
                        s = this.size, o = this.isTrue,
                        r = ["uni-tag--" + t, "uni-tag--" + s, o(e) ? "uni-tag--disabled" : "", o(i) ? "uni-tag--" + t + "--inverted" : "", o(a) ? "uni-tag--circle" : "", o(n) ? "uni-tag--mark" : "", o(i) ? "uni-tag--inverted uni-tag-text--" + t : "", "small" === s ? "uni-tag-text--small" : ""];
                    return r.join(" ")
                }
            },
            methods: {
                isTrue: function (t) {
                    return !0 === t || "true" === t
                }, onClick: function () {
                    this.isTrue(this.disabled) || this.$emit("click")
                }
            }
        };
        e.default = a
    }, ea38: function (t, e, i) {
        "use strict";
        var a = i("53d1"), n = i.n(a);
        n.a
    }
}]);