|
|
// pages/order/reason/reason.js
|
|
|
const app = getApp();
|
|
|
|
|
|
|
|
|
Page({
|
|
|
|
|
|
/**
|
|
|
* 页面的初始数据
|
|
|
*/
|
|
|
data: {
|
|
|
reasonItems: [{
|
|
|
name: "改主意了",
|
|
|
select: false
|
|
|
}, {
|
|
|
name: "重复下单",
|
|
|
select: false
|
|
|
},
|
|
|
{
|
|
|
name: "产品缺货",
|
|
|
select: false
|
|
|
}, {
|
|
|
name: "等待时间过长",
|
|
|
select: false
|
|
|
},
|
|
|
{
|
|
|
name: "店员态度不好",
|
|
|
select: false
|
|
|
}, {
|
|
|
name: "添加或删除产品",
|
|
|
select: false
|
|
|
},
|
|
|
{
|
|
|
name: "无法支付订单",
|
|
|
select: false
|
|
|
}, {
|
|
|
name: "找不到餐厅",
|
|
|
select: false
|
|
|
},
|
|
|
],
|
|
|
storeId: "",
|
|
|
ticketId: "",
|
|
|
ticketNo: "",
|
|
|
type: "",
|
|
|
reason: ""
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad: function(options) {
|
|
|
if (options.type == 'cancel') {
|
|
|
wx.setNavigationBarTitle({
|
|
|
title: '取消订单',
|
|
|
});
|
|
|
} else if (options.type == 'refund') {
|
|
|
wx.setNavigationBarTitle({
|
|
|
title: '申请退款',
|
|
|
});
|
|
|
}
|
|
|
this.setData({
|
|
|
type: options.type,
|
|
|
storeId: options.storeId,
|
|
|
ticketId: options.ticketId,
|
|
|
ticketNo: options.ticketNo
|
|
|
});
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 取消/退款操作
|
|
|
* 1:查询订单
|
|
|
* 2:校验订单状态
|
|
|
* 3:根据type执行相应操作
|
|
|
*/
|
|
|
bindCancelOrder: function() {
|
|
|
var that = this;
|
|
|
// 查询订单信息
|
|
|
var params = {
|
|
|
"method": "wxdc.sales.order.info",
|
|
|
"wxStoreId": that.data.storeId,
|
|
|
"memberId": app.userId,
|
|
|
"ticketId": that.data.ticketId,
|
|
|
"ticketNo": that.data.ticketNo
|
|
|
}
|
|
|
var ignores = [];
|
|
|
wx.showLoading({
|
|
|
title: '加载中...'
|
|
|
});
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores,
|
|
|
function(json) {
|
|
|
console.log("订单取消", json);
|
|
|
wx.hideLoading();
|
|
|
var result = json.data;
|
|
|
if (result.status == 1) {
|
|
|
var order = result.data;
|
|
|
|
|
|
// 执行取消/退款操作
|
|
|
if (undefined != order && null != order) {
|
|
|
var type = that.data.type;
|
|
|
if (type == "cancel") {
|
|
|
that.cancelOrder(order);
|
|
|
} else if (type == "refund") {
|
|
|
that.refundOrder(order);
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "操作类型不存在");
|
|
|
}
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "订单不存在");
|
|
|
}
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "操作失败:" + result.message);
|
|
|
}
|
|
|
},
|
|
|
function(error) {
|
|
|
console.log(error);
|
|
|
app.msg.showMsg("提示", "网络中断,操作失败");
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 取消订单
|
|
|
*/
|
|
|
cancelOrder: function(order) {
|
|
|
var that = this;
|
|
|
// 0-等待付款;1-已支付;2-已退单;3-已取消;4-商家已确认;5-已完成;
|
|
|
if (order.status != 1) {
|
|
|
if (order.status == 3) {
|
|
|
wx.showModal({
|
|
|
title: '提示',
|
|
|
content: '订单已取消,是否返回上一级页面',
|
|
|
success: function(res) {
|
|
|
console.log(res);
|
|
|
if (res.confirm) {
|
|
|
that.returnBack();
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "订单状态非法");
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var params = {
|
|
|
"method": "wxdc.sales.order.cancel",
|
|
|
"storeId": order.storeId,
|
|
|
"memberId": app.userId,
|
|
|
"ticketId": order.ticketId,
|
|
|
"cancelReason": that.getReason()
|
|
|
}
|
|
|
// 不签名参数
|
|
|
var ignores = [];
|
|
|
ignores.push("cancelReason");
|
|
|
wx.showLoading({
|
|
|
title: '加载中...'
|
|
|
});
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores,
|
|
|
function(json) {
|
|
|
wx.hideLoading();
|
|
|
var result = json.data;
|
|
|
if (result.status == 1) {
|
|
|
that.returnBack();
|
|
|
} else {
|
|
|
var msg = result.message;
|
|
|
if (msg.indexOf('已取消') > -1) {
|
|
|
that.returnBack();
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "操作失败:" + msg);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
function(error) {
|
|
|
console.log(error);
|
|
|
app.msg.showMsg("提示", "网络中断,操作失败");
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 退单
|
|
|
*/
|
|
|
refundOrder: function(order) {
|
|
|
var that = this;
|
|
|
// 0-等待付款;1-已支付;2-已退单;3-已取消;4-商家已确认;5-已完成;
|
|
|
if (order.status != 4) {
|
|
|
if (order.status == 2) {
|
|
|
wx.showModal({
|
|
|
title: '提示',
|
|
|
content: '订单已退款,是否返回上一级页面',
|
|
|
success: function(res) {
|
|
|
if (res.confirm) {
|
|
|
that.returnBack();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "订单状态非法");
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
var params = {
|
|
|
"method": "wxdc.order.refund.user.apply",
|
|
|
"wxStoreId": order.storeId,
|
|
|
"memberId": app.userId,
|
|
|
"ticketId": order.ticketId,
|
|
|
"refundReason": that.getReason()
|
|
|
}
|
|
|
// 不签名参数
|
|
|
var ignores = [];
|
|
|
ignores.push("refundReason");
|
|
|
wx.showLoading({
|
|
|
title: '加载中...'
|
|
|
});
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores,
|
|
|
function(json) {
|
|
|
wx.hideLoading();
|
|
|
var result = json.data;
|
|
|
if (result.status == 1) {
|
|
|
that.returnBack();
|
|
|
} else {
|
|
|
var msg = result.message;
|
|
|
if (msg.indexOf('已退单') > -1) {
|
|
|
that.returnBack();
|
|
|
} else {
|
|
|
app.msg.showMsg("提示", "操作失败:" + msg);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
function(error) {
|
|
|
console.log(error);
|
|
|
app.msg.showMsg("提示", "网络中断,操作失败");
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 返回上一个页面
|
|
|
*/
|
|
|
returnBack: function() {
|
|
|
var pages = getCurrentPages();
|
|
|
var sourcePage = pages[pages.length - 2];
|
|
|
sourcePage.loadOrderInfo();
|
|
|
wx.navigateBack({
|
|
|
delta: 1
|
|
|
});
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 原因选中
|
|
|
*/
|
|
|
bindSelect: function(e) {
|
|
|
var index = e.currentTarget.dataset.index;
|
|
|
var reasonItems = this.data.reasonItems;
|
|
|
reasonItems[index].select = !reasonItems[index].select;
|
|
|
this.setData({
|
|
|
reasonItems: reasonItems
|
|
|
});
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 输入原因
|
|
|
*/
|
|
|
inputReason: function(e) {
|
|
|
this.setData({
|
|
|
reason: e.detail.value
|
|
|
});
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 获取取消/退款原因
|
|
|
*/
|
|
|
getReason: function() {
|
|
|
var reason = "";
|
|
|
|
|
|
var reasonItems = this.data.reasonItems;
|
|
|
reasonItems.forEach(function(item, index) {
|
|
|
if (item.select) {
|
|
|
reason = reason.length > 0 ? reason + "," + item.name : item.name;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return reason += this.data.reason;
|
|
|
}
|
|
|
}) |