$(function () {
openWebSocket();
queryAssistantInfo();
});
let vm = new Vue({
el: '#rrapp',
data: {
showList: true,
goodsDetail:false,
title: null,
goods:{},
sysNotice: {},
goodsList:[],
orderInfo:[],
userInfo:{},
sysUserInfo:{},
storeName:null,
prodBarcode:null,
sessionId:null,
pickUpCodeList:[],
goodsDetailList:[],
orderEntity:{},
orderProcessRecord:{},
tax:0,
currentOrderNo:null,
customname:'',
customidcard:'',
storeId:null,
index:0,
max:0,
ruleValidate: {
name: [
{required: true, message: '名称不能为空', trigger: 'blur'}
]
},
q: {
name: ''
}
},
methods: {
query: function () {
vm.storeId = sessionStorage.getItem("storeId");;
var thisGoods = {};
$.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId, function (r) {
if (r.code == 0) {
vm.goodsDetail = true;
thisGoods.name = r.goodsDetails.name;
thisGoods.primaryPicUrl = r.goodsDetails.primaryPicUrl;
thisGoods.retailPrice = r.goodsDetails.retailPrice;
thisGoods.specification = r.goodsDetails.specification;
thisGoods.prodBarcode = r.goodsDetails.prodBarcode;
// thisGoods.goodsDesc = r.goodsDetails.goodsDesc;
thisGoods.sellVolume = 1;
if(!vm.goodsList[vm.index]){
vm.index = vm.max;
}
thisGoods.id = vm.index++;
vm.max++;
var data = Object.assign({}, JSON.parse(JSON.stringify(thisGoods)));
vm.goodsList.push(data);
vm.goods = thisGoods;
} else {
alert(r.msg);
}
});
},
add:function(value){
// 增加数量
var goods = this.goodsList[value];
goods.sellVolume = goods.sellVolume + 1;
},
minus:function(value){
// 减少数量
var goods = this.goodsList[value];
if(goods.sellVolume === 1){
alert("数量至少为1个");
return ;
}
goods.sellVolume = goods.sellVolume - 1;
},
deleteItem:function(value){
// 删除这条记录
this.goodsList.splice(value,1,"");
this.index = value;
},
clearGoodsList:function(){
this.goodsList = [];
},
toOrderSubmit:function(){
if(this.goodsList.length == 0){
alert("请选择商品");
return;
}
$('#myModal').modal('show')
},
submitOrder:function(){
$('#payCode').unbind('keydown').keydown(function(event){});
var param = {'userInfo':vm.userInfo,'payCode':this.$refs.payCode.currentValue,'goodsList':vm.goodsList,'sessionId':vm.sessionId};
this.$refs.payCode.currentValue = '';
$.ajax({
type: "POST",
url: "../order/orderConfirm",
contentType: "application/json",
data: JSON.stringify(param),
success: function (r) {
console.log(r);
if (r.code == 0) {
if (r.resultObj != null) {
$(".form-group input[type=text]").each(function(){
this.value = '';
})
// 打印取货码小票
var content = getPrintContent(r.resultObj);
printArea(content);
vm.goodsList = [];
vm.customname = '' ;
vm.customidcard = '';
// alert('打印小票完成');
}else{
// alert("打印小票失败");
}
} else {
alert(r.msg);
}
}
});
},
getIDCardInfo: function(){
console.log(1);
$.get("../order/getIdCardInfo", function (r){
if(r.code === 0){
var data = JSON.parse(r.info);
vm.customname = data.rows[0].data.name;
vm.customidcard = data.rows[0].data.id_no;
}
});
},
submitCustomInfo:function(){
this.userInfo.customName = vm.customname == '' ? this.$refs.customName.value :vm.customname;
this.userInfo.customIDCard = vm.customidcard == '' ? this.$refs.customIDCard.value :vm.customidcard;
this.userInfo.customPhone = this.$refs.customPhone.value;
debugger
var idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
if(!idcardReg.test(this.userInfo.customIDCard)){
alert("请输入正确的身份证号");
return ;
}
if(!(/^1[3456789]\d{9}$/.test(this.userInfo.customPhone))){
alert("手机号码有误,请重填");
return ;
}
$("#Send").attr("data-dismiss","modal");
$('#payModal').modal('show');
$("#payCode").keydown(function(e){
if(e.keyCode==13){
$("#submitOrder").click();
event.preventDefault();
}
});
$('body').on('hidden.bs.modal', '.modal', function () {
$(this).removeData();
});
},
queryOrderDetail:function(orderSn){
var storeId = sessionStorage.getItem("storeId");;
$.get("../order/orderDetail/"+orderSn, function (r) {
if (r.code == 0) {
vm.orderProcessRecord = r.resultObj.orderProcessRecordEntity;
vm.orderEntity = r.resultObj.orderEntity;
vm.goodsDetailList = r.resultObj.goodsList;
vm.currentOrderNo = r.resultObj.orderEntity.id;
vm.tax = r.resultObj.tax;
if(vm.orderProcessRecord.eleOrderStartTime){
vm.orderProcessRecord.eleOrderStartTime = parsedate(vm.orderProcessRecord.eleOrderStartTime);
}
if(vm.orderProcessRecord.paymentStartTime){
vm.orderProcessRecord.paymentStartTime = parsedate(vm.orderProcessRecord.paymentStartTime);
}
if(vm.orderProcessRecord.waybillStartTime){
vm.orderProcessRecord.waybillStartTime = parsedate(vm.orderProcessRecord.waybillStartTime);
}
if(vm.orderProcessRecord.customsSuccTime){
vm.orderProcessRecord.customsSuccTime = parsedate(vm.orderProcessRecord.customsSuccTime);
}
if(vm.orderProcessRecord.addOrderStartTime){
vm.orderProcessRecord.addOrderStartTime = parsedate(vm.orderProcessRecord.addOrderStartTime);
}
}
});
},
verification:function(){
if(vm.orderProcessRecord.isCustomsSend != 1){
alert("请等待清关完成");
return ;
}
confirm('确认核销吗?', function () {
$.ajax({
type: "POST",
url: "../order/printMsgAndChangeCode",
contentType: "application/json",
data: JSON.stringify({'id':vm.currentOrderNo,'sessionId':vm.sessionId}),
success: function (r) {
if (r.ticket != null) {
// printArea(r.ticket);
var content = getPrintContentOrder(r.ticket);
printArea(content);
alert('打印小票完成');
}else{
alert("打印小票失败");
}
}
});
})
},
refundOrder:function(){
confirm('确认退款吗?', function () {
$.ajax({
type: "POST",
url: "../order/orderRefund",
contentType: "application/json",
data: JSON.stringify({'orderId':9000,'sessionId':vm.sessionId}),
success: function (r) {
if (r.code == 0) {
alert("退款成功")
}else{
alert("退款失败,请联系管理员");
}
}
});
})
},
retrySendOrder:function(){
},
getInfo: function (id) {
$.get("../sys/notice/info/" + id, function (r) {
vm.sysNotice = r.sysNotice;
});
},
reload: function (event) {
vm.showList = false;
vm.showViewList = true;
vm.showSaveSupplierGoods = true;
var page = $("#jqGrid").jqGrid('getGridParam', 'page');
$("#jqGrid").jqGrid('setGridParam', {
postData: {
storeId: vm.q.storeId,
goodsName: vm.q.goodsName,
goodsSn: vm.q.goodsSn,
productSn: vm.q.productSn, category: vm.q.category, categoryTwo: vm.q.categoryTwo, goodsBizType:vm.q.goodsBizType,
thirdPartyMerchCode: vm.q.thirdPartyMerchCode
},
page: page
}).trigger("reloadGrid");
vm.handleReset('formValidate');
},
handleSubmit: function (name) {
handleSubmitValidate(this, name, function () {
vm.saveOrUpdate()
});
},
handleReset: function (name) {
handleResetForm(this, name);
},
logout: function () {
confirm('注:您确定要安全退出本次登录吗?', function () {
dialogLoading(true);
setTimeout(function () {
toUrl('../logout?_' + $.now());
}, 500);
});
}
}
});
function getPrintContent(ticket) {
var content = "
";
//小票头
content += "
";
content += ticket.shopName
content += "
";
content += "
--------------------------------------------------
";
content += "
";
content += "收银机号:" + ticket.salesNo;
content += "
";
content += "
";
content += "收银员:" + ticket.userName;
content += "
";
content += "
";
content += "取货码:" + ticket.code;
content += "
";
content += "
";
content += "该取货单号只有当天有效"
content += "
";
content += "
";
content += "订单编号:" + ticket.orderNo;
content += "
";
content += "
";
content += "打印日期:" + ticket.time;
content += "
";
return content;
}
var printAreaCount = 0;
function printArea(content) {
var idPrefix = "printArea_";
removePrintArea(idPrefix + printAreaCount);
printAreaCount++;
var iframeId = idPrefix + printAreaCount;
var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';
iframe = document.createElement('IFRAME');
$(iframe).attr({
style: iframeStyle,
id: iframeId
});
document.body.appendChild(iframe);
var doc = iframe.contentWindow.document;
doc.open();
//$(document).find("link").filter(function () {
//return $(this).attr("rel").toLowerCase() == "stylesheet";
//}).each(
//function () {
//doc.write('
');
//});
doc.write('
' + content
+ '
');
doc.close();
var frameWindow = iframe.contentWindow;
frameWindow.close();
frameWindow.focus();
frameWindow.print();
frameWindow.print();
}
var removePrintArea = function (id) {
$("iframe#" + id).remove();
};
var webSocket;
function openWebSocket() {
var storeId = sessionStorage.getItem("storeId");
if ("WebSocket" in window) {
console.log("当前浏览器支持WebSocket");
//实现化WebSocket对象
//指定要连接的服务器地址与端口建立连接
//注意ws、wss使用不同的端口。我使用自签名的证书测试,
//无法使用wss,浏览器打开WebSocket时报错
//ws对应http、wss对应https。
webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
// webSocket = new WebSocket("ws://127.0.0.1:8080/ws/server/"+storeId);
if (webSocket.readyState === webSocket.CONNECTING) {
console.log('1.连接正在打开......');
}
// ---------- WebSocket 对象注册事件 ----------
//连接打开事件
webSocket.onopen = function () {
if (webSocket.readyState === webSocket.OPEN) {
console.log('2.连接已打开');
}
console.log('2.向服务端发送测试消息......');
// webSocket.send("2.client发测试消息:Client sent test msg。");
};
//收到消息事件
webSocket.onmessage = function (msg) {
var data = Object.assign({}, JSON.parse(msg.data));
vm.sessionId = data.sessionId;
vm.pickUpCodeList = [];
if(data.pickUpCodeList.length > 0){
console.log(storeId);
for(var i = 0 ; i < data.pickUpCodeList.length ; i++){
console.log(data.pickUpCodeList[i].storeId);
if(data.pickUpCodeList[i].storeId === storeId){
vm.pickUpCodeList.push(data.pickUpCodeList[i]);
}
}
}
// vm.pickUpCodeList = vm.pickUpCodeList.concat(data.pickUpCodeList);
// console.log(vm.pickUpCodeList);
// webSocket.send("2.client发测试消息:Client sent test msg。");
};
//连接关闭事件
webSocket.onclose = function () {
if (!webSocket) {
console.log('4.Socket连接已关闭');
}
};
//发生了错误事件
webSocket.onerror = function () {
console.log("5.Socket发生了错误");
}
} else {
console.log("当前浏览器不支持WebSocket");
return false;
}
}
function sendMessage() {
if(webSocket && webSocket.readyState === webSocket.OPEN) {
webSocket.send("client manual send message.")
} else {
console.log('6.未创建WebSocket连接');
}
}
function closeWebSocket() {
if (webSocket != null) {
webSocket.close();
webSocket = null;
}
console.log("关闭WebSocket");
}
//窗口关闭时,关闭连接
window.unload = function () {
webSocket.close();
};
function parsedate(value){
var date = new Date(value);
var year = date.getFullYear();
var month = date.getMonth()+1; //月份+1
var day = date.getDate();
var hour = date.getHours();
var minutes = date.getMinutes();
var second = date.getSeconds();
return year+"-"+month+"-"+day+" "+hour+":"+minutes +":"+second;
}
function getPrintContentOrder(ticket) {
var content = "
";
//小票头
content += "
";
content += ticket.ticketHead.title;
content += "
";
/*content += "
";
content += "会员:" + ticket.ticketHead.memberId;
content += "
";*/
content += "
";
content += "订单号:" + ticket.ticketHead.orderId;
content += "
";
content += "
";
content += "交易时间:" + ticket.ticketHead.tradeTime;
content += "
";
content += "
--------------------------------------------------
";
//商品信息
content += "
";
content += "";
content += "商品名称 | ";
content += "单价 | ";
content += "数量 | ";
content += "小计 | ";
content += "
";
content += "
";
content += "
--------------------------------------------------
";
content += "
";
for (var i=0;i< ticket.goods.length;i++){
content += "";
content += "";
content += "";
content += "";
content += "# | ";
content += "" + ticket.goods[i].gname + " | ";
content += " ";
content += " ";
content += " | ";
content += "" + ticket.goods[i].uprice + " | ";
content += "" + ticket.goods[i].num + " | ";
content += "" + ticket.goods[i].subtotal + "元 | ";
content += "
";
}
content += "
";
content += "
--------------------------------------------------
";
//收银信息
content += "
";
content += "商品合计:";
content += "" + ticket.cashInfo.goodsTotal + "件";
content += "" + ticket.cashInfo.total + "元";
content += "
";
content += "
";
content += "实收:";
content += "" + ticket.cashInfo.receipts + "元";
content += "
";
content += "
";
content += "找零:";
content += "" + ticket.cashInfo.oddChange + "元";
content += "
";
content += "
";
content += "优惠券:";
content += "" + ticket.cashInfo.coupon + "元";
content += "
";
content += "
";
content += "运费:";
content += "" + ticket.cashInfo.freight + "元";
content += "
";
content += "
";
content += "支付渠道:";
content += "" + ticket.cashInfo.paymentMode + "";
content += "
";
content += "
--------------------------------------------------
";
//海关清单信息
content += "
";
content += "订单号:" + ticket.cusListing.orderId;
content += "
";
content += "
";
content += "运单编号:" + ticket.cusListing.waybillId;
content += "
";
content += "
";
content += "海关清单号:" + ticket.cusListing.invtNo;
content += "
";
content += "
";
content += "收货人:" + ticket.cusListing.consignee;
content += "
";
content += "
";
content += "收货人电话:" + ticket.cusListing.consigneeTel;
content += "
";
content += "
";
content += "始发地:" + ticket.cusListing.originAddress;
content += "
";
content += "
";
content += "交货地:" + ticket.cusListing.deliveryAddress;
content += "
";
content += "
--------------------------------------------------
";
content += "
";
content += ticket.ticketFoot.summary;
content += "
";
content += "
";
content += "客服电话:" + ticket.ticketFoot.serviceTel;
content += "
";
content += "
";
content += "网址:" + ticket.ticketFoot.url1;
content += "
";
content += "
";
content += ticket.ticketFoot.welcome;
content += "
";
return content;
}
function queryAssistantInfo(){
$.get("../sys/user/info", function (r) {
if(r.code == 0){
vm.sysUserInfo = r.user;
$.get("../store/getStoresByMerch?merchSn="+r.user.merchSn+"&_=1590374349985",function(result){
if(result.code == 0){
for(var i = 0 ;i < result.list.length; i++){
if(result.list[i].id == r.user.storeId){
vm.storeName = result.list[i].storeName;
break;
}
}
}
});
}
});
}