src/main/java/com/zy/asrs/controller/OpenController.java
@@ -476,6 +476,19 @@ return R.ok(param); } /** * 计划组货单 */ @PostMapping("/groupOrderConfirm/auth/v1") @AppAuth(memo = "计划单据下发") public synchronized R groupOrderConfirm(@RequestHeader(required = false) String appkey, @RequestBody GroupOrderConfirmParam param, HttpServletRequest request) { // auth(appkey, param, request); openService.groupOrderConfirm(param); return R.ok(param); } /*...........................上饶江铜..............以上.............徐工汉云...........................*/ } src/main/java/com/zy/asrs/controller/OrderController.java
@@ -83,7 +83,7 @@ if (!Cools.isEmpty(orderNo)) { wrapper.like("order_no", orderNo); } wrapper.le("settle", 2).eq("status", 1); wrapper.le("settle", 2).eq("status", 1).ne("doc_type",25); wrapper.orderBy("create_time", false); List<Order> orders = orderService.selectList(wrapper); // 保留出库单 @@ -104,6 +104,34 @@ return R.ok().add(orders); } @RequestMapping(value = "/order/nav/listMes/auth") @ManagerAuth public R navListMes(@RequestParam(required = false) String orderNo){ EntityWrapper<Order> wrapper = new EntityWrapper<>(); if (!Cools.isEmpty(orderNo)) { wrapper.like("order_no", orderNo); } wrapper.le("settle", 2).eq("status", 0).eq("doc_type", 25); wrapper.orderBy("create_time", false); List<Order> orders = orderService.selectList(wrapper); // // 保留出库单 // if (!Cools.isEmpty(orders)) { // Iterator<Order> iterator = orders.iterator(); // while (iterator.hasNext()) { // Order order = iterator.next(); // if (order.getDocType() != null) { // DocType docType = docTypeService.selectById(order.getDocType()); // if (docType != null) { // if (docType.getPakout() == 0) { // iterator.remove(); // } // } // } // } // } return R.ok().add(orders); } @RequestMapping(value = "/order/head/page/auth") @ManagerAuth public R head(@RequestParam(defaultValue = "1")Integer curr, src/main/java/com/zy/asrs/controller/OutController.java
@@ -5,6 +5,7 @@ import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.PakoutRequest; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; import com.zy.common.model.LocDetlDto; @@ -55,7 +56,12 @@ Thread.sleep(200); return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList())); } @PostMapping("/getMesOrder/auth") @ManagerAuth public R getMesOrder() { List<String> orderNoList = orderService.getOrderNosByDocType(25L); return R.ok().add(orderNoList); } @PostMapping("/out/pakout/preview/auth") @ManagerAuth public R pakoutPreview(@RequestBody List<Long> ids) { @@ -159,7 +165,9 @@ @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "订单出库") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { public synchronized R pakout(@RequestBody PakoutRequest request) throws InterruptedException { List<LocDto> locDtos = request.getTableCache(); String optionValue = request.getOptionValue(); if (Cools.isEmpty(locDtos)) { return R.parse(BaseRes.PARAM); } @@ -246,7 +254,7 @@ workService.stockOut(staNo, locDetlDtos, order.getDocType() != null && order.getDocType() == 23 ? IoWorkType.CHECK_OUT : null, getUserId()); getUserId(),optionValue); } else { throw new CoolException("所选库位状态不为F/D,库位号:" + locMast.getLocNo() + ",当前状态:" + src/main/java/com/zy/asrs/entity/param/GroupOrderConfirmParam.java
New file @@ -0,0 +1,23 @@ package com.zy.asrs.entity.param; import lombok.Data; import java.util.List; @Data public class GroupOrderConfirmParam { private String groupOrderNumber; //组货单号 private String groupStatus; //组货状态:0未确认组货、1确认组货 private List<PackageGroupNo> packageGroupNos; // 多个包装组号 private List<VolumeNumber> volumeNumbers; // 多个包装组号 @Data public static class PackageGroupNo { private String packageGroupNo; } @Data public static class VolumeNumber { private String volumeNumber; } } src/main/java/com/zy/asrs/entity/param/GwmsGenerateInventoryDto.java
@@ -15,6 +15,8 @@ private List<MatList> matList; // 木箱集合 //1一厂平库 2 一厂立库 3二厂平库 4二厂立库 private Integer warehouseType ; private String groupOrderNumber; //组货单号 @Data public static class MatList{ private String boxPos; // 箱子位置 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -65,4 +65,6 @@ List<String> selectDetlList(@Param("orderNo") String orderNo); List<OrderDetl> selectByBrand(@Param("brand") String brand); OrderDetl selectByOrderNoAndPkgGroupNoAndVolumeNo(@Param("orderNo") String orderNo,@Param("brand") String brand,@Param("model") String model); } src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -47,4 +47,8 @@ * 获取未完成订单统计信息(orderNo为空则查询所有) */ List<OrderStatisticsDto> getUnfulfilledOrders(@Param("orderNo") String orderNo); Order selectOrderByOrderNo(@Param("orderNo") String orderNo); List<String> getOrderNosByDocType(@Param("docType")Long docType); } src/main/java/com/zy/asrs/service/OpenService.java
@@ -154,5 +154,7 @@ void updateBarcode(); R groupOrderConfirm(GroupOrderConfirmParam param); } src/main/java/com/zy/asrs/service/OrderService.java
@@ -28,4 +28,6 @@ List<Order> selectorderNoL(String orderNo); List<String> getOrderNosByDocType(Long docType); } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -109,6 +110,9 @@ @Resource private OrderMapper orderMapper; @Resource private OrderDetlMapper orderDetlMapper; @Resource private BasCrnpMapper basCrnpMapper; @@ -1517,6 +1521,7 @@ gwmsGenerateInventoryDto.setWarehouseType(4); gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode()); gwmsGenerateInventoryDto.setPalletizingNo(wrkMast.getStaNo()); gwmsGenerateInventoryDto.setGroupOrderNumber(wrkMast.getMemo()); List<GwmsGenerateInventoryDto.MatList> matLists = new ArrayList<>(); for (WrkDetl wrkDetl : wrkDetls) { boolean flag = true; @@ -2266,5 +2271,60 @@ return crnStn; } @Override @Transactional public R groupOrderConfirm(GroupOrderConfirmParam param) { // 1. 查询单据是否存在 Order order = orderMapper.selectOrderByOrderNo(param.getGroupOrderNumber()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (order == null) { // 1.1 不存在,新建单据 order = new Order(); order.setOrderNo(param.getGroupOrderNumber()); order.setStatus(Integer.valueOf(param.getGroupStatus())); order.setOrderTime(sdf.format(new Date())); order.setCreateTime(new Date()); order.setSettle(1L); order.setDocType(25L); orderMapper.insert(order); } else { // 1.2 存在,更新单据状态 order.setStatus(Integer.valueOf(param.getGroupStatus())); orderMapper.updateById(order); } // 2. 一一对应遍历 List<GroupOrderConfirmParam.PackageGroupNo> pkgList = param.getPackageGroupNos(); List<GroupOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); int size = Math.min(pkgList.size(), volList.size()); // 防止越界 for (int i = 0; i < size; i++) { GroupOrderConfirmParam.PackageGroupNo pg = pkgList.get(i); GroupOrderConfirmParam.VolumeNumber vn = volList.get(i); // 查询是否已存在该 detl OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo( param.getGroupOrderNumber(), pg.getPackageGroupNo(), vn.getVolumeNumber() ); if (detl == null) { detl = new OrderDetl(); detl.setOrderId(order.getId()); detl.setOrderNo(param.getGroupOrderNumber()); detl.setCreateTime(new Date()); detl.setAnfme(1.0); detl.setBrand(pg.getPackageGroupNo()); // 包装组号 detl.setModel(vn.getVolumeNumber()); // 卷号 orderDetlMapper.insert(detl); } } return R.ok("组货确认成功"); } /*...........................上饶江铜..............以上.............徐工汉云...........................*/ } src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -175,4 +175,8 @@ return this.baseMapper.selectorderNoL(orderNo); } @Override public List<String> getOrderNosByDocType(Long docType){ return this.baseMapper.getOrderNosByDocType(docType); } } src/main/resources/mapper/OrderDetlMapper.xml
@@ -100,19 +100,22 @@ <select id="getPakoutPage" resultMap="BaseResultMap"> select * from ( select ROW_NUMBER() over (order by mo.create_time desc) as row, mod.* from man_order_detl mod inner join man_order mo on mod.order_id = mo.id inner join man_doc_type mdt on mo.doc_type = mdt.doc_id where 1=1 and mo.settle <= 2 and mo.status = 1 and mdt.pakout = 1 <include refid="pakOutPageCondition"></include> ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) select ROW_NUMBER() over (order by mo.create_time desc) as row, mod.* from man_order_detl mod inner join man_order mo on mod.order_id = mo.id inner join man_doc_type mdt on mo.doc_type = mdt.doc_id where 1=1 and mo.settle <= 2 and mo.status = case when mo.doc_type = 25 then 0 else 1 end and mdt.pakout = 1 <include refid="pakOutPageCondition"></include> ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) </select> <select id="getPakoutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer"> select @@ -270,4 +273,12 @@ where brand = #{brand} </select> <select id="selectByOrderNoAndPkgGroupNoAndVolumeNo" resultMap="BaseResultMap"> select * from man_order_detl where order_no = #{orderNo} and brand = #{brand} and model = #{model} </select> </mapper> src/main/resources/mapper/OrderMapper.xml
@@ -133,5 +133,16 @@ GROUP BY mo.order_no </select> <select id="selectOrderByOrderNo" resultMap="BaseResultMap"> select * from man_order where order_no = #{orderNo} </select> <select id="getOrderNosByDocType" resultType="String"> select order_no from man_order where doc_type =#{docType} and status = 0 </select> </mapper> src/main/webapp/static/js/order/out.js
@@ -330,10 +330,48 @@ } } ,yes: function(index, layero){ //按钮【立即出库】的回调 pakout(tableCache, index); ,yes: function(layerIndex, layero){ // 立即出库按钮点击 → 先请求下拉列表 let loadIndex = layer.load(10); $.ajax({ url: baseUrl + "/getMesOrder/auth", // 你提供的接口 headers: {'token': localStorage.getItem('token')}, method: 'POST', success: function(res){ layer.close(loadIndex); if(res.code === 200){ // 弹出二次确认框 layer.open({ type: 1, title: '请选择组货单号', area: ['400px','200px'], content: $('#staBatchSelectDialog').html(), success: function(layero2, index2){ // 渲染下拉框 let select = $(layero2).find('select[name="batchSta"]'); res.data.forEach(item => { select.append(`<option value="${item}">${item}</option>`); }); layui.form.render('select'); // 确认按钮 form.on('submit(staBatchSelectConfirm)', function(obj){ let selectedValue = obj.field.batchSta; console.log(selectedValue) layer.close(index2); // 调用原来的出库函数,同时传下拉值 pakout(tableCache, layerIndex, selectedValue); return false; }); } }); } else { layer.msg(res.msg, {icon: 2}); } } }); } ,btn2: function(index, layero){ //按钮【稍后处理】的回调 layer.close(index) @@ -349,14 +387,14 @@ }) } function pakout(tableCache, layerIndex) { // let loadIndex = layer.load(2); function pakout(tableCache, layerIndex, optionValue) { // 可以把 optionValue 传给接口 notice.msg('正在生成出库任务......', {icon: 4}); $.ajax({ url: baseUrl + "/out/pakout/auth", headers: {'token': localStorage.getItem('token')}, contentType: 'application/json;charset=UTF-8', data: JSON.stringify(tableCache), data: JSON.stringify({tableCache,optionValue}), method: 'POST', success: function (res) { notice.destroy(); @@ -376,6 +414,8 @@ /* 删除订单 */ function doDelSensor(obj) { layer.confirm('确定要删除选中数据吗?', { src/main/webapp/static/js/orderTableMes.js
New file @@ -0,0 +1,174 @@ var insTb; layui.config({ base: baseUrl + "/static/layui/lay/modules/" // 配置模块所在的目录 }).use(['table','laydate', 'form', 'admin', 'tableX'], function() { var table = layui.table; var $ = layui.jquery; var layer = layui.layer; var layDate = layui.laydate; var form = layui.form; var admin = layui.admin; var tableX = layui.tableX; /****************************************** 左边表 *************************************************/ insTb = table.render({ elem: '#originTable', url: baseUrl + '/order/nav/listMes/auth', height: 'full-120', headers: {token: localStorage.getItem('token')}, request: { pageName: 'curr', pageSize: 'limit' }, page: false, parseData: function (res) { return { 'code': res.code, 'msg': res.msg, 'data': res.data } }, response: { statusCode: 200 }, // toolbar: ['<p>', // '<button lay-event="add" class="layui-btn layui-btn-sm icon-btn"><i class="layui-icon"></i>添加</button> ', // '<button lay-event="edit" class="layui-btn layui-btn-sm layui-btn-warm icon-btn"><i class="layui-icon"></i>修改</button> ', // '<button lay-event="del" class="layui-btn layui-btn-sm layui-btn-danger icon-btn"><i class="layui-icon"></i>删除</button>', // '</p>'].join(''), defaultToolbar: [], cols: [[ // {type: 'numbers', title: '#'}, {field: 'orderTime', title: '日期'}, {field: 'orderNo', title: '单据编号', align: 'center'}, {field: 'docType$', title: '单据类型'}, ]], done: function (res, curr, count) { $('#dictTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click'); // 绑定鼠标右键 tableX.bindCtxMenu('originTable', function (d) { return [ { icon: 'layui-icon layui-icon-ok', name: '一键出库', click: function (d) { autoOut(d.id); } } ] }) } }); /* 表格搜索 */ form.on('submit(originTableSearch)', function (data) { insTb.reload({where: data.field}); return false; }); /* 表格重置 */ form.on('submit(originTbReset)', function (data) { insTb.reload({where: null}); insTb2.reload({where: null, page: {curr: 1}}); return false; }); /* 表格头工具栏点击事件 */ table.on('toolbar(originTable)', function (obj) { if (obj.event === 'add') { // 添加 showEdit(); } else if (obj.event === 'edit') { // 修改 if (selObj == null) { return; } showEdit(selObj.data); } else if (obj.event === 'del') { // 删除 if (selObj == null) { return; } doDel(selObj); } }); /* 监听行单击事件 */ var selObj; table.on('row(originTable)', function (obj) { selObj = obj; obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click'); insTb2.reload({where: {order_id: obj.data.id}, page: {curr: 1}}); }); /* 显示表单弹窗 */ function showEdit(mData) { admin.open({ type: 1, title: (mData ? '修改' : '添加') + '项目', content: $('#hostEditDialog').html(), success: function (layero, dIndex) { // 回显表单数据 form.val('hostEditForm', mData); // 表单提交事件 form.on('submit(hostEditSubmit)', function (data) { var loadIndex = layer.load(2); $.ajax({ url: baseUrl+"/host/"+(mData?'update':'add')+"/auth", headers: {'token': localStorage.getItem('token')}, data: data.field, method: 'POST', success: function (res) { layer.close(loadIndex); selObj = null; if (res.code === 200){ layer.close(dIndex); layer.msg(res.msg, {icon: 1}); insTb.reload(); } else if (res.code === 403){ top.location.href = baseUrl+"/"; } else { layer.msg(res.msg, {icon: 2}); } } }) return false; }); } }); } /* 删除 */ function doDel(obj) { layer.confirm('确定要删除此单据类型吗?', { skin: 'layui-layer-admin', shade: .1 }, function (i) { layer.close(i); var loadIndex = layer.load(2); $.ajax({ url: baseUrl+"/host/delete/one/auth", headers: {'token': localStorage.getItem('token')}, data: {param: JSON.stringify(obj.data)}, method: 'POST', success: function (res) { selObj = null; layer.close(loadIndex); if (res.code === 200){ layer.closeAll(); insTb.reload(); $('#dictTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click'); } else if (res.code === 403){ top.location.href = baseUrl+"/"; } else { layer.msg(res.msg, {icon: 2}); } } }) }); } }) src/main/webapp/views/order/outMes.html
New file @@ -0,0 +1,321 @@ <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> <link rel="stylesheet" href="../../static/css/cool.css" media="all"> <link rel="stylesheet" href="../../static/css/originTable.css" media="all"> <style> body { color: #595959; background-color: #f5f7f9; } .admin-form { padding: 25px 30px 0 0 !important; margin: 0 !important; } .layui-table-view .layui-table-cell .layui-select-title .layui-input { height: 28px; line-height: 28px; } .layui-table-view [lay-size="lg"] .layui-table-cell .layui-select-title .layui-input { height: 40px; line-height: 40px; } .layui-table-view [lay-size="lg"] .layui-table-cell .layui-select-title .layui-input { height: 40px; line-height: 40px; } .layui-table-view [lay-size="sm"] .layui-table-cell .layui-select-title .layui-input { height: 20px; line-height: 20px; } .layui-table-view [lay-size="sm"] .layui-table-cell .layui-btn-xs { height: 18px; line-height: 18px; } /* 权限控制 */ #btn-pakoutPreview { display: none; } /*#btn-delete {*/ /* display: none;*/ /*}*/ /*.btn-edit {*/ /* display: none;*/ /*}*/ /*.btn-more {*/ /* display: none;*/ /*}*/ </style> </head> <body> <!-- 正文开始 --> <div class="layui-fluid" style="padding-bottom: 0;"> <div class="layui-row layui-col-space15"> <!-- 左 --> <div class="layui-col-md3" id="left-table"> <div class="layui-card"> <div class="layui-card-body" style="padding: 10px;"> <form class="layui-form toolbar"> <div class="layui-form-item"> <div class="layui-inline" style="max-width: 300px;"> <input name="orderNo" class="layui-input" placeholder="输入单据编号" autocomplete="off"/> </div> <div class="layui-inline"> <button class="layui-btn icon-btn" lay-filter="originTableSearch" lay-submit> <i class="layui-icon"></i>搜索 </button> <button class="layui-btn icon-btn" lay-filter="originTbReset" lay-submit> <i class="layui-icon"></i>重置 </button> </div> </div> </form> <table id="originTable" lay-filter="originTable"></table> </div> </div> </div> <!-- 右 --> <div class="layui-col-md9"> <div class="layui-card"> <div class="layui-card-body" style="padding: 10px;"> <form class="layui-form toolbar"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">包装组号:</label> <div class="layui-input-inline"> <input name="brand" class="layui-input" placeholder="包装组号"/> </div> </div> <!-- <div class="layui-inline">--> <!-- <label class="layui-form-label">商品名称:</label>--> <!-- <div class="layui-input-inline">--> <!-- <input name="maktx" class="layui-input" placeholder="商品名称"/>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-inline">--> <!-- <label class="layui-form-label">序列码:</label>--> <!-- <div class="layui-input-inline">--> <!-- <input name="batch" class="layui-input" placeholder="序列码"/>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-inline">--> <!-- <label class="layui-form-label">状态:</label>--> <!-- <div class="layui-input-inline">--> <!-- <select name="isOnline">--> <!-- <option value="1">充电中</option>--> <!-- <option value="1">充电中</option>--> <!-- <option value="0">不在充电</option>--> <!-- </select>--> <!-- </div>--> <!-- </div>--> <div class="layui-inline">  <button class="layui-btn icon-btn" lay-filter="sensorTbSearch" lay-submit> <i class="layui-icon"></i>搜索 </button> </div> </div> </form> <table id="orderDetlTable" lay-filter="orderDetlTable"></table> </div> </div> </div> </div> </div> <!-- 头工具栏 --> <script type="text/html" id="orderDetToolbar"> <!-- <div class="layui-btn-container">--> <!-- <div class="layui-col-md3">--> <!-- <select id="staNoSelect" lay-verify="required">--> <!-- <option value="">请选择站点</option>--> <!-- </select>--> <!-- </div>--> <!-- </div>--> <button class="layui-btn layui-btn-sm layui-btn-danger btn-pakoutPreview" id="btn-pakoutPreview" lay-event="pakoutPreview">批量出库</button> </script> <!-- 行工具栏 --> <script type="text/html" id="operate"> <!-- {{#if (d.enableQty > 0){ }}--> <!-- <a class="layui-btn layui-btn-xs layui-btn-danger btn-pakoutPreview" lay-event="pakoutPreview"><i class="layui-icon layui-icon-prev-circle"></i>出库</a>--> <!-- {{# } }}--> </script> <!-- 出库预览 --> <script type="text/html" id="pakoutPreviewBox" style="display: none"> <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;"> <span style="font-size: large; font-weight: bold">出库预览</span> </div> <div class="layui-card"> <div class="layui-card-body" style="padding: 10px"> <table id="stoPreTab" lay-filter="stoPreTab"></table> </div> <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="checkModifySta" lay-submit style="display: block; float: right; margin-right: 3rem; transform: scale(1.2);margin-bottom: 3rem; transform-origin: right center;"> 盘点均分 </button> <!-- <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="batchModifySta" lay-submit style="display: block;float: right;margin-right: 1rem">--> <!-- 批量修改--> <!-- </button>--> </div> </script> <script type="text/html" id="tbBasicTbStaNos"> <div class="ew-select-fixed"> <select class="order-sta-select" lay-filter="tbBasicTbStaNos"> {{#if (d.staNos!=null) {}} {{# for(let i=0; i<d.staNos.length; i++) { }} <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option> {{# } }} {{# } }} </select> </div> </script> <script type="text/html" id="staBatchSelectDialog"> <form class="layui-form" style="padding: 25px 50px 30px 50px;text-align: center"> <select id="batchSelectStaBox" name="batchSta" lay-vertype="tips" lay-verify="required" required=""> </select> <button style="margin-top: 30px" class="layui-btn" lay-filter="staBatchSelectConfirm" lay-submit="">确定</button> </form> </script> <script type="text/html" id="locNoTpl"> <span name="locNo" {{# if( d.lack === false){ }} class="layui-badge layui-badge-green" >{{d.locNo}}</span> {{# } else { }} class="layui-badge layui-badge-red" >库存不足</span> {{# } }} </script> <!-- 行样式 --> <script type="text/html" id="orderNoTpl"> <span name="orderNo" class="layui-badge layui-badge-gray">{{d.orderNo}}</span> </script> <script type="text/html" id="statusTpl"> <input type="checkbox" name="status" value="{{d.status}}" lay-skin="switch" lay-text="正常|禁用" lay-filter="statusSwitch" {{ d.status === 1 ? 'checked' : '' }}> </script> <!-- 表单弹窗 --> <script type="text/html" id="editDialog"> <form id="detail" lay-filter="detail" class="layui-form admin-form"> <input name="id" type="hidden"> <input name="status" type="hidden"> <div class="layui-row"> <div class="layui-col-md4"> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">设备编号</label> <div class="layui-input-block"> <input name="uuid" placeholder="请输入设备编号" class="layui-input" lay-vertype="tips" lay-verify="required" required=""> </div> </div> </div> <div class="layui-col-md4"> <div class="layui-form-item"> <label class="layui-form-label">设备类型:</label> <div class="layui-input-block"> <div id="modelSel" class="ew-xmselect-tree"></div> </div> </div> </div> <div class="layui-col-md4"> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">所属项目: </label> <div class="layui-input-block cool-auto-complete"> <input name="hostId" class="layui-input" style="display: none"> <input id="hostId$" name="hostId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请选择所属项目" onfocus=this.blur()> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="hostQueryByhostId" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="hostQueryByhostIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> </div> </div> <div class="layui-col-md12"> <div class="layui-form-item"> <label class="layui-form-label">详细地址</label> <div class="layui-input-block"> <input name="addr" placeholder="请输入详细地址" class="layui-input"> </div> </div> </div> <hr class="layui-bg-gray"> <div class="layui-col-md12" style="text-align: center"> <iframe id="mapIframe" src="map.html" scrolling="no" frameborder="0" style="display: inline-block; width: 90%;height: 400px;margin: auto"> </iframe> </div> </div> <hr class="layui-bg-gray"> <div class="layui-form-item text-right"> <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button> <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> </div> </form> </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script> <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> <script type="text/javascript" src="../../static/js/tools/md5.js"></script> <script type="text/javascript" src="../../static/js/orderTableMes.js" charset="utf-8"></script> <script type="text/javascript" src="../../static/js/order/out.js" charset="utf-8"></script> <!--<script type="text/template" id="takeSiteSelectTemplate">--> <!-- {{#each data}}--> <!-- <option value="{{siteId}}">{{desc}}</option>--> <!-- {{/each}}--> <!--</script>--> <!-- 项目编辑窗口 --> <script type="text/html" id="hostEditDialog"> <form id="hostEditForm" lay-filter="hostEditForm" class="layui-form model-form"> <input name="id" type="hidden"/> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">项目名称:</label> <div class="layui-input-block"> <input name="name" placeholder="请输入类型名称" class="layui-input" lay-verType="tips" lay-verify="required" required/> </div> </div> <div class="layui-form-item text-right"> <button class="layui-btn" lay-filter="hostEditSubmit" lay-submit>保存</button> <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> </div> </form> </script> </body> <script type="text/template" id="batchStaSelectTpl"> <option value="">选择出库站</option> {{#each list}} <option value="{{this}}">{{this}}</option> {{/each}} </script> </html>