$(function () {
let shippingStatus = getQueryString("shippingStatus");
let payStatus = getQueryString("payStatus");
let orderStatus = getQueryString("orderStatus");
let orderType = getQueryString("orderType");
let url = '../order/list?1';
if (shippingStatus) {
url += '&shippingStatus=' + shippingStatus;
}
if (payStatus) {
url += '&payStatus=' + payStatus;
}
if (orderStatus) {
url += '&orderStatus=' + orderStatus;
}
if (orderType) {
url += '&orderType=' + orderType;
}
$("#jqGrid").jqGrid({
url: url,
datatype: "json",
colModel: [
{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
{label: '订单号', name: 'orderSn', index: 'order_sn', width: 100},
{label: '会员', name: 'userName', index: 'user_name', width: 80},
{
label: '订单业务类型', name: 'orderBizType', index: 'order_biz_type', width: 80,
formatter: function (value) {
if (value == '00') {
return '保税备货';
} else if (value == '02') {
return '保税展示补货';
} else if (value == '10') {
return '保税展示跨境';
} else if (value == '11') {
return '普通货物';
}
return '-';
}
},
{
label: '订单状态', name: 'orderStatus', index: 'order_status', width: 80,
formatter: function (value) {
if (value == '0') {
return '订单创建成功等待付款';
} else if (value == '100') {
return '订单付款中';
} else if (value == '101') {
return '订单已取消';
} else if (value == '102') {
return '订单已删除';
} else if (value == '201') {
return '订单已付款,等待发货';
} else if (value == '300') {
return '订单已发货';
} else if (value == '301') {
return '用户确认收货';
} else if (value == '401') {
return '没有发货,退款';
} else if (value == '402') {
return '已收货,退款退货';
}
return value;
}
},
{
label: '订付人核验', name: 'buyerPayCheck', index: 'buyer_pay_check', width: 80,
formatter: function (value) {//订购人支付人校验,0:未知,1:一致,2:不一致,3:校验异常
if (value == '0') {
return '未知';
} else if (value == '1') {
return '一致';
} else if (value == '2') {
return '不一致';
}
return "-";
}
},
{
label: '付款状态', name: 'payStatus', index: 'pay_status', width: 80,
formatter: function (value) {
if (value == '0') {
return '未付款';
} else if (value == '1') {
return '付款中';
} else if (value == '2') {
return '已付款';
} else if (value == '3') {
return '退款中';
} else if (value == '4') {
return '退款';
}
return value;
}
},
{label: '收货人', name: 'consignee', index: 'consignee', width: 80},
{label: '收货地址', name: 'address', index: 'address', width: 80},
{label: '联系电话', name: 'mobile', index: 'mobile', width: 80},
{label: '实际支付', name: 'actualPrice', index: 'actual_price', width: 60},
{label: '订单总价', name: 'orderPrice', index: 'order_price', width: 60},
{
label: '下单时间', name: 'addTime', index: 'add_time', width: 120,
formatter: function (value) {
return transDate(value, 'yyyy-MM-dd hh:mm:ss');
}
},
{label: '快递公司', name: 'shippingName', index: 'shipping_name', width: 80},
{label: '配送单号', name: 'shippingNo', index: 'shipping_No', width: 80},
{label: '快递费用', name: 'shippingFee', index: 'shipping_fee', width: 80},
{
label: '发货状态', name: 'shippingStatus', index: 'shipping_status', width: 60,
formatter: function (value) {
if (value == '0') {
return '未发货';
} else if (value == '1') {
return '已发货';
} else if (value == '2') {
return '已收货';
} else if (value == '4') {
return '退货';
}
return value;
}
},
{
label: '操作', width: 180, sortable: false,
formatter: function (value, col, row) {
let htmlStr = ' ';
//订单状态: 0订单创建成功等待付款, 101订单已取消, 102订单已删除,201订单已付款,等待发货,300订单已发货, 301用户确认收货,401 没有发货,退款 402 已收货,退款退货
if (hasPermission('order:refund')) {
if (row.orderStatus == 300 && (row.orderBizType == '10' || row.orderBizType == '02')) {
htmlStr += ' ';
}
if (row.orderStatus == 0) {
htmlStr += ' ';
}
if (row.orderStatus == 201) {
if (row.isPaymentSend == 0 || row.isEleOrderSend == 0 || row.isCustomsSend == 0 || row.buyerPayCheck != 0) {
htmlStr += ' ';
}
}
}
return htmlStr;
}
}
],
viewrecords: true,
height: 675,
rowNum: 10,
rowList: [10, 30, 50],
rownumbers: true,
rownumWidth: 25,
autowidth: true,
multiselect: true,
pager: "#jqGridPager",
jsonReader: {
root: "page.list",
page: "page.currPage",
total: "page.totalPage",
records: "page.totalCount"
},
prmNames: {
page: "page",
rows: "limit",
order: "order"
},
gridComplete: function () {
$("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
}
});
});
let vm = new Vue({
el: '#rrapp',
data: {
showDiv: 1, // 1查询 2编辑 3发货 4选择骑手 5退款
title: null,
order: {},
shippings: [],
q: {
orderSn: '',
orderStatus: '',
orderType: ''
},
refundMoney: 0,
shipping: {},
logisticsInfo: {
tracesList: [],
logisticCode: '',
shipperCode: ''
},
macros: [],
orderProcessRecordEntity: {},
orderGoodsList: []
},
methods: {
query: function () {
vm.reload(1);
},
getMacro: function () {
$.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
vm.macros = r.list;
});
},
getLogistics: function (event) {
let id = getSelectedRow();
if (id == null) {
return;
}
$.get("../order/getLogistics/" + id, function (r) {
if (r.code != 0) {
alert(r.msg);
return;
}
vm.logisticsInfo = r.result;
vm.showDiv = 3;
vm.title = "快递信息";
});
},
getProcess: function (event) {
let orderSn = getSelectedRowData().orderSn;
if (orderSn == null) {
return;
}
$.get("../order/getProcess/" + orderSn, function (r) {
if (r.code != 0) {
alert(r.msg);
return;
}
if (r.orderProcessRecordEntity != null) {
vm.orderProcessRecordEntity = r.orderProcessRecordEntity;
vm.showDiv = 7;
} else {
alert(orderSn + "暂无清关信息");
}
});
},
confirm: function (event) {
let id = getSelectedRow();
if (id == null) {
return;
}
confirm('确定收货?', function () {
$.ajax({
type: "POST",
url: "../order/confirm",
contentType: "application/json",
data: JSON.stringify(id),
dataType: "json",
success: function (r) {
if (r.code == 0) {
alert('操作成功', function (index) {
$("#jqGrid").trigger("reloadGrid");
});
} else {
alert(r.msg);
}
}
});
});
},
openComment: function (event) {
let id = getSelectedRow();
if (id == null) {
return;
}
openWindow({
type: 2,
title: '评价',
content: '../shop/comment.html?orderId=' + id
});
},
shippingChange: function (opt) {
vm.order.shippingName = opt.label;
vm.order.shippingCode = opt.value;
},
saveOrUpdate: function (event) {
$.ajax({
type: "POST",
url: '../order/sendGoods',
contentType: "application/json",
data: JSON.stringify(vm.order),
success: function (r) {
if (r.code === 0) {
alert('操作成功', function (index) {
vm.reload();
});
} else {
alert(r.msg);
}
}
});
},
reload: function (event) {
vm.showDiv = 1;
let page = event;
if (event != 1) {
page = $("#jqGrid").jqGrid('getGridParam', 'page');
}
$("#jqGrid").jqGrid('setGridParam', {
postData: {
'orderSn': vm.q.orderSn,
'orderStatus': vm.q.orderStatus,
'orderType': vm.q.orderType
},
page: page
}).trigger("reloadGrid");
},
reloadSearch: function () {
vm.q = {
orderSn: '',
orderStatus: '',
orderType: ''
};
},
lookDetail: function (rowId) { //第三步:定义编辑操作
vm.showDiv = 2;
vm.title = "订单详情";
$.get("../order/infos/" + rowId, function (r) {
vm.order = r.order;
vm.orderGoodsList = r.order.orderGoodsEntityList;
});
vm.getMacro();
},
printDetail: function (rowId) {
confirm('确定连接打票机打印出票?', function () {
$.ajax({
type: "POST",
url: "../order/printMsg",
contentType: "application/json",
data: JSON.stringify(rowId),
success: function (r) {
if (r.ticket != null) {
// printArea(r.ticket);
var content = getPrintContent(r.ticket);
printArea(content);
alert('打印小票完成');
}else{
alert("打印小票失败");
}
}
});
})
},
shippingBind: function (event) {
let orderId = vm.order.id;
$.ajax({
type: "POST",
url: '../order/shippingBind',
data: {orderId: orderId, shippingCode: vm.shipping},
success: function (r) {
if (r.code === 0) {
alert('操作成功', function (index) {
vm.reload();
});
} else {
alert(r.msg);
}
}
});
},
refund: function (rowId) {
vm.showDiv = 5;
vm.refundMoney = 0;
Ajax.request({
url: "../order/info/" + rowId,
async: true,
successCallback: function (r) {
vm.order = r.order;
vm.refundMoney = r.order.actualPrice;
}
});
},
cancelUpdate: function (rowId) {
let params = {};
params.orderId = rowId;
$.ajax({
type: "POST",
url: '../order/cancel',
data: params,
success: function (r) {
if (r.code === 0) {
alert('取消成功', function (index) {
vm.reload();
});
} else {
alert(r.msg);
}
}
});
},
refundUpdate: function (rowId) {
let params = {};
params.orderId = rowId;
$.ajax({
type: "POST",
url: '../order/refund',
data: params,
success: function (r) {
if (r.code === 0) {
alert('退款成功', function (index) {
vm.reload();
});
} else {
alert(r.msg);
}
}
});
}
},
created: function () {
$.get("../shipping/queryAll", function (r) {
vm.shippings = r.list;
});
}
});
// var printAreaCount = 0;
// function printArea(ticket) {
// 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;
// $(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();
// }
// var removePrintArea = function (id) {
// $("iframe#" + id).remove();
// };
function getPrintContent(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;
}
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();
}
var removePrintArea = function (id) {
$("iframe#" + id).remove();
};