You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
386 lines
14 KiB
386 lines
14 KiB
Vue.http.interceptors.push(function (request, next) {
|
|
next(function (response) {
|
|
if (response.body && response.body.code === 500) {
|
|
var msg = response.body.message;
|
|
if (msg === null) msg = "服务器错误";
|
|
return vue.$toast(msg);
|
|
}
|
|
if (response.body.errorMsg) {
|
|
return vue.$toast(response.body.errorMsg);
|
|
}
|
|
return response
|
|
});
|
|
});
|
|
|
|
// 对Date的扩展,将 Date 转化为指定格式的String
|
|
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
|
|
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
|
|
// 例子:
|
|
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
|
|
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
|
|
Date.prototype.Format = function (fmt) { //author: meizz
|
|
var o = {
|
|
"M+": this.getMonth() + 1, //月份
|
|
"d+": this.getDate(), //日
|
|
"h+": this.getHours(), //小时
|
|
"m+": this.getMinutes(), //分
|
|
"s+": this.getSeconds(), //秒
|
|
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
"S": this.getMilliseconds() //毫秒
|
|
};
|
|
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
for (var k in o)
|
|
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
return fmt;
|
|
};
|
|
|
|
var vue = new Vue({
|
|
el: '#app',
|
|
filters: {
|
|
datetime: function (val) {
|
|
if (val === null || val === "") return val;
|
|
return new Date(val).Format("yyyy-MM-dd hh:mm:ss");
|
|
},
|
|
date: function (val) {
|
|
if (val === null || val === "") return val;
|
|
return new Date(val).Format("yyyy-MM-dd");
|
|
},
|
|
receivedType: function (val) {
|
|
if (val === null) return "-";
|
|
if (val === "R") return "Passed";
|
|
if (val === "QS") return "不良品";
|
|
|
|
return val;
|
|
}
|
|
},
|
|
data: function () {
|
|
return {
|
|
rendering: true,
|
|
selectedTab: window.selectedTab,
|
|
receive: {
|
|
screen: "default",
|
|
search: {
|
|
receiveNo: ""
|
|
},
|
|
summary: {
|
|
id: "",
|
|
receiveNo: "",
|
|
orderNo: "",
|
|
receivedDate: "",
|
|
receivedBy: "",
|
|
receivedType: ""
|
|
},
|
|
scan: {
|
|
finalRollNo: "",
|
|
rolls: []
|
|
},
|
|
add: {
|
|
orderNo: ""
|
|
}
|
|
},
|
|
shipment: {
|
|
screen: "default",
|
|
search: {
|
|
shipNo: ""
|
|
},
|
|
summary: {
|
|
shipNo: "",
|
|
shippedDate: "",
|
|
shippedBy: "",
|
|
totalBoxes: 0,
|
|
boxNo: "",
|
|
boxId: ""
|
|
},
|
|
boxes: [],
|
|
scan: {
|
|
finalRollNo: "",
|
|
rolls: []
|
|
},
|
|
print: {
|
|
box: {}
|
|
}
|
|
},
|
|
counting: {
|
|
screen: "default",
|
|
search: {
|
|
countingNo: ""
|
|
},
|
|
summary: {
|
|
countingNo: "",
|
|
createdDate: "",
|
|
createdBy: "",
|
|
status: ""
|
|
},
|
|
scan: {
|
|
info: "",
|
|
actData: []
|
|
}
|
|
}
|
|
};
|
|
},
|
|
methods: {
|
|
logout: function () {
|
|
document.getElementById("frmLogout").submit();
|
|
},
|
|
searchReceiveNo: function () {
|
|
if (this.receive.search.receiveNo === "") {
|
|
return vue.$toast("请输入入库单单号");
|
|
}
|
|
|
|
var self = this;
|
|
return vue.$http.post("/mobile/receive/search/receiveNo", {
|
|
"receiveNo": this.receive.search.receiveNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.receive.summary = resp.body.result
|
|
});
|
|
},
|
|
scanReceive: function () {
|
|
var self = this;
|
|
if (this.receive.summary.receiveNo === "") {
|
|
return vue.$toast("请先查询入库单");
|
|
}
|
|
|
|
this.receive.screen = "scan";
|
|
this.loadReceiveRolls();
|
|
Vue.nextTick(function () {
|
|
self.$refs.receiveScanFinalRollNoRef.focus();
|
|
});
|
|
},
|
|
loadReceiveRolls: function () {
|
|
var self = this;
|
|
return vue.$http.post("/mobile/receive/rolls", {
|
|
"receiveNo": this.receive.summary.receiveNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.receive.scan.rolls = resp.body.result
|
|
});
|
|
},
|
|
confirmScanFinalRollNo: function () {
|
|
var self = this;
|
|
if (self.receive.scan.finalRollNo === "") {
|
|
return vue.$toast("请扫描小卷卷号");
|
|
}
|
|
|
|
vue.$http.post("/receive/scan/add", {
|
|
"receiveId": self.receive.summary.id,
|
|
"receiveNo": self.receive.summary.receiveNo,
|
|
"type": "R", //良品R,不良品QS
|
|
"finalRollNo": self.receive.scan.finalRollNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
vue.$toast("扫描成功");
|
|
self.loadReceiveRolls();
|
|
});
|
|
setTimeout(function () {
|
|
self.receive.scan.finalRollNo = "";
|
|
Vue.nextTick(function () {
|
|
self.$refs.receiveScanFinalRollNoRef.focus();
|
|
});
|
|
}, 300);
|
|
},
|
|
enterAddReceiveScreen: function () {
|
|
var self = this;
|
|
self.receive.screen = 'add';
|
|
Vue.nextTick(function () {
|
|
self.$refs.receiveAddOrderNoRef.$refs.input.focus();
|
|
});
|
|
},
|
|
confirmAddReceive: function () {
|
|
var self = this;
|
|
if (self.receive.add.orderNo === "") {
|
|
return vue.$toast("请输入生产订单单号");
|
|
}
|
|
|
|
vue.$http.post("/receive/add", {
|
|
"orderNo": self.receive.add.orderNo
|
|
}, {"emulateJSON": true}).then(function (response) {
|
|
self.receive.search.receiveNo = response.body.receiveNo;
|
|
self.searchReceiveNo().then(function () {
|
|
self.scanReceive();
|
|
vue.$toast("新增成功");
|
|
});
|
|
});
|
|
},
|
|
searchShipment: function () {
|
|
if (this.shipment.search.shipNo === "") {
|
|
return vue.$toast("请输入出库单号");
|
|
}
|
|
|
|
var self = this;
|
|
return vue.$http.post("/mobile/shipment/search/shipNo", {
|
|
"shipNo": this.shipment.search.shipNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.shipment.summary = resp.body.result.summary;
|
|
self.shipment.summary.totalBoxes = resp.body.result.boxCount;
|
|
});
|
|
},
|
|
enterShipmentBoxes: function () {
|
|
if (this.shipment.summary.shipNo === "") {
|
|
return vue.$toast("请先查询出库单");
|
|
}
|
|
|
|
var self = this;
|
|
this.shipment.screen = 'box';
|
|
vue.$http.post("/mobile/shipment/search/boxes", {
|
|
"shipNo": this.shipment.search.shipNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.shipment.boxes = resp.body.result;
|
|
});
|
|
},
|
|
newShipmentBox: function () {
|
|
var self = this;
|
|
vue.$http.post("/shipment/boxes/add", {"shipNo": this.shipment.summary.shipNo}, {"emulateJSON": true}).then(function (resp) {
|
|
self.enterShipmentBoxes();
|
|
vue.$toast("新增成功");
|
|
});
|
|
},
|
|
scanShipmentBox: function (boxNo, boxId) {
|
|
var self = this;
|
|
this.shipment.screen = 'scanBox';
|
|
this.shipment.summary.boxNo = boxNo;
|
|
this.shipment.summary.boxId = boxId;
|
|
Vue.nextTick(function () {
|
|
self.$refs.shipmentScanFinalRollNoRef.focus();
|
|
});
|
|
this.loadShipmentBoxRolls();
|
|
},
|
|
gotoPrintBox: function (boxNo) {
|
|
var self = this;
|
|
return vue.$http.post("/mobile/shipment/box/" + boxNo + "/print", {}, {"emulateJSON": true}).then(function (resp) {
|
|
self.shipment.print = resp.body.result;
|
|
self.shipment.screen = "print";
|
|
});
|
|
},
|
|
loadShipmentBoxRolls: function () {
|
|
var self = this;
|
|
return vue.$http.post("/mobile/shipment/box/" + this.shipment.summary.boxNo + "/rolls", {}, {"emulateJSON": true}).then(function (resp) {
|
|
self.shipment.scan.rolls = resp.body.result
|
|
});
|
|
},
|
|
confirmScanBoxFinalRollNo: function () {
|
|
var self = this;
|
|
if (self.shipment.scan.finalRollNo === "") {
|
|
return vue.$toast("请扫描小卷卷号");
|
|
}
|
|
|
|
vue.$http.post("/shipment/boxes/scan/add", {
|
|
"boxNo": self.shipment.summary.boxNo,
|
|
"finalRollNo": self.shipment.scan.finalRollNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
vue.$toast("扫描成功");
|
|
self.loadShipmentBoxRolls();
|
|
});
|
|
setTimeout(function () {
|
|
self.shipment.scan.finalRollNo = "";
|
|
Vue.nextTick(function () {
|
|
self.$refs.shipmentScanFinalRollNoRef.focus();
|
|
});
|
|
}, 300);
|
|
},
|
|
finishScanShipmentBoxRoll: function () {
|
|
var self = this;
|
|
vue.$http.post("/shipment/boxes/finish", {
|
|
"boxId": self.shipment.summary.boxId
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.gotoPrintBox(self.shipment.summary.boxNo);
|
|
vue.$toast("Successfully");
|
|
});
|
|
},
|
|
confirmAddShipment: function () {
|
|
var self = this;
|
|
vue.$http.post("/shipment/add", {}, {"emulateJSON": true}).then(function (resp) {
|
|
self.shipment.search.shipNo = resp.body.shipNo;
|
|
self.searchShipment();
|
|
vue.$toast("创建成功:" + resp.body.shipNo);
|
|
});
|
|
},
|
|
searchCountingNo: function () {
|
|
if (this.counting.search.countingNo === "") {
|
|
return vue.$toast("请输入盘点单号");
|
|
}
|
|
|
|
var self = this;
|
|
return vue.$http.post("/mobile/counting/search/countingNo", {
|
|
"countingNo": this.counting.search.countingNo
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.counting.summary = resp.body.result
|
|
});
|
|
},
|
|
scanCounting: function () {
|
|
var self = this;
|
|
if (this.counting.summary.countingNo === "") {
|
|
return vue.$toast("请先查询盘点单");
|
|
}
|
|
|
|
this.counting.screen = "scan";
|
|
this.loadCountingActData();
|
|
Vue.nextTick(function () {
|
|
self.$refs.countingScanRef.focus();
|
|
});
|
|
},
|
|
loadCountingActData: function () {
|
|
var self = this;
|
|
return vue.$http.post("/mobile/counting/act/" + this.counting.summary.countingNo, {}, {"emulateJSON": true}).then(function (resp) {
|
|
self.counting.scan.actData = resp.body.result
|
|
});
|
|
},
|
|
printBox: function () {
|
|
var self = this;
|
|
vue.$http.post("http://localhost:30002/print", {
|
|
"print": JSON.stringify(self.shipment.print)
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
vue.$toast("等待打印中,请稍候");
|
|
}, function (errResp) {
|
|
vue.$toast("等待打印中,请稍候");
|
|
});
|
|
},
|
|
confirmCountingScan: function () {
|
|
var self = this;
|
|
if (self.counting.scan.info === "") {
|
|
return vue.$toast("请扫描盘点信息");
|
|
}
|
|
|
|
vue.$http.post("/mobile/counting/scan/add", {
|
|
"countingNo": this.counting.search.countingNo,
|
|
"info": self.counting.scan.info
|
|
}, {"emulateJSON": true}).then(function (resp) {
|
|
self.loadCountingActData();
|
|
vue.$toast("扫描成功");
|
|
});
|
|
setTimeout(function () {
|
|
self.counting.scan.info = "";
|
|
Vue.nextTick(function () {
|
|
self.$refs.countingScanRef.focus();
|
|
});
|
|
}, 300);
|
|
}
|
|
},
|
|
mounted: function () {
|
|
var self = this;
|
|
this.rendering = false;
|
|
|
|
if (this.$refs.countingScanRef) {
|
|
this.$refs.countingScanRef.addEventListener('input', function (evt) {
|
|
self.counting.scan.info = self.counting.scan.info.toUpperCase();
|
|
});
|
|
}
|
|
if (this.$refs.receiveNoRef) {
|
|
this.$refs.receiveNoRef.$refs.input.addEventListener('input', function (evt) {
|
|
self.receive.search.receiveNo = self.receive.search.receiveNo.toUpperCase();
|
|
});
|
|
this.$refs.receiveNoRef.$refs.input.addEventListener('focus', function (evt) {
|
|
if (self.receive.search.receiveNo === "") {
|
|
self.receive.search.receiveNo = "R";
|
|
}
|
|
});
|
|
}
|
|
if (this.$refs.shipNoRef) {
|
|
this.$refs.shipNoRef.$refs.input.addEventListener('input', function (evt) {
|
|
self.shipment.search.shipNo = self.shipment.search.shipNo.toUpperCase();
|
|
});
|
|
this.$refs.shipNoRef.$refs.input.addEventListener('focus', function (evt) {
|
|
if (self.shipment.search.shipNo === "") {
|
|
self.shipment.search.shipNo = "D";
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|