From 42ba7926de5f21a2856e4c7b9c5ce148413b6cbe Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期六, 13 九月 2025 12:54:05 +0800
Subject: [PATCH] 1
---
src/main/resources/mapper/OrderMapper.xml | 16
src/main/webapp/views/order/outUQ.html | 321 +++++++++
src/main/java/com/zy/asrs/controller/OrderController.java | 120 ++-
src/main/java/com/zy/asrs/service/OrderService.java | 4
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 10
src/main/webapp/static/js/order/outUQ.js | 458 +++++++++++++
src/main/webapp/static/js/orderTableReturn.js | 174 ++++
src/main/java/com/zy/asrs/mapper/OrderMapper.java | 4
src/main/webapp/static/js/orderTableUQ.js | 174 ++++
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 20
src/main/webapp/views/order/outReturn.html | 321 +++++++++
src/main/webapp/static/js/order/outReturn.js | 458 +++++++++++++
12 files changed, 2,030 insertions(+), 50 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 3d7fac7..aeb50e6 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -10,7 +10,6 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OrderDomainParam;
-
import com.zy.asrs.entity.result.WrkTraceVo;
import com.zy.asrs.importexcle.ImportOrderDto;
import com.zy.asrs.importexcle.ImportOrderListener;
@@ -73,17 +72,17 @@
public void importOrder(MultipartFile multipartFile) throws IOException {
// 鑰冩牳鏁版嵁鐨勫垽閲嶄娇鐢╫rder_id,check_type鐨勭粍鍚堝敮涓�绱㈠紩瑙e喅
EasyExcel.read(multipartFile.getInputStream(), ImportOrderDto.class,
- new ImportOrderListener(orderService, orderDetlMapper,docTypeService, snowflakeIdWorker,getUserId())).sheet().doReadSync();
+ new ImportOrderListener(orderService, orderDetlMapper, docTypeService, snowflakeIdWorker, getUserId())).sheet().doReadSync();
}
@RequestMapping(value = "/order/nav/list/auth")
@ManagerAuth
- public R navList(@RequestParam(required = false) String orderNo){
+ public R navList(@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", 1).ne("doc_type",25);
+ wrapper.le("settle", 2).eq("status", 1).ne("doc_type", 25);
wrapper.orderBy("create_time", false);
List<Order> orders = orderService.selectList(wrapper);
// 淇濈暀鍑哄簱鍗�
@@ -106,7 +105,7 @@
@RequestMapping(value = "/order/nav/listMes/auth")
@ManagerAuth
- public R navListMes(@RequestParam(required = false) String orderNo){
+ public R navListMes(@RequestParam(required = false) String orderNo) {
EntityWrapper<Order> wrapper = new EntityWrapper<>();
if (!Cools.isEmpty(orderNo)) {
wrapper.like("order_no", orderNo);
@@ -132,17 +131,46 @@
return R.ok().add(orders);
}
+ @RequestMapping(value = "/order/nav/listReturn/auth")
+ @ManagerAuth
+ public R navListReturn(@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", 26);
+ wrapper.orderBy("create_time", false);
+ List<Order> orders = orderService.selectList(wrapper);
+
+ return R.ok().add(orders);
+ }
+
+ @RequestMapping(value = "/order/nav/listUQ/auth")
+ @ManagerAuth
+ public R navListUQ(@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", 27);
+ wrapper.orderBy("create_time", false);
+ List<Order> orders = orderService.selectList(wrapper);
+ return R.ok().add(orders);
+ }
+
@RequestMapping(value = "/order/head/page/auth")
@ManagerAuth
- public R head(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R head(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<Order> wrapper = new EntityWrapper<>();
excludeTrash(param);
convert(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("settle").orderBy("create_time", false);
}
wrapper.eq("status", 1);
@@ -151,18 +179,18 @@
@RequestMapping(value = "/order/detl/all/auth")
@ManagerAuth
- public R head(@RequestParam Long orderId){
+ public R head(@RequestParam Long orderId) {
return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId)));
}
@RequestMapping(value = "/order/form/add/auth")
@ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟")
@Transactional
- public R formAdd(@RequestBody OrderDomainParam param){
- if(Cools.isEmpty(param.getOrderNo())){
+ public R formAdd(@RequestBody OrderDomainParam param) {
+ if (Cools.isEmpty(param.getOrderNo())) {
String prefix = "";
DocType docType = docTypeService.selectById(param.getDocType());
- if(!Cools.isEmpty(docType)){
+ if (!Cools.isEmpty(docType)) {
prefix = docType.getPakin() == 1 ? "RK" : "CK";
}
param.setOrderNo(prefix + snowflakeIdWorker.nextId());
@@ -241,7 +269,7 @@
@RequestMapping(value = "/order/form/modify/auth")
@ManagerAuth(memo = "鎵嬪姩淇敼璁㈠崟")
@Transactional
- public R formModify(@RequestBody OrderDomainParam param){
+ public R formModify(@RequestBody OrderDomainParam param) {
Order order = orderService.selectById(param.getOrderId());
if (order == null || order.getStatus() == 0) {
return R.error("璁㈠崟涓嶅瓨鍦�");
@@ -330,8 +358,8 @@
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()));
if (wrkMast == null) {
WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()));
- if (wrkMastLog.getIoType()==103){
- wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()).eq("io_type",53));
+ if (wrkMastLog.getIoType() == 103) {
+ wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()).eq("io_type", 53));
}
if (wrkMastLog != null) {
wrkMast = new WrkMast();
@@ -361,7 +389,7 @@
.add("totalQty", totalQty)
.add("wrkQty", wrkQty)
.add("lackQty", lackQty)
- .add("endQty",endQty)
+ .add("endQty", endQty)
);
}
@@ -376,22 +404,24 @@
@RequestMapping(value = "/order/list/auth")
@ManagerAuth
- public R list(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R list(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<Order> wrapper = new EntityWrapper<>();
excludeTrash(param);
convert(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ }
return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
}
- private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
- for (Map.Entry<String, Object> entry : map.entrySet()){
+ 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());
- if (val.contains(RANGE_TIME_LINK)){
+ if (val.contains(RANGE_TIME_LINK)) {
String[] dates = val.split(RANGE_TIME_LINK);
wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -403,15 +433,15 @@
@RequestMapping(value = "/order/update/auth")
@ManagerAuth
- public R update(Order order){
- if (Cools.isEmpty(order) || null == order.getId()){
+ public R update(Order order) {
+ if (Cools.isEmpty(order) || null == order.getId()) {
return R.error();
}
//璁㈠崟瀹岀粨鍓嶏紝鍒ゆ柇鏄惁瀛樺湪浣滀笟涓暟鎹紝瀛樺湪鍒欎笉鑳藉畬缁�
- if(order.getSettle() == 4){
- int wrkCount = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no",order.getOrderNo()));
- int pakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",order.getOrderNo()));
+ if (order.getSettle() == 4) {
+ int wrkCount = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", order.getOrderNo()));
+ int pakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no", order.getOrderNo()));
if (wrkCount > 0 || pakinCount > 0) {
throw new CoolException("瀛樺湪浣滀笟涓暟鎹紝涓嶈兘瀹岀粨銆傝妫�鏌ュ叆搴撻�氱煡妗e拰宸ヤ綔妗�");
}
@@ -428,7 +458,7 @@
@RequestMapping(value = "/order/delete/auth")
@ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
@Transactional
- public R delete(@RequestParam Long orderId){
+ public R delete(@RequestParam Long orderId) {
orderService.remove(orderId);
// Order order = orderService.selectById(orderId);
// if (order != null) {
@@ -443,7 +473,7 @@
@RequestMapping(value = "/order/export/auth")
@ManagerAuth
- public R export(@RequestBody JSONObject param){
+ public R export(@RequestBody JSONObject param) {
EntityWrapper<Order> wrapper = new EntityWrapper<>();
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
Map<String, Object> map = excludeTrash(param.getJSONObject("order"));
@@ -459,7 +489,7 @@
wrapper.like("id", condition);
Page<Order> page = orderService.selectPage(new Page<>(0, 10), wrapper);
List<Map<String, Object>> result = new ArrayList<>();
- for (Order order : page.getRecords()){
+ for (Order order : page.getRecords()) {
Map<String, Object> map = new HashMap<>();
map.put("id", order.getId());
map.put("value", order.getOrderNo());
@@ -472,7 +502,7 @@
@ManagerAuth
public R query(@RequestBody JSONObject param) {
Wrapper<Order> wrapper = new EntityWrapper<Order>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
- if (null != orderService.selectOne(wrapper)){
+ if (null != orderService.selectOne(wrapper)) {
return R.parse(BaseRes.REPEAT).add(getComment(Order.class, String.valueOf(param.get("key"))));
}
return R.ok();
@@ -480,14 +510,14 @@
@RequestMapping(value = "/order/insert/labelUp/file/auth")
// @ManagerAuth
- public R insertLabelUpFile(@RequestParam("orderId") String orderId,@RequestParam MultipartFile file){
+ public R insertLabelUpFile(@RequestParam("orderId") String orderId, @RequestParam MultipartFile file) {
String[] split = orderId.split("-");
int id = Integer.parseInt(split[1]);
System.out.println("---寮�濮�---");
- String savePath = "D:/order/labelUp/file/"+id+"/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
- try{
+ String savePath = "D:/order/labelUp/file/" + id + "/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
+ try {
FileSaveExampleUtil.saveFile(file, savePath);
- }catch (Exception e){
+ } catch (Exception e) {
return R.error();
}
return R.ok();
@@ -495,13 +525,13 @@
@RequestMapping(value = "/order/view/labelUp/file/auth")
// @ManagerAuth
- public R viewLabelUpFile(@RequestParam("orderId") Long orderId){
+ public R viewLabelUpFile(@RequestParam("orderId") Long orderId) {
// int id = Integer.parseInt(orderId);
- String savePath = "D:/order/labelUp/file/"+orderId+"/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
- try{
+ String savePath = "D:/order/labelUp/file/" + orderId + "/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
+ try {
List<FileSaveExampleUtil.FileDTO> fileDTOS = FileSaveExampleUtil.viewFileList(savePath);
return R.ok(fileDTOS);
- }catch (Exception e){
+ } catch (Exception e) {
return R.error();
}
}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderMapper.java b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
index 61b0e7e..e103480 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -17,6 +17,10 @@
List<Order> selectComplete();
+ List<Order> selectComplete2();
+
+ List<Order> selectComplete3();
+
int addToLogTable(Order order);
List<Order> selectorderNoL(@Param("orderNo")String orderNo);
diff --git a/src/main/java/com/zy/asrs/service/OrderService.java b/src/main/java/com/zy/asrs/service/OrderService.java
index 8e7498c..5579cbd 100644
--- a/src/main/java/com/zy/asrs/service/OrderService.java
+++ b/src/main/java/com/zy/asrs/service/OrderService.java
@@ -24,6 +24,10 @@
List<Order> selectComplete();
+ List<Order> selectComplete2();
+
+ List<Order> selectComplete3();
+
boolean addToLogTable(Order order);
List<Order> selectorderNoL(String orderNo);
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 04cdfff..7f6dfa2 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -166,6 +166,16 @@
}
@Override
+ public List<Order> selectComplete2() {
+ return this.baseMapper.selectComplete2();
+ }
+
+ @Override
+ public List<Order> selectComplete3() {
+ return this.baseMapper.selectComplete3();
+ }
+
+ @Override
public boolean addToLogTable(Order order) {
return this.baseMapper.addToLogTable(order) > 0;
}
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 8a59743..378c848 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -74,15 +74,14 @@
}
- @Scheduled(cron = "0/9 * * * * ? ")
- @Async("orderThreadPool")
+ //@Scheduled(cron = "0/9 * * * * ? ")
+ //@Async("orderThreadPool")
public void completeAndReport2() {
Config config = configMapper.selectConfigByCode("RETURN_REPORT");
if (config == null || config.getStatus() == 0 || Cools.isEmpty(config.getValue())) {
return;
}
-
- List<Order> orders = orderService.selectComplete();
+ List<Order> orders = orderService.selectComplete2();
for (Order order : orders) {
try {
ReturnT<String> result = orderSyncHandler.start(order);
@@ -94,7 +93,18 @@
log.error("璁㈠崟" + order + "澶勭悊澶辫触锛屽紓甯镐俊鎭細" + e);
}
}
-
+ orders = orderService.selectComplete3();
+ for (Order order : orders) {
+ try {
+ ReturnT<String> result = orderSyncHandler.start(order);
+ if (!result.isSuccess()) {
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
+ }
+ } catch (Exception e) {
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
+ log.error("璁㈠崟" + order + "澶勭悊澶辫触锛屽紓甯镐俊鎭細" + e);
+ }
+ }
}
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index 2d0db2c..3266edf 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -101,6 +101,22 @@
mo.create_time asc
</select>
+ <select id="selectComplete3" resultMap="BaseResultMap">
+ select
+ top 5 mo.*
+ from
+ man_order mo
+ inner join man_doc_type mt on
+ mo.doc_type = mt.doc_id
+ where
+ mt.pakout = 1
+ and mo.settle = 5
+ and mo.status = 1
+ and mo.doc_type = 27
+ order by
+ mo.create_time asc
+ </select>
+
<insert id="addToLogTable">
INSERT INTO man_order_log SELECT * FROM man_order WHERE id = #{id}
</insert>
diff --git a/src/main/webapp/static/js/order/outReturn.js b/src/main/webapp/static/js/order/outReturn.js
new file mode 100644
index 0000000..082ba01
--- /dev/null
+++ b/src/main/webapp/static/js/order/outReturn.js
@@ -0,0 +1,458 @@
+var pageCurr;
+var insTb2;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).extend({
+ notice: 'notice/notice',
+}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', '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 util = layui.util;
+ var notice = layui.notice;
+ var treeTable = layui.treeTable;
+ var xmSelect = layui.xmSelect;
+ var tableMerge = layui.tableMerge;
+ var tableX = layui.tableX;
+
+ insTb2 = table.render({
+ elem: '#orderDetlTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/orderDetl/pakout/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#orderDetToolbar',
+ height: 'full-120',
+ where: {order_id: 9999999999},
+ cols: [[
+ {type: 'checkbox'}
+ ,{type: 'numbers', title: '#'}
+ ,{field: 'orderNo', align: 'center',title: '姝e父閫�搴撳崟鍙�', templet: '#orderNoTpl', width: 160}
+ // ,{field: 'matnr', align: 'center',title: '瑙勬牸', width: 160}
+ // ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200}
+ // ,{field: 'batch', align: 'center',title: '绠卞彿'}
+ // ,{field: 'specs', align: 'center',title: '鎺ュご'}
+ // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'brand', align: 'center',title: '鍖呰缁勫彿'}
+ ,{field: 'model', align: 'center',title: '鍗峰彿'}
+
+ // ,{field: 'supp', align: 'center',title: '瀹㈡埛鍚嶇О', hide: false}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞', hide: false}
+ // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
+ // ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+ // ,{field: 'finishStatus', align: 'center', title: '鏄惁瀹屾垚', templet: function(d){
+ // if (d.qty === 0 && d.enableQty === 0) {
+ // return '<span style="color:green;font-weight:bold;">瀹屾垚</span>';
+ // } else {
+ // return '<span style="color:red;">鏈畬鎴�</span>';
+ // }
+ // }}
+
+
+ // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ // ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+ // ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
+ // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ /* 琛ㄦ牸2鎼滅储 */
+ form.on('submit(sensorTbSearch)', function (data) {
+ insTb2.reload({where: data.field, page: {curr: 1}});
+ return false;
+ });
+
+ /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ table.on('toolbar(orderDetlTable)', function (obj) {
+
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ if (obj.event === 'pakoutPreview') { // 娣诲姞
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2});
+ return;
+ }
+ pakoutPreview(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ var checkRows = table.checkStatus('sensorTable');
+ if (checkRows.data.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var ids = checkRows.data.map(function (d) {
+ return d.id;
+ });
+ doDelSensor({ids: ids});
+ }
+ });
+
+ /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
+ table.on('tool(orderDetlTable)', function (obj) {
+ console.log(obj);
+ var data = obj.data;
+ switch (obj.event) {
+ // 鍑哄簱
+ case 'pakoutPreview':
+ pakoutPreview([data.id])
+ break;
+ }
+ });
+
+ function pakoutPreview(ids) {
+ let loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl + "/out/pakout/preview/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(ids),
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ var tableCache;
+ if (res.code === 200){
+ layer.open({
+ type: 1
+ ,title: false
+ ,closeBtn: false
+ ,offset: '50px'
+ ,area: ['1500px', '700px']
+ ,shade: 0.5
+ ,shadeClose: false
+ ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+ ,btnAlign: 'c'
+ ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ ,content: $('#pakoutPreviewBox').html()
+ ,success: function(layero, index){
+ stoPreTabIdx = table.render({
+ elem: '#stoPreTab',
+ data: res.data,
+ height: 520,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
+ // {type: 'checkbox', merge: ['brand'],width: 100},
+ // {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+ {field: 'unit', title: '绠卞彿', align: 'center',hide:false},
+ {field: 'model', title: '鍗峰彿', align: 'center', hide: false},
+ {
+ field: 'threeCode',
+ align: 'center',
+ title: '鍚堟牸鍚�',
+ hide: false,
+ templet: function(d) {
+ return d.threeCode ? d.threeCode : '寰呭垽';
+ }
+ },
+ // {field: 'specs', title: '鎺ュご', align: 'center'},
+ {field: 'brand', align: 'center',title: '鍖呰缁勫彿', merge: true, hide: false},
+ // {field: 'brand$', align: 'center',title: '鏈ㄧ绫诲瀷', hide: false},
+ // {field: 'zpallet', title: '鎵樼洏鐮�', align: 'center'},
+ // {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+ // {field: 'count', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+ {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'},
+ {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+ // {type: 'checkbox', merge: ['locNo']},
+ ]],
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ tableCache = tableData = table.cache.stoPreTab;
+ }
+ });
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = tableCache[index];
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].locNo === data.locNo) {
+ tableCache[i]['staNo'] = Number(obj.elem.value);
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ let stoPreTabData = layui.table.checkStatus('stoPreTab').data;
+ if (stoPreTabData.length < 1) {
+ layer.msg("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {icon: 7});
+ return false;
+ }
+ modifySta(stoPreTabData);
+ });
+ form.on('submit(checkModifySta)', function () {
+ if (!tableCache || tableCache.length === 0) {
+ layer.msg("娌℃湁鍙鐞嗙殑鏁版嵁", {icon: 7});
+ return false;
+ }
+
+ let updatedRows = [];
+
+ for (let i = 0; i < tableCache.length; i++) {
+ let row = tableCache[i];
+ let locNo = row.locNo;
+ if (!locNo || locNo.length < 2) continue;
+
+ let rowPrefix = parseInt(locNo.substring(0, 2), 10);
+ let newStaNo;
+
+ if (rowPrefix >= 17 && rowPrefix <= 24) {
+ newStaNo = 3092;
+ } else if (rowPrefix >= 9 && rowPrefix <= 16) {
+ newStaNo = 3102;
+ } else if (rowPrefix >= 1 && rowPrefix <= 8) {
+ newStaNo = 3095;
+ }
+
+ if (newStaNo) {
+ row.staNo = newStaNo;
+ updatedRows.push({index: i, staNo: newStaNo});
+ }
+ }
+
+ // 閲嶈浇琛ㄦ牸鏁版嵁
+ stoPreTabIdx.reload({data: tableCache});
+
+ // 鏇存柊涓嬫媺妗嗛鑹插拰鍊�
+ updatedRows.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item.index + '"] .order-sta-select').val(item.staNo);
+ });
+ layui.form.render('select');
+ updatedRows.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item.index + '"] .layui-select-title input').css("color", "blue");
+ });
+
+ layer.msg("鍑哄簱绔欑偣鍧囧垎宸插畬鎴�", {icon: 1});
+ return false;
+ });
+
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta(stoPreTabData) {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for(let i = 0; i<stoPreTabData.length; i++) {
+ let staNos = stoPreTabData[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val =>
+ {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: '璇烽�夋嫨绔欑偣',
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ let batchSta = Number(obj.field.batchSta);
+ let arr = [];
+ for (let j = 0; j<stoPreTabData.length; j++) {
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].orderNo === stoPreTabData[j].orderNo
+ && tableCache[i].matnr === stoPreTabData[j].matnr
+ && tableCache[i].locNo === stoPreTabData[j].locNo) {
+ tableCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ }
+ }
+ stoPreTabIdx.reload({data: tableCache});
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx); layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
+
+ }
+ ,yes: function(index, layero){
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(tableCache, index);
+ }
+ ,btn2: function(index, layero){
+ //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+
+ function pakout(tableCache, layerIndex) {
+ // let loadIndex = layer.load(2);
+ notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
+ $.ajax({
+ url: baseUrl + "/out/pakout/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(tableCache),
+ method: 'POST',
+ success: function (res) {
+ notice.destroy();
+ if (res.code === 200) {
+ layer.close(layerIndex);
+ layer.msg(res.msg, {icon: 1});
+ insTb.reload({where: null});
+ insTb2.reload({where: null, page: {curr: 1}});
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ }
+
+
+
+ /* 鍒犻櫎璁㈠崟 */
+ function doDelSensor(obj) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/sensor/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: obj.ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ $(".layui-laypage-btn")[0].click();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+
+ });
+ }
+
+ // 淇敼鐘舵��
+ form.on('switch(statusSwitch)', function (obj) {
+ var index = obj.othis.parents('tr').attr("data-index");
+ var data = tableData[index];
+ data[this.name] = obj.elem.checked?1:0;
+ http.post(baseUrl+"/sensor/edit/auth", {id: data.id, status: data[this.name]}, function (res) {
+ layer.msg(res.msg, {icon: 1});
+ })
+ })
+
+ window.pakoutPreview = pakoutPreview;
+
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ }
+ });
+}
+
+/**
+ * 涓�閿嚭搴�
+ */
+function autoOut(orderId) {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl + "/out/pakout/orderDetlIds/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: { orderId : orderId },
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ pakoutPreview(res.data);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+}
diff --git a/src/main/webapp/static/js/order/outUQ.js b/src/main/webapp/static/js/order/outUQ.js
new file mode 100644
index 0000000..e5669a7
--- /dev/null
+++ b/src/main/webapp/static/js/order/outUQ.js
@@ -0,0 +1,458 @@
+var pageCurr;
+var insTb2;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).extend({
+ notice: 'notice/notice',
+}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', '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 util = layui.util;
+ var notice = layui.notice;
+ var treeTable = layui.treeTable;
+ var xmSelect = layui.xmSelect;
+ var tableMerge = layui.tableMerge;
+ var tableX = layui.tableX;
+
+ insTb2 = table.render({
+ elem: '#orderDetlTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/orderDetl/pakout/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#orderDetToolbar',
+ height: 'full-120',
+ where: {order_id: 9999999999},
+ cols: [[
+ {type: 'checkbox'}
+ ,{type: 'numbers', title: '#'}
+ ,{field: 'orderNo', align: 'center',title: '涓嶅悎鏍奸��搴撳崟鍙�', templet: '#orderNoTpl', width: 160}
+ // ,{field: 'matnr', align: 'center',title: '瑙勬牸', width: 160}
+ // ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200}
+ // ,{field: 'batch', align: 'center',title: '绠卞彿'}
+ // ,{field: 'specs', align: 'center',title: '鎺ュご'}
+ // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'brand', align: 'center',title: '鍖呰缁勫彿'}
+ ,{field: 'model', align: 'center',title: '鍗峰彿'}
+
+ // ,{field: 'supp', align: 'center',title: '瀹㈡埛鍚嶇О', hide: false}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞', hide: false}
+ // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
+ // ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+ // ,{field: 'finishStatus', align: 'center', title: '鏄惁瀹屾垚', templet: function(d){
+ // if (d.qty === 0 && d.enableQty === 0) {
+ // return '<span style="color:green;font-weight:bold;">瀹屾垚</span>';
+ // } else {
+ // return '<span style="color:red;">鏈畬鎴�</span>';
+ // }
+ // }}
+
+
+ // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ // ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+ // ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
+ // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ /* 琛ㄦ牸2鎼滅储 */
+ form.on('submit(sensorTbSearch)', function (data) {
+ insTb2.reload({where: data.field, page: {curr: 1}});
+ return false;
+ });
+
+ /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ table.on('toolbar(orderDetlTable)', function (obj) {
+
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ if (obj.event === 'pakoutPreview') { // 娣诲姞
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2});
+ return;
+ }
+ pakoutPreview(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ var checkRows = table.checkStatus('sensorTable');
+ if (checkRows.data.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var ids = checkRows.data.map(function (d) {
+ return d.id;
+ });
+ doDelSensor({ids: ids});
+ }
+ });
+
+ /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
+ table.on('tool(orderDetlTable)', function (obj) {
+ console.log(obj);
+ var data = obj.data;
+ switch (obj.event) {
+ // 鍑哄簱
+ case 'pakoutPreview':
+ pakoutPreview([data.id])
+ break;
+ }
+ });
+
+ function pakoutPreview(ids) {
+ let loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl + "/out/pakout/preview/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(ids),
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ var tableCache;
+ if (res.code === 200){
+ layer.open({
+ type: 1
+ ,title: false
+ ,closeBtn: false
+ ,offset: '50px'
+ ,area: ['1500px', '700px']
+ ,shade: 0.5
+ ,shadeClose: false
+ ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+ ,btnAlign: 'c'
+ ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ ,content: $('#pakoutPreviewBox').html()
+ ,success: function(layero, index){
+ stoPreTabIdx = table.render({
+ elem: '#stoPreTab',
+ data: res.data,
+ height: 520,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
+ // {type: 'checkbox', merge: ['brand'],width: 100},
+ // {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+ {field: 'unit', title: '绠卞彿', align: 'center',hide:false},
+ {field: 'model', title: '鍗峰彿', align: 'center', hide: false},
+ {
+ field: 'threeCode',
+ align: 'center',
+ title: '鍚堟牸鍚�',
+ hide: false,
+ templet: function(d) {
+ return d.threeCode ? d.threeCode : '寰呭垽';
+ }
+ },
+ // {field: 'specs', title: '鎺ュご', align: 'center'},
+ {field: 'brand', align: 'center',title: '鍖呰缁勫彿', merge: true, hide: false},
+ // {field: 'brand$', align: 'center',title: '鏈ㄧ绫诲瀷', hide: false},
+ // {field: 'zpallet', title: '鎵樼洏鐮�', align: 'center'},
+ // {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+ // {field: 'count', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+ {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'},
+ {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+ // {type: 'checkbox', merge: ['locNo']},
+ ]],
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ tableCache = tableData = table.cache.stoPreTab;
+ }
+ });
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = tableCache[index];
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].locNo === data.locNo) {
+ tableCache[i]['staNo'] = Number(obj.elem.value);
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ let stoPreTabData = layui.table.checkStatus('stoPreTab').data;
+ if (stoPreTabData.length < 1) {
+ layer.msg("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {icon: 7});
+ return false;
+ }
+ modifySta(stoPreTabData);
+ });
+ form.on('submit(checkModifySta)', function () {
+ if (!tableCache || tableCache.length === 0) {
+ layer.msg("娌℃湁鍙鐞嗙殑鏁版嵁", {icon: 7});
+ return false;
+ }
+
+ let updatedRows = [];
+
+ for (let i = 0; i < tableCache.length; i++) {
+ let row = tableCache[i];
+ let locNo = row.locNo;
+ if (!locNo || locNo.length < 2) continue;
+
+ let rowPrefix = parseInt(locNo.substring(0, 2), 10);
+ let newStaNo;
+
+ if (rowPrefix >= 17 && rowPrefix <= 24) {
+ newStaNo = 3092;
+ } else if (rowPrefix >= 9 && rowPrefix <= 16) {
+ newStaNo = 3102;
+ } else if (rowPrefix >= 1 && rowPrefix <= 8) {
+ newStaNo = 3095;
+ }
+
+ if (newStaNo) {
+ row.staNo = newStaNo;
+ updatedRows.push({index: i, staNo: newStaNo});
+ }
+ }
+
+ // 閲嶈浇琛ㄦ牸鏁版嵁
+ stoPreTabIdx.reload({data: tableCache});
+
+ // 鏇存柊涓嬫媺妗嗛鑹插拰鍊�
+ updatedRows.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item.index + '"] .order-sta-select').val(item.staNo);
+ });
+ layui.form.render('select');
+ updatedRows.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item.index + '"] .layui-select-title input').css("color", "blue");
+ });
+
+ layer.msg("鍑哄簱绔欑偣鍧囧垎宸插畬鎴�", {icon: 1});
+ return false;
+ });
+
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta(stoPreTabData) {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for(let i = 0; i<stoPreTabData.length; i++) {
+ let staNos = stoPreTabData[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val =>
+ {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: '璇烽�夋嫨绔欑偣',
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ let batchSta = Number(obj.field.batchSta);
+ let arr = [];
+ for (let j = 0; j<stoPreTabData.length; j++) {
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].orderNo === stoPreTabData[j].orderNo
+ && tableCache[i].matnr === stoPreTabData[j].matnr
+ && tableCache[i].locNo === stoPreTabData[j].locNo) {
+ tableCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ }
+ }
+ stoPreTabIdx.reload({data: tableCache});
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx); layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
+
+ }
+ ,yes: function(index, layero){
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(tableCache, index);
+ }
+ ,btn2: function(index, layero){
+ //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+
+ function pakout(tableCache, layerIndex) {
+ // let loadIndex = layer.load(2);
+ notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
+ $.ajax({
+ url: baseUrl + "/out/pakout/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(tableCache),
+ method: 'POST',
+ success: function (res) {
+ notice.destroy();
+ if (res.code === 200) {
+ layer.close(layerIndex);
+ layer.msg(res.msg, {icon: 1});
+ insTb.reload({where: null});
+ insTb2.reload({where: null, page: {curr: 1}});
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ }
+
+
+
+ /* 鍒犻櫎璁㈠崟 */
+ function doDelSensor(obj) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/sensor/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: obj.ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ $(".layui-laypage-btn")[0].click();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+
+ });
+ }
+
+ // 淇敼鐘舵��
+ form.on('switch(statusSwitch)', function (obj) {
+ var index = obj.othis.parents('tr').attr("data-index");
+ var data = tableData[index];
+ data[this.name] = obj.elem.checked?1:0;
+ http.post(baseUrl+"/sensor/edit/auth", {id: data.id, status: data[this.name]}, function (res) {
+ layer.msg(res.msg, {icon: 1});
+ })
+ })
+
+ window.pakoutPreview = pakoutPreview;
+
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ }
+ });
+}
+
+/**
+ * 涓�閿嚭搴�
+ */
+function autoOut(orderId) {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl + "/out/pakout/orderDetlIds/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: { orderId : orderId },
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ pakoutPreview(res.data);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+}
diff --git a/src/main/webapp/static/js/orderTableReturn.js b/src/main/webapp/static/js/orderTableReturn.js
new file mode 100644
index 0000000..6bd87d6
--- /dev/null
+++ b/src/main/webapp/static/js/orderTableReturn.js
@@ -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/listReturn/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});
+ }
+ }
+ })
+ });
+ }
+
+})
diff --git a/src/main/webapp/static/js/orderTableUQ.js b/src/main/webapp/static/js/orderTableUQ.js
new file mode 100644
index 0000000..d1634dd
--- /dev/null
+++ b/src/main/webapp/static/js/orderTableUQ.js
@@ -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/listUQ/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});
+ }
+ }
+ })
+ });
+ }
+
+})
diff --git a/src/main/webapp/views/order/outReturn.html b/src/main/webapp/views/order/outReturn.html
new file mode 100644
index 0000000..53daa71
--- /dev/null
+++ b/src/main/webapp/views/order/outReturn.html
@@ -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>
+<!-- 姝f枃寮�濮� -->
+<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="姝e父|绂佺敤" 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/orderTableReturn.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/order/outReturn.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>
+
diff --git a/src/main/webapp/views/order/outUQ.html b/src/main/webapp/views/order/outUQ.html
new file mode 100644
index 0000000..64dbdc2
--- /dev/null
+++ b/src/main/webapp/views/order/outUQ.html
@@ -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>
+<!-- 姝f枃寮�濮� -->
+<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="姝e父|绂佺敤" 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/orderTableUQ.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/order/outUQ.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>
+
--
Gitblit v1.9.1