仓库:
显示在库信息,入库完成后显示成功入库的包数
订单出库页面显示剩余待检包数 (PDA)
未查询到的提示改为显示物料实际状态
拣货单已完成,单据未完成 ✔
单据数量字段显示变更 ✔
拣货单按实际操作时间降序排序 ✔
拣货单明细导出 ✔
拣货单显示创建时间与操作时间 ✔
销售:
解冻 ✔
包号搜索前置 ✔
显示多批号 ✔
| | |
| | | response.getOutputStream().close(); |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo,brand); |
| | | if ((Cools.isEmpty(pla))){ |
| | | return R.error("该包物料未录入,无法查询到相关信息"); |
| | | return R.error("该包物料未录入,无法查询到相关信息").add(pla); |
| | | } |
| | | if(!(Cools.eq(pla.getStatus(), GlobleParameter.PLA_STATUS_0) || Cools.eq(pla.getStatus(), GlobleParameter.PLA_STATUS_00)) && type != 2){ |
| | | return R.error("该包物料不为待入库状态,无法进行入库操作"); |
| | | return R.error("该包物料的状态为" + pla.getStatus() +",无法进行入库操作").add(pla); |
| | | } |
| | | return R.ok(pla); |
| | | } |
| | |
| | | throw new CoolException("该包物料未录入,无法查询到相关信息"); |
| | | } |
| | | if(!Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_1) && !Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_3)){ |
| | | throw new CoolException("该包物料状态不为入库状态,无法转移"); |
| | | throw new CoolException("该包物料的状态为" + pla.getStatus() +",无法进行入库操作"); |
| | | } |
| | | |
| | | String sourceLocNo = pla.getLocNo(); |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.R; |
| | | import com.zy.asrs.entity.ManLocDetl; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.entity.Pakout; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.OrderDomainParam; |
| | | import com.zy.asrs.service.ManLocDetlService; |
| | | import com.zy.asrs.service.OrderDetlService; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.service.PakoutService; |
| | | import com.zy.asrs.entity.result.PakoutVo; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.web.BaseController; |
| | | import com.zy.system.entity.User; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private ManLocDetlService manLocDetlService; |
| | | @Autowired |
| | | private PlaService plaService; |
| | | |
| | | @RequestMapping(value = "/pakout/{id}/auth") |
| | | @ManagerAuth |
| | |
| | | if (user.getRoleId() != 2 || user.getRoleId() != 24) { |
| | | wrapper.eq("create_by", user.getId()); |
| | | } |
| | | |
| | | |
| | | |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(pakoutService.selectPage(new Page<>(curr, limit), wrapper)); |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/pakout/printExport/auth") |
| | | // @ManagerAuth(memo = "盘点单导出") |
| | | public void export(HttpServletResponse response, @RequestParam String orderNo) throws IOException { |
| | | //从数据库查询数据 |
| | | EntityWrapper<Pakout> locCheckEntityWrapper = new EntityWrapper<>(); |
| | | locCheckEntityWrapper.eq("doc_num",orderNo); |
| | | List<Pakout> list = pakoutService.selectList(locCheckEntityWrapper); |
| | | List<PakoutVo> pakoutVos=new ArrayList<>(); |
| | | |
| | | for (Pakout pakout: list) { |
| | | PakoutVo pakoutVo = new PakoutVo(); |
| | | Pla pla = plaService.selectOne(new EntityWrapper<Pla>() |
| | | .eq("batch", pakout.getBatch()) |
| | | .eq("package_no", pakout.getBarcode()) |
| | | .eq("brand", pakout.getMaktx())); |
| | | BeanUtils.copyProperties(pla,pakoutVo); |
| | | BeanUtils.copyProperties(pakout,pakoutVo); |
| | | pakoutVos.add(pakoutVo); |
| | | } |
| | | response.setContentType("application/vnd.ms-excel"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | String fileName = URLEncoder.encode("拣货单", "UTF-8"); |
| | | response.setHeader("Content-disposition", "attachment;filename=" + fileName+ orderNo + ".xlsx"); |
| | | EasyExcel.write(response.getOutputStream(), PakoutVo.class) |
| | | .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) |
| | | .sheet("表1") |
| | | .doWrite(pakoutVos); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.Cools; |
| | |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.GlobleParameter; |
| | | import com.zy.asrs.entity.result.KeyValueVo; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.PlaExcelListener; |
| | | import com.zy.asrs.utils.SaasUtils; |
| | |
| | | wrapper.ne("status", "全部出库"); |
| | | } |
| | | |
| | | if (!Cools.isEmpty(param.get("batch")) && param.get("batch").toString().contains(",")){ |
| | | String[] batchs = param.get("batch").toString().split(","); |
| | | wrapper.in("batch",batchs); |
| | | param.remove("batch"); |
| | | } |
| | | |
| | | convert(param, wrapper); |
| | | wrapper.orderBy("batch",true).orderBy("package_no" ,true); |
| | |
| | | for (Pla pla : plas){ |
| | | |
| | | if(pla.getStockFreeze() == 0){ |
| | | throw new CoolException("库存已被冻结,请重新选择库存"); |
| | | // throw new CoolException("库存已被冻结,请重新选择库存"); |
| | | System.out.println(pla.getStockFreezeBy() + "," + getUser().getUsername()); |
| | | if(!Cools.eq(pla.getStockFreezeBy(),getUser().getUsername())){ |
| | | throw new CoolException("该库存已被其他用户冻结,请重新选择"); |
| | | } |
| | | } |
| | | |
| | | allOrderWeight += pla.getOrderWeight(); |
| | |
| | | } |
| | | for (Pla pla : plas){ |
| | | if (pla.getStockFreeze() == 0){ |
| | | throw new CoolException("库存已被冻结!"); |
| | | continue; |
| | | // throw new CoolException("库存已被冻结!"); |
| | | } |
| | | pla.setStockFreeze(0); |
| | | pla.setStockFreezeBy(getUser().getUsername()); |
| | |
| | | } |
| | | for (Pla pla : plas){ |
| | | if (pla.getStockFreeze() == 1){ |
| | | throw new CoolException("库位未冻结,无需解冻"); |
| | | continue; |
| | | // throw new CoolException("库位未冻结,无需解冻"); |
| | | } |
| | | if(!Cools.eq(pla.getStockFreezeBy(),getUser().getUsername())){ |
| | | throw new CoolException("无法解冻其他用户冻结的库位"); |
| | |
| | | return R.ok().add(res); |
| | | } |
| | | |
| | | /*************************************** xm-select ***********************************************/ |
| | | |
| | | // xm-select 搜索批号 |
| | | @RequestMapping("/pla/batch/all/get/kv") |
| | | @ManagerAuth |
| | | public R getMatDataKV(@RequestParam(required = false) String condition) { |
| | | Wrapper<Pla> wrapper = new EntityWrapper<Pla>().setSqlSelect("batch") |
| | | .andNew().like("batch", condition) |
| | | .groupBy("batch"); |
| | | List<Pla> plas = plaService.selectPage(new Page<Pla>(1, 30), wrapper).getRecords(); |
| | | List<KeyValueVo> valueVos = new ArrayList<>(); |
| | | for (Pla pla : plas) { |
| | | KeyValueVo vo = new KeyValueVo(); |
| | | vo.setName(pla.getBatch()); |
| | | vo.setValue(pla.getBatch()); |
| | | valueVos.add(vo); |
| | | } |
| | | return R.ok().add(valueVos); |
| | | } |
| | | |
| | | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | String val = String.valueOf(entry.getValue()); |
| | |
| | | public class PakOutDTO { |
| | | private String doc_num; |
| | | private Date create_time; |
| | | private Date update_time; |
| | | private Integer status; |
| | | private String custName; |
| | | |
| | |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.create_time); |
| | | } |
| | | |
| | | public String getUpdateTime$(){ |
| | | if (Cools.isEmpty(this.update_time)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.create_time); |
| | | } |
| | | |
| | | public String getStatus$(){ |
| | | if (null == this.status){ return null; } |
| | | switch (this.status){ |
| | |
| | | package com.zy.asrs.entity.result; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.zy.asrs.entity.Pla; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by vincent on 2021/3/22 |
| | | */ |
| | | @Data |
| | | public class PakoutVo { |
| | | public class PakoutVo extends Pla { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ExcelProperty({"单据", "单据编号"}) |
| | | private String docNum; |
| | | |
| | | @ExcelProperty({"单据", "库位"}) |
| | | private String locNo; |
| | | |
| | | private String matnr; |
| | | @ExcelProperty({"单据", "批号"}) |
| | | private String batch; |
| | | |
| | | @ExcelProperty({"单据", "包号"}) |
| | | private String barcode; |
| | | |
| | | @ExcelProperty({"单据", "牌号"}) |
| | | private String maktx; |
| | | |
| | | @ExcelProperty({"单据", "重量"}) |
| | | private Double anfme; |
| | | |
| | | private String zpallet; |
| | | @ExcelProperty({"单据", "拣货重量"}) |
| | | private String count; |
| | | |
| | | @ExcelProperty({"单据", "状态"}) |
| | | private String status$; |
| | | |
| | | @ExcelProperty({"单据", "备注"}) |
| | | private String memo; |
| | | |
| | | @ExcelProperty({"单据", "发货时间"}) |
| | | private String specs; |
| | | |
| | | } |
| | |
| | | manPakOut.setCount(manPakOut.getCount() + anfme); |
| | | if (manPakOut.getAnfme().equals(manPakOut.getCount())){ |
| | | manPakOut.setStatus(1); |
| | | manPakOut.setUpdateTime(new Date()); |
| | | manPakOutService.updateById(manPakOut); |
| | | } |
| | | |
| | |
| | | manPakOut.setMaktx(plaNew.getBrand()); |
| | | manPakOut.setBatch(plaNew.getBatch()); |
| | | manPakOut.setBarcode(plaNew.getPackageNo() + ""); |
| | | manPakOut.setUpdateTime(new Date()); |
| | | |
| | | manPakOutService.updateById(manPakOut); |
| | | |
| | |
| | | // throw new CoolException("保存商品信息失败,商品编码:" + excel.getMatnr()); |
| | | // } |
| | | total++; |
| | | }else if(Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_0) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_1) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_00)){ |
| | | }else if(Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_0) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_00)){ |
| | | excel.setId(pla.getId()); |
| | | excel.setCreateTime(pla.getCreateTime()); |
| | | excel.setStatus(pla.getStatus()); |
| | | excel.setPakinTime(pla.getPakinTime()); |
| | | excel.setStash(pla.getStash()); |
| | | excel.setStockFreeze(pla.getStockFreeze()); |
| | | if(Cools.isEmpty(excel.getLocNo())){ |
| | | excel.setLocNo(pla.getLocNo()); |
| | | } |
| | |
| | | pla.setStep(2); |
| | | pla.setModifyTime(new Date()); |
| | | pla.setStatus(GlobleParameter.PLA_STATUS_00); |
| | | pla.setStockFreeze(1); |
| | | pla.setStockFreeze(Cools.isEmpty(excel.getStockFreeze()) ? 1 : excel.getStockFreeze()); |
| | | pla.setWeightAnfme(pla.getWeight()); |
| | | Mat mat = matService.selectByMaktx(pla.getBrand()); |
| | | if(Cools.isEmpty(mat)){ |
| | |
| | | |
| | | <select id="selectPakOut" resultType="com.zy.asrs.entity.param.PakOutDTO"> |
| | | select * from ( |
| | | SELECT status, doc_num,MAX(create_time) as create_time, cust_name as custName FROM man_pakout |
| | | SELECT status, doc_num,MAX(create_time) as create_time,MAX(update_time) as update_time, cust_name as custName FROM man_pakout |
| | | where 1=1 |
| | | <include refid="selectPakOutSql"></include> |
| | | GROUP BY doc_num,cust_name,status |
| | | ) t ORDER BY status |
| | | ) t ORDER BY status,update_time DESC |
| | | OFFSET ((#{curr}-1)*#{limit}) ROWS |
| | | FETCH NEXT #{limit} ROWS ONLY; |
| | | |
| | |
| | | ,{align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160} |
| | | ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'custName', align: 'center',title: '客户名称', width: 160} |
| | | ,{field: 'createTime$', align: 'center',title: '操作时间'} |
| | | ,{field: 'createTime$', align: 'center',title: '创建时间'} |
| | | ,{field: 'updateTime$', align: 'center',title: '操作时间'} |
| | | ,{align: 'center', title: '操作', toolbar: '#operate'} |
| | | |
| | | ]], |
| | |
| | | case "del": |
| | | doDel(data); |
| | | break; |
| | | case "printExcel": |
| | | printExcel(data); |
| | | break; |
| | | case "look": |
| | | var $a = $(obj.tr).find('a[lay-event="look"]'); |
| | | var offset = $a.offset(); |
| | |
| | | // ,{field: 'matnr', align: 'center',title: '物料号'} |
| | | ,{field: 'maktx', align: 'center',title: '牌号'} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'createTime$', align: 'center',title: '操作时间'} |
| | | ,{field: 'updateTime$', align: 'center',title: '操作时间'} |
| | | ,{field: 'count', align: 'center',title: '完成数'} |
| | | ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'memo', align: 'center',title: '备注'} |
| | |
| | | |
| | | for (let i = 0; i < res.data.length; i++){ |
| | | sum += res.data[i].anfme; |
| | | console.log("sum:"+res.data.anfme); |
| | | |
| | | } |
| | | json.anfmeSum = sum; |
| | | json.custName = json.data[0].custName; |
| | | var barcodeUrl = baseUrl + "/ManPakOut/code/auth?type=1¶m=" + res.data[0].docNum; |
| | | console.log("barcodeUrl:"+barcodeUrl); |
| | | json.barcodeUrl = barcodeUrl; |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | function printExcel(data){ |
| | | layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | layer.closeAll(); |
| | | layer.load(1, {shade: [0.1,'#fff']}); |
| | | location.href = baseUrl+"/pakout/printExport/auth?orderNo="+data.doc_num; |
| | | layer.closeAll('loading'); |
| | | }); |
| | | } |
| | | |
| | | }); |
| | | |
| | |
| | | |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin', 'dropdown'], function() { |
| | | }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'dropdown'], function() { |
| | | var dropdown = layui.dropdown; |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 渲染物料选择 |
| | | var matXmSelect = xmSelect.render({ |
| | | el: '#mat', |
| | | style: { |
| | | width: '270px', |
| | | }, |
| | | autoRow: true, |
| | | toolbar: { show: true }, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | remoteMethod: function(val, cb, show){ |
| | | $.ajax({ |
| | | url: baseUrl+"/pla/batch/all/get/kv", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | condition: val |
| | | }, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | cb(res.data) |
| | | } else { |
| | | cb([]); |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | |
| | | // 复选框事件 |
| | | table.on('checkbox(plaDetl)', function(obj){ |
| | |
| | | if(customValue !== undefined){ |
| | | searchData['type'] = customValue |
| | | } |
| | | if(searchData.select){ |
| | | searchData.batch = searchData.select; |
| | | searchData.select = null; |
| | | } |
| | | (child ? parent.tableIns : tableIns).reload({ |
| | | where: searchData, |
| | | page: { |
| | |
| | | layer.msg("选中的明细中含有多种牌号,请重新选择"); |
| | | return; |
| | | } |
| | | if(data[i].stockFreeze === 0){ |
| | | layer.msg("选中的明细中含有冻结的库存,请解冻后操作"); |
| | | return; |
| | | } |
| | | // if(data[i].stockFreeze === 0){ |
| | | // layer.msg("选中的明细中含有冻结的库存,请解冻后操作"); |
| | | // return; |
| | | // } |
| | | } |
| | | |
| | | layer.open({ |
| | |
| | | </script> |
| | | <!-- 表格操作列 --> |
| | | <script type="text/html" id="operate"> |
| | | {{# if (d.settle == 0 || d.settle == 1) { }} |
| | | <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a> |
| | | {{# } }} |
| | | {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 21 || d.docType == 11 || d.docType == 12)) { }} |
| | | {{# } }} |
| | | {{# if (d.settle == 2) { }} |
| | | <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">完结</a> |
| | | {{# } }} |
| | | <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="printExcel">导出Excel</a> |
| | | <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint2">打印</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a> |
| | | <!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="btnPrint"><img src="../../static/image/nav/fn_3.png" alt="二维码"></a> |
| | |
| | | <div style="height: 50px;text-align: center;font-size: 25px;">{{docNum}}</div> |
| | | <div style="height: 40px;text-align: left;line-height: 40px;font-size: 20px;">出库单号:{{docNum}}</div> |
| | | <div style="height: 40px;text-align: left;line-height: 40px;font-size: 20px;">总数量:{{anfmeSum}}</div> |
| | | <div style="height: 40px;text-align: left;line-height: 40px;font-size: 20px;">客户名称:{{custName}}</div> |
| | | </div> |
| | | {{#each data}} |
| | | <table width="100%" style="border:0;border-bottom:#0C0C0C solid 2px; margin-bottom:20px;padding:0;overflow: hidden;font-size: xx-small;table-layout: fixed;"> |
| | |
| | | {{this.locNo}} |
| | | </td> |
| | | </tr> |
| | | <tr style="height: 30px; font-size: 15px;"> |
| | | <td align="left" scope="col" colspan="1" style="width: 100px;"> |
| | | 发货时间: |
| | | </td> |
| | | <td align="left" scope="col" colspan="1"> |
| | | {{this.specs}} |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | {{/each}} |
| | | </script> |
| | |
| | | <!-- 搜索栏 --> |
| | | <div id="search-box"> |
| | | <div class="layui-form layui-card-header"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 270px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off"> |
| | | <div id="mat" name="mat"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | <option value="待出库">待出库</option> |
| | | <option value="部分出库">部分出库</option> |
| | | <option value="全部出库">全部出库</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <select name="stock_freeze"> |
| | | <option value="">是否冻结</option> |
| | | <option value="0">是</option> |
| | | <option value="1">否</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin', 'tableMerge'], function() { |
| | | }).use(['table','laydate', 'form', 'admin', 'tableMerge', 'xmSelect'], function() { |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | |
| | | } |
| | | }); |
| | | |
| | | // 渲染物料选择 |
| | | var matXmSelect = xmSelect.render({ |
| | | el: '#mat', |
| | | style: { |
| | | width: '270px', |
| | | }, |
| | | autoRow: true, |
| | | toolbar: { show: true }, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | remoteMethod: function(val, cb, show){ |
| | | $.ajax({ |
| | | url: baseUrl+"/pla/batch/all/get/kv", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | condition: val |
| | | }, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | cb(res.data) |
| | | } else { |
| | | cb([]); |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(stockOut)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id); |
| | |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | if(searchData.select){ |
| | | searchData.batch = searchData.select; |
| | | searchData.select = null; |
| | | } |
| | | locDetlTableIns.reload({ |
| | | where: searchData, |
| | | }); |
| | |
| | | <!-- 搜索栏 --> |
| | | <div id="search-box" > |
| | | <div class="layui-form layui-card-header"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 70px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off"> |
| | | <input class="layui-input" type="text" name="package_noMin" placeholder="最小包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 70px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMax" placeholder="最大包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width: 270px"> |
| | | <div class="layui-input-inline"> |
| | | <div id="mat" name="mat"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="maktx" class="layui-input" type="text" style="display: none"> |
| | | <input id="maktxV" name="brand" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" placeholder="牌号" type="text" onfocus=this.blur()> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="type" placeholder="物资类别" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <select name="status"> |
| | | <option value="">选择状态</option> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_type" placeholder="包装类型" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="zpallet_type" placeholder="托盘类型" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMin" placeholder="最小包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMax" placeholder="最大包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | |
| | | <!-- 功能区 --> |
| | | <div class="function-area"> |
| | | <!-- <button id="rework" style="alignment: right" class="function-btn">重做</button>--> |
| | | <!-- <button id="rework" style="alignment: right" class="function-btn">重做</button>--> |
| | | <button id="updateZpallet" style="alignment: right; display: none" class="function-btn1">换包装/托盘/缠膜</button> | |
| | | <button id="sellout" style="alignment: right; display: none" class="function-btn">出库</button> |
| | | <!-- <button id="pickup" style="alignment: right" class="function-btn">取货</button> |--> |
| | | <!-- <button id="pickup" style="alignment: right" class="function-btn">取货</button> |--> |
| | | <button id="returned" style="alignment: right; display: none" class="function-btn">退回</button> |
| | | <button id="updateOwner" style="alignment: right; display: none" class="function-btn">变更主体</button> |
| | | </div> |
| | |
| | | <!-- 搜索栏 --> |
| | | <div id="search-box" > |
| | | <div class="layui-form layui-card-header"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 70px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off"> |
| | | <input class="layui-input" type="text" name="package_noMin" placeholder="最小包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 70px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMax" placeholder="最大包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width: 270px"> |
| | | <div class="layui-input-inline"> |
| | | <div id="mat" name="mat"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="maktx" class="layui-input" type="text" style="display: none"> |
| | | <input id="maktxV" name="brand" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" placeholder="牌号" type="text" onfocus=this.blur()> |
| | |
| | | <input class="layui-input" type="text" name="type" value="改性树脂" placeholder="物资类别" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <!-- <input class="layui-input" type="text" name="status" placeholder="状态" autocomplete="off">--> |
| | | <select name="status"> |
| | | <option value="">选择状态</option> |
| | | <option value="暂入库">暂入库</option> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_type" placeholder="包装类型" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="zpallet_type" placeholder="托盘类型" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMin" placeholder="最小包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMax" placeholder="最大包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">--> |
| | | <!-- </div>--> |
| | | <div class="layui-input-inline" style="width: 290px"> |
| | | <input type="text" class="layui-input" name="create_time" id="ID-laydate-range-datetime" placeholder="起始时间 - 终止时间"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" class="layui-input" style="width: 290px" name="create_time" id="ID-laydate-range-datetime" placeholder="起始时间 - 终止时间"> |
| | | </div> |
| | | </div> |
| | | <!-- 待添加 --> |
| | | <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block"> |
| | | <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button> |
| | | <button id="reset" data-value="改性树脂" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button> |
| | | <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button> |
| | | <!-- <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">查看异常数据</button>--> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | |
| | | <li><a onclick="importExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-upload"></i>导入 Excel</a></li> |
| | | <li style="display: none"><input id="importExcel" type="file" onchange="upload(this)" ></li> |
| | | <hr> |
| | | <!-- <li class="title">2nd menu</li>--> |
| | | <!-- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>导出 Excel</a></li>--> |
| | | <!-- <li class="title">2nd menu</li>--> |
| | | <!-- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>导出 Excel</a></li>--> |
| | | </ul> |
| | | </div> |
| | | <!-- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right;margin-right: -10px">导出</button>--> |
| | |
| | | Address:No. 188, Taizhou Bay Avenue, Taizhou Bay New Area, Taizhou City, Zhejiang Province |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- </n>聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- </n>聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <div class="layui-row" style="alignment: center; margin-left: 65px;"> |
| | | <table class="contain" width="400" style="overflow: hidden;font-size: xx-small;table-layout: fixed;"> |
| | | <tr style="height: 74px" > |
| | |
| | | <!-- 模板3 --> |
| | | <script type="text/template" id="templatePreview1" class="template-qrcode"> |
| | | <div class="template-preview"> |
| | | {{#each data}} |
| | | {{#each data}} |
| | | <div class="layui-row" style="height: 230px;width: 750px; color:#000; margin-top: 40px"> |
| | | <div class="layui-col-xs6" style="height: auto; margin-top: 25px; margin-left: -20px"> |
| | | <img src="../../static/image/hneLogo.png" style="display: inline-block; width: 40%;height: 30%; margin-left: 30px; color:#000;"> |
| | |
| | | No.188 Taizhou Bay Avenue, Taizhou Bay New Area, Taizhou City, Zhejiang Province. P.R.China |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- 聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- 聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <div class="layui-row" style="alignment: center; margin-left: 35px; margin-top: -20px; margin-bottom: 3.7px;"> |
| | | <table class="contain" width="500" style="overflow: hidden;table-layout: fixed; color:#000; font-size: 35px;text-align: left"> |
| | | <tr style="height: 100px;" > |
| | |
| | | </tr> |
| | | <tr style="height: 100px; text-align: left" > |
| | | <td align="center" scope="col" colspan="2" style="font-weight: bold;color: black; text-align: left; padding-left: 20px"><strong>牌号: REVODE {{this.brand}}</strong></td> |
| | | <!-- <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:normal; "><strong style="font-weight: bold;color: black;">REVODE {{this.brand}}</strong></td>--> |
| | | <!-- <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:normal; "><strong style="font-weight: bold;color: black;">REVODE {{this.brand}}</strong></td>--> |
| | | </tr> |
| | | <tr style="height: 100px;text-align: left"> |
| | | <td align="center" colspan="2" style="font-weight: bold;color: black; text-align: left; padding-left: 20px"><strong>批号:{{this.batch}}</strong></td> |
| | |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </br> |
| | | {{/each}} |
| | | </br> |
| | | {{/each}} |
| | | </div> |
| | | </script> |
| | | |
| | |
| | | |
| | | <!-- 功能区 --> |
| | | <div class="function-area"> |
| | | <!-- <button id="rework" style="alignment: right" class="function-btn">重做</button>--> |
| | | <!-- <button id="rework" style="alignment: right" class="function-btn">重做</button>--> |
| | | <button id="updateZpallet" style="alignment: right; display: none" class="function-btn1">换包装/托盘/缠膜</button> | |
| | | <button id="sellout" style="alignment: right; display: none" class="function-btn">出库</button> |
| | | <!-- <button id="pickup" style="alignment: right" class="function-btn">取货</button> |--> |
| | | <!-- <button id="pickup" style="alignment: right" class="function-btn">取货</button> |--> |
| | | <button id="returned" style="alignment: right; display: none" class="function-btn">退回</button> |
| | | <button id="updateOwner" style="alignment: right; display: none" class="function-btn">变更主体</button> |
| | | </div> |
| | |
| | | <!-- 搜索栏 --> |
| | | <div id="search-box" > |
| | | <div class="layui-form layui-card-header"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 70px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off"> |
| | | <input class="layui-input" type="text" name="package_noMin" placeholder="最小包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 70px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMax" placeholder="最大包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width: 270px"> |
| | | <div class="layui-input-inline"> |
| | | <div id="mat" name="mat"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="maktx" class="layui-input" type="text" style="display: none"> |
| | | <input id="maktxV" name="brand" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" placeholder="牌号" type="text" onfocus=this.blur()> |
| | |
| | | <input class="layui-input" type="text" name="type" value="纯树脂" placeholder="物资类别" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <!-- <input class="layui-input" type="text" name="status" placeholder="状态" autocomplete="off">--> |
| | | <select name="status"> |
| | | <option value="">选择状态</option> |
| | | <option value="暂入库">暂入库</option> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_type" placeholder="包装类型" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline" style="width: 80px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="zpallet_type" placeholder="托盘类型" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMin" placeholder="最小包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="package_noMax" placeholder="最大包号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">--> |
| | | <!-- </div>--> |
| | | <div class="layui-input-inline" style="width: 290px"> |
| | | <input type="text" class="layui-input" name="create_time" id="ID-laydate-range-datetime" placeholder="起始时间 - 终止时间"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" class="layui-input" style="width: 290px" name="create_time" id="ID-laydate-range-datetime" placeholder="起始时间 - 终止时间"> |
| | | </div> |
| | | </div> |
| | | <!-- 待添加 --> |
| | | <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block"> |
| | | <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button> |
| | | <button id="reset" data-value="纯树脂" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button> |
| | | <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button> |
| | | <!-- <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">查看异常数据</button>--> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | |
| | | <li><a onclick="importExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-upload"></i>导入 Excel</a></li> |
| | | <li style="display: none"><input id="importExcel" type="file" onchange="upload(this)" ></li> |
| | | <hr> |
| | | <!-- <li class="title">2nd menu</li>--> |
| | | <!-- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>导出 Excel</a></li>--> |
| | | <!-- <li class="title">2nd menu</li>--> |
| | | <!-- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>导出 Excel</a></li>--> |
| | | </ul> |
| | | </div> |
| | | <!-- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right;margin-right: -10px">导出</button>--> |
| | |
| | | Address:No. 188, Taizhou Bay Avenue, Taizhou Bay New Area, Taizhou City, Zhejiang Province |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- </n>聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- </n>聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <div class="layui-row" style="alignment: center; margin-left: 65px;"> |
| | | <table class="contain" width="400" style="overflow: hidden;font-size: xx-small;table-layout: fixed;"> |
| | | <tr style="height: 74px" > |
| | |
| | | <!-- 模板3 --> |
| | | <script type="text/template" id="templatePreview1" class="template-qrcode"> |
| | | <div class="template-preview"> |
| | | {{#each data}} |
| | | {{#each data}} |
| | | <div class="layui-row" style="height: 230px;width: 750px; color:#000; margin-top: 40px"> |
| | | <div class="layui-col-xs6" style="height: auto; margin-top: 25px; margin-left: -20px"> |
| | | <img src="../../static/image/hneLogo.png" style="display: inline-block; width: 40%;height: 30%; margin-left: 30px; color:#000;"> |
| | |
| | | No.188 Taizhou Bay Avenue, Taizhou Bay New Area, Taizhou City, Zhejiang Province. P.R.China |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- 聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-row" style="font-size: xx-large; text-align: left; margin-left: 40px;">--> |
| | | <!-- 聚乳酸 Polylactic Acid--> |
| | | <!-- </div>--> |
| | | <div class="layui-row" style="alignment: center; margin-left: 35px; margin-top: -20px; margin-bottom: 3.7px;"> |
| | | <table class="contain" width="500" style="overflow: hidden;table-layout: fixed; color:#000; font-size: 35px;text-align: left"> |
| | | <tr style="height: 100px;" > |
| | |
| | | </tr> |
| | | <tr style="height: 100px; text-align: left" > |
| | | <td align="center" scope="col" colspan="2" style="font-weight: bold;color: black; text-align: left; padding-left: 20px"><strong>牌号: REVODE {{this.brand}}</strong></td> |
| | | <!-- <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:normal; "><strong style="font-weight: bold;color: black;">REVODE {{this.brand}}</strong></td>--> |
| | | <!-- <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:normal; "><strong style="font-weight: bold;color: black;">REVODE {{this.brand}}</strong></td>--> |
| | | </tr> |
| | | <tr style="height: 100px;text-align: left"> |
| | | <td align="center" colspan="2" style="font-weight: bold;color: black; text-align: left; padding-left: 20px"><strong>批号:{{this.batch}}</strong></td> |
| | |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </br> |
| | | {{/each}} |
| | | </br> |
| | | {{/each}} |
| | | </div> |
| | | </script> |
| | | |