From 371462edc6b3ee1de97c235d4a019b544badda0d Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期六, 14 二月 2026 22:09:37 +0800
Subject: [PATCH] AGV工作档界面和逻辑调整
---
src/main/webapp/static/js/task/task.js | 411 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 359 insertions(+), 52 deletions(-)
diff --git a/src/main/webapp/static/js/task/task.js b/src/main/webapp/static/js/task/task.js
index ff17d6e..5b3f01c 100644
--- a/src/main/webapp/static/js/task/task.js
+++ b/src/main/webapp/static/js/task/task.js
@@ -1,7 +1,8 @@
var pageCurr;
+var tableIns;
layui.config({
base: baseUrl + "/static/layui/lay/modules/"
-}).use(['table','laydate', 'form', 'admin'], function(){
+}).use(['table', 'laydate', 'form', 'admin'], function () {
var table = layui.table;
var $ = layui.jquery;
var layer = layui.layer;
@@ -9,11 +10,68 @@
var form = layui.form;
var admin = layui.admin;
- // 鏁版嵁娓叉煋
- tableIns = table.render({
+ // AGV浠诲姟绠$悊锛氬伐浣滅姸鎬佺敤澶氶�夋锛堝嬀閫夊椤癸級锛屼粎鏈〉锛涚敤鍘熺敓 checkbox 涓嶇粡杩� layui 缇庡寲锛屼繚璇佸嬀閫変笌妗嗗唴鏄剧ず濮嬬粓涓�鑷�
+ function updateTaskWrkStsFromCheckbox() {
+ var ids = [], texts = [];
+ $('#taskWrkStsCheckboxWrap input:checkbox:checked').each(function () {
+ var $input = $(this);
+ ids.push($input.val());
+ var text = $input.data('text') || $input.closest('label').clone().children().remove().end().text().trim() || $input.val();
+ texts.push(text);
+ });
+ $('input[name="wrk_sts"]').val(ids.join(','));
+ $('#wrkSts\\$').val(texts.join(', '));
+ }
+
+ $(document).on('change', '#taskWrkStsCheckboxWrap input:checkbox', updateTaskWrkStsFromCheckbox);
+
+ function initWrkStsDropdownThenTable() {
+ $.ajax({
+ url: baseUrl + '/basWrkStatusQueryAgv/auth',
+ headers: {token: localStorage.getItem('token')},
+ data: {condition: ''},
+ method: 'POST',
+ traditional: true,
+ success: function (res) {
+ var $wrap = $('#taskWrkStsCheckboxWrap');
+ $wrap.empty();
+ var defaultIds = {'7': true, '8': true, '9': true};
+ if (res.code === 200 && res.data && res.data.length) {
+ res.data.forEach(function (item) {
+ var id = String(item.id);
+ var text = item.value || id;
+ var checked = defaultIds[id] ? ' checked' : '';
+ $wrap.append(
+ '<label class="task-wrksts-cb-label" style="display: inline-block; margin: 4px 12px 4px 0; cursor: pointer;"><input type="checkbox" value="' + id + '" data-text="' + (text.replace(/"/g, '"')) + '"' + checked + '> ' + text + '</label>'
+ );
+ });
+ updateTaskWrkStsFromCheckbox();
+ }
+
+ // 鐐瑰嚮杈撳叆妗嗗睍寮�/鏀惰捣涓嬫媺锛堜笉璋冪敤 autoShow锛岄伩鍏嶈蛋鍏ㄥ眬閫昏緫锛�
+ $('#wrkSts\\$').off('click').on('click', function () {
+ var $win = $('#taskWrkStsWindow');
+ $win.toggle();
+ });
+
+ var initialWhere = {};
+ $.each($('#search-box [name]').serializeArray(), function () {
+ initialWhere[this.name] = this.value;
+ });
+ renderTaskTable(initialWhere);
+ },
+ error: function () {
+ renderTaskTable({});
+ }
+ });
+ }
+
+ function renderTaskTable(initialWhere) {
+ tableIns = table.render({
elem: '#task',
headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/task/list/auth',
+ url: baseUrl + '/task/list/auth',
+ where: initialWhere,
page: true,
limit: 15,
limits: [15, 30, 50, 100, 200, 500],
@@ -22,10 +80,27 @@
height: 'full-120',
cols: [[
{type: 'checkbox'}
- ,{field: 'id', align: 'center',title: ''}
- ,{field: 'taskType', align: 'center',title: '浠诲姟绫诲瀷锛� agv , crn'}
-
- ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ , {field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', sort: true, width: 105}
+ , {field: 'agvWrkNo', align: 'center', title: 'AGV宸ヤ綔鍙�', width: 180}
+ , {field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160}
+ , {field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��', width: 150}
+ , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 150}
+ , {field: 'ioPri', align: 'center', title: '浼樺厛绾�', width: 80}
+ , {field: 'taskType$', align: 'center', title: '浠诲姟绫诲瀷', width: 120}
+ , {field: 'crnNo$', align: 'center', title: '鍫嗗灈鏈�', hide: true}
+ , {field: 'sourceStaNo$', align: 'center', title: '婧愮珯', width: 120}
+ , {field: 'sourceLocNo', align: 'center', title: '婧愬簱浣�', width: 120}
+ , {field: 'staNo$', align: 'center', title: '鐩爣绔�', width: 120}
+ , {field: 'locNo', align: 'center', title: '鐩爣搴撲綅', width: 120}
+ , {field: 'barcode', align: 'center', title: '鏉$爜', width: 110}
+ , {field: 'errorMemo', align: 'center', title: 'AGV鍥炲鎶ユ枃', width: 200, hide: true}
+ , {field: 'errorMemo2', align: 'center', title: 'AGV鍥炲鎶ユ枃2', width: 200, hide: true}
+ , {field: 'errorTime$', align: 'center', title: '閿欒鏃堕棿', width: 160, hide: true}
+ , {field: 'preHave', align: 'center', title: '鍏堝叆鍝�', hide: true}
+ , {field: 'takeNone', align: 'center', title: '绌烘搷浣�', hide: true}
+ , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
+ , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true, width: 160}
+ , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 250}
]],
request: {
pageName: 'curr',
@@ -42,19 +117,22 @@
response: {
statusCode: 200
},
- done: function(res, curr, count) {
+ done: function (res, curr, count) {
if (res.code === 403) {
- top.location.href = baseUrl+"/";
+ top.location.href = baseUrl + "/";
}
- pageCurr=curr;
+ pageCurr = curr;
limit();
}
- });
+ });
+ }
+
+ initWrkStsDropdownThenTable();
// 鐩戝惉鎺掑簭浜嬩欢
table.on('sort(task)', function (obj) {
var searchData = {};
- $.each($('#search-box [name]').serializeArray(), function() {
+ $.each($('#search-box [name]').serializeArray(), function () {
searchData[this.name] = this.value;
});
searchData['orderByField'] = obj.field;
@@ -68,23 +146,23 @@
// 鐩戝惉澶村伐鍏锋爮浜嬩欢
table.on('toolbar(task)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id).data;
- switch(obj.event) {
+ switch (obj.event) {
case 'addData':
showEditModel();
break;
case 'deleteData':
- if (checkStatus.length === 0) {
- layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
- return;
- }
- del(checkStatus.map(function (d) {
- return d.id;
- }));
- break;
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
case 'exportData':
- admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
- var titles=[];
- var fields=[];
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function () {
+ var titles = [];
+ var fields = [];
obj.config.cols[0].map(function (col) {
if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
titles.push(col.title);
@@ -92,7 +170,7 @@
}
});
var exportData = {};
- $.each($('#search-box [name]').serializeArray(), function() {
+ $.each($('#search-box [name]').serializeArray(), function () {
exportData[this.name] = this.value;
});
var param = {
@@ -100,18 +178,18 @@
'fields': fields
};
$.ajax({
- url: baseUrl+"/task/export/auth",
+ url: baseUrl + "/task/export/auth",
headers: {'token': localStorage.getItem('token')},
data: JSON.stringify(param),
- dataType:'json',
- contentType:'application/json;charset=UTF-8',
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
method: 'POST',
success: function (res) {
layer.closeAll();
if (res.code === 200) {
- table.exportFile(titles,res.data,'xls');
+ table.exportFile(titles, res.data, 'xls');
} else if (res.code === 403) {
- top.location.href = baseUrl+"/";
+ top.location.href = baseUrl + "/";
} else {
layer.msg(res.msg, {icon: 2})
}
@@ -123,17 +201,122 @@
});
// 鐩戝惉琛屽伐鍏蜂簨浠�
- table.on('tool(task)', function(obj){
- var data = obj.data;
+ table.on('tool(task)', function (obj) {
+ let data = obj.data;
switch (obj.event) {
- case 'edit':
- showEditModel(data);
+ // 鏄庣粏灞曠ず
+ case 'detlShow':
+ wrkNo = data.wrkNo;
+ // 寮瑰眰鏄剧ず
+ layer.open({
+ type: 2,
+ title: '宸ヤ綔妗f槑缁�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: true,
+ content: 'taskDetl.html',
+ success: function (layero, index) {
+ }
+ });
break;
- case "del":
- del([data.id]);
+ // 瀹屾垚
+ case 'complete':
+ layer.confirm('纭瀹屾垚璇ョ瑪宸ヤ綔妗o紵', {title: '宸ヤ綔鍙凤細' + data.wrkNo, shadeClose: true}, function () {
+ http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 1}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg);
+ })
+ layer.closeAll();
+ });
+ break;
+ // 鍙栨秷
+ case 'cancel':
+ if (data.pdcType === "Y") {
+ layer.confirm('褰撳墠浠诲姟鍏宠仈ERP閿�鍞崟锛屽彇娑堝皢閲嶆柊鐢熸垚鍑哄簱浣滀笟锛屾槸鍚︾户缁紵', {
+ title: '宸ヤ綔鍙凤細' + data.wrkNo,
+ shadeClose: true
+ }, function () {
+ http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 2}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg);
+ })
+ layer.closeAll();
+ });
+ } else {
+ layer.confirm('纭鍙栨秷璇ョ瑪宸ヤ綔妗o紵', {
+ title: '宸ヤ綔鍙凤細' + data.wrkNo,
+ shadeClose: true
+ }, function () {
+ http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 2}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg);
+ })
+ layer.closeAll();
+ });
+ }
+ break;
+ // 鎷f枡鍏ュ簱
+ case 'pick':
+ layer.confirm('鎷f枡鍏ュ簱璇ョ瑪宸ヤ綔妗o紵', {title: '宸ヤ綔鍙凤細' + data.wrkNo, shadeClose: true}, function () {
+ http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 3}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg);
+ })
+ layer.closeAll();
+ });
+ break;
+ // 鍏堝叆鍝�
+ case 'preHave':
+ layer.confirm('浠诲姟鍙戠敓鍏堝叆鍝佸紓甯搞�傚闇�閲嶆柊鍏ュ簱锛岃纭繚璐х墿宸叉斁鑷冲爢鍨涙満鍑哄簱绔欙紒', {
+ title: '宸ヤ綔鍙凤細' + data.wrkNo,
+ shadeClose: true
+ }, function () {
+ http.post(baseUrl + "/deal/preHave/start", {wrkNo: data.wrkNo}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg, {icon: 1});
+ })
+ layer.closeAll();
+ });
+ break;
+ // 绌烘搷浣�
+ case 'takeNone':
+ layer.confirm('浠诲姟鍙戦�佺┖鎿嶄綔寮傚父锛佹槸鍚︺�傘�傘�傘�傘�傘�傘�傘�傦紵', {
+ title: '宸ヤ綔鍙凤細' + data.wrkNo,
+ shadeClose: true
+ }, function () {
+ });
+ break;
+ // 鍒犻櫎锛堝崟鏉★級
+ case 'delete':
+ layer.confirm('纭畾瑕佸垹闄よ鏉GV浠诲姟鍚楋紵', {
+ title: '宸ヤ綔鍙凤細' + data.wrkNo,
+ shadeClose: true
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl + "/task/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {'ids[]': [data.id]},
+ traditional: true,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200) {
+ layer.msg(res.msg || '鍒犻櫎鎴愬姛', {icon: 1});
+ tableReload();
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ });
+ });
break;
}
});
+
/* 寮圭獥 - 鏂板銆佷慨鏀� */
function showEditModel(mData) {
@@ -148,19 +331,19 @@
form.on('submit(editSubmit)', function (data) {
var loadIndex = layer.load(2);
$.ajax({
- url: baseUrl+"/task/"+(mData?'update':'add')+"/auth",
+ url: baseUrl + "/task/" + (mData ? 'update' : 'add') + "/auth",
headers: {'token': localStorage.getItem('token')},
data: data.field,
method: 'POST',
success: function (res) {
layer.close(loadIndex);
- if (res.code === 200){
+ if (res.code === 200) {
layer.close(dIndex);
layer.msg(res.msg, {icon: 1});
tableReload();
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2});
}
}
@@ -182,17 +365,17 @@
layer.close(i);
var loadIndex = layer.load(2);
$.ajax({
- url: baseUrl+"/task/delete/auth",
+ url: baseUrl + "/task/delete/auth",
headers: {'token': localStorage.getItem('token')},
- data: {ids: ids},
+ data: {'ids[]': ids},
method: 'POST',
success: function (res) {
layer.close(loadIndex);
- if (res.code === 200){
+ if (res.code === 200) {
layer.msg(res.msg, {icon: 1});
tableReload();
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
} else {
layer.msg(res.msg, {icon: 2});
}
@@ -219,28 +402,152 @@
setTimeout(function () {
layDate.render({
elem: '.layui-laydate-range'
- ,type: 'datetime'
- ,range: true
+ , type: 'datetime'
+ , range: true
});
}, 300);
}
+
layDateRender();
+
+ // 鍛煎彨AGV鍔熻兘 - 鏆傛椂娉ㄩ噴鎺�
+ /*
+ // 鍒濆鍖栧懠鍙獳GV琛ㄥ崟娓叉煋
+ form.render('select');
+
+ // 鍛煎彨绫诲瀷鍒囨崲浜嬩欢
+ form.on('select(callAgvType)', function(data) {
+ var callType = data.value;
+ if (callType === 'manual') {
+ // 鎵嬪姩杈撳叆锛氭樉绀虹洰鏍囩珯鐐�
+ $('#callAgvTarSiteGroup').show();
+ $('#callAgvTarLocGroup').hide();
+ $('#callAgvTarSite').attr('placeholder', '鐩爣绔欑偣');
+ } else if (callType === 'outbound') {
+ // 鍑哄簱锛氶殣钘忕洰鏍囩珯鐐瑰拰搴撲綅锛堣嚜鍔ㄥ垎閰嶏級
+ $('#callAgvTarSiteGroup').hide();
+ $('#callAgvTarLocGroup').hide();
+ } else if (callType === 'inbound') {
+ // 鍏ュ簱锛氭樉绀虹洰鏍囧簱浣嶏紝闅愯棌鐩爣绔欑偣锛堢珯鐐硅嚜鍔ㄥ垎閰嶏級
+ $('#callAgvTarSiteGroup').hide();
+ $('#callAgvTarLocGroup').show();
+ $('#callAgvTarLoc').attr('placeholder', '鐩爣搴撲綅');
+ }
+ });
+
+ // 鍛煎彨AGV鎼繍 - 浠庨〉闈笂鏂硅〃鍗曡幏鍙栬緭鍏�
+ $('#callAgvBtn').on('click', function() {
+ var callType = $('#callAgvType').val();
+ var orgSite = $('#callAgvOrgSite').val();
+ var tarSite = $('#callAgvTarSite').val();
+ var tarLoc = $('#callAgvTarLoc').val();
+ var barcode = $('#callAgvBarcode').val();
+
+ // 楠岃瘉蹇呭~椤�
+ if (!orgSite || orgSite.trim() === '') {
+ layer.msg('璇疯緭鍏ユ簮绔欑偣', {icon: 2});
+ $('#callAgvOrgSite').focus();
+ return;
+ }
+ if (callType === 'manual') {
+ // 鎵嬪姩杈撳叆锛氶渶瑕佺洰鏍囩珯鐐�
+ if (!tarSite || tarSite.trim() === '') {
+ layer.msg('璇疯緭鍏ョ洰鏍囩珯鐐�', {icon: 2});
+ $('#callAgvTarSite').focus();
+ return;
+ }
+ } else if (callType === 'inbound') {
+ // 鍏ュ簱锛氶渶瑕佺洰鏍囧簱浣�
+ if (!tarLoc || tarLoc.trim() === '') {
+ layer.msg('璇疯緭鍏ョ洰鏍囧簱浣�', {icon: 2});
+ $('#callAgvTarLoc').focus();
+ return;
+ }
+ }
+ if (!barcode || barcode.trim() === '') {
+ layer.msg('璇疯緭鍏ユ墭鐩樼爜', {icon: 2});
+ $('#callAgvBarcode').focus();
+ return;
+ }
+
+ // 鏋勫缓纭淇℃伅
+ var confirmMsg = '纭鍛煎彨AGV鎼繍锛�<br/>鍛煎彨绫诲瀷锛�';
+ if (callType === 'manual') {
+ confirmMsg += '鎵嬪姩杈撳叆<br/>婧愮珯鐐癸細' + orgSite + '<br/>鐩爣绔欑偣锛�' + tarSite + '<br/>鎵樼洏鐮侊細' + barcode;
+ } else if (callType === 'outbound') {
+ confirmMsg += '璧风偣+鍑哄簱锛堢珯鐐瑰拰缂撳瓨浣嶈嚜鍔ㄥ垎閰嶏級<br/>婧愮珯鐐癸細' + orgSite + '<br/>鎵樼洏鐮侊細' + barcode;
+ } else if (callType === 'inbound') {
+ confirmMsg += '璧风偣+鍏ュ簱锛堢珯鐐硅嚜鍔ㄥ垎閰嶏級<br/>婧愮珯鐐癸細' + orgSite + '<br/>鐩爣搴撲綅锛�' + tarLoc + '<br/>鎵樼洏鐮侊細' + barcode;
+ }
+
+ layer.confirm(confirmMsg, {
+ title: '鍛煎彨AGV纭',
+ icon: 3,
+ shadeClose: true
+ }, function(index) {
+ var loadIndex = layer.load(2);
+ var requestData = {
+ callType: callType,
+ orgSite: orgSite.trim(),
+ barcode: barcode.trim()
+ };
+ if (callType === 'manual' && tarSite) {
+ requestData.tarSite = tarSite.trim();
+ }
+ if (callType === 'inbound' && tarLoc) {
+ requestData.tarLoc = tarLoc.trim();
+ }
+
+ $.ajax({
+ url: baseUrl + "/mobile/cache/agv/call",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(requestData),
+ contentType: 'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function(res) {
+ layer.close(loadIndex);
+ layer.close(index);
+ if (res.code === 200) {
+ layer.msg('鍛煎彨AGV鎴愬姛', {icon: 1});
+ // 娓呯┖琛ㄥ崟
+ $('#callAgvOrgSite').val('');
+ $('#callAgvTarSite').val('');
+ $('#callAgvTarLoc').val('');
+ $('#callAgvBarcode').val('');
+ // 鍒锋柊琛ㄦ牸
+ tableReload();
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg || '鍛煎彨AGV澶辫触', {icon: 2});
+ }
+ },
+ error: function() {
+ layer.close(loadIndex);
+ layer.close(index);
+ layer.msg('缃戠粶璇锋眰澶辫触', {icon: 2});
+ }
+ });
+ });
+ });
+ */
});
// 鍏抽棴鍔ㄤ綔
-$(document).on('click','#data-detail-close', function () {
+$(document).on('click', '#data-detail-close', function () {
parent.layer.closeAll();
});
function tableReload(child) {
+ if (!tableIns) return;
var searchData = {};
- $.each($('#search-box [name]').serializeArray(), function() {
+ $.each($('#search-box [name]').serializeArray(), function () {
searchData[this.name] = this.value;
});
tableIns.reload({
where: searchData,
page: {curr: pageCurr}
- });
+ });
}
--
Gitblit v1.9.1