$(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 += ""; } content += "
"; content += ""; content += ""; content += ""; content += ""; content += ""; content += "
#" + ticket.goods[i].gname + "
"; content += "
" + ticket.goods[i].uprice + "" + ticket.goods[i].num + "" + ticket.goods[i].subtotal + "元
"; 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; } } } }); } }); }