yuminge-app/yun-min-program-plugin-master/packageD/member/myOrder/refund/refund.js

508 lines
15 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// pages/member/refund/refund.js
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
language: "",
order_id: "",
refund_id: "",
//处理方式
refundTypes: [],
//退款原因
money: 0.0,
typeData: 1,
fileList1: [],//凭证图片
isValue:'',
order_status:0, //订单状态
//退款商品
returnAllGoodsList:[],
returnGoolsList:[],
//售后类型
returnTypeItem:{},
//收货状态
receivingStatus:"not_received",
//退货方式
returnMethods:0,
send_back_way:[],
//退款原因
returnReasons:"",
//退款说明
returnExplain:"",
//京东上门取件相关信息
jdTakeParts:null,
jd_weight:'',
jd_length:'',
jd_width:'',
jd_height:'',
start_time:'',
end_time:'',
jd_address:{
pick_up_name : '',
pick_up_tel : '',
pick_up_province : 0,
pick_up_city : 0,
pick_up_district : 0,
pick_up_street : 0,
pick_up_address : '',
addressName:""
},
refundable_freight: 0, //可退运费
refundable_other: 0, //其他费用
freight_price: "", //可退运费
other_price: "", //其他费用
showInstructions: false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.order_id) {
this.setData({
refund_id: options.order_id,
order_id: options.order_id,
});
}
if(options.value){
this.setData({
isValue:options.value
});
}
if (options.type) {
this.setData({
typeData: options.type,
});
}
if(options.refundType){
this.setData({
refundType: options.refundType,
});
}
if (options.type == 2) {
//修改申请
wx.setNavigationBarTitle({
title: "修改申请",
});
this.getAlterInfo();
} else {
wx.setNavigationBarTitle({
title: "售后申请",
});
this.getRefundInfo();
}
// this.openComponentsPop('pickUpTime');
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
let language = wx.getStorageSync("langIndex");
this.setData({ language: language.en });
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {},
getAlterInfo() {
let urlStr = app.getNetAddresss("refund.edit");
urlStr += "&refund_id=" + this.data.order_id;
app._getNetWork({
url: urlStr,
success: (resdata)=> {
var res = resdata.data;
if (res.result == 1) {
var mydata = res.data;
let changeData = {};
changeData.refundable_freight = Number(mydata.refundable_freight) || 0; //可退运费
changeData.refundable_other = Number(mydata.refundable_other) || 0; //其他费用
changeData.freight_price = Number(mydata.refundApply.freight_price) || ""; //可退运费
changeData.other_price = Number(mydata.refundApply.other_price) || ""; //其他费用
changeData.money= Number(mydata.refundApply.apply_price).toFixed(2);
changeData.refundTypes = mydata.refundTypes;
changeData.send_back_way = mydata.send_back_way;
if(mydata.refundApply.receive_status==1){
changeData.receivingStatus = "received";
}else {
changeData.receivingStatus = "not_received";
}
this.selectComponent(`.receivingStatus`).setRadio(mydata.refundApply.receive_status);
changeData.returnTypeItem = changeData.refundTypes[mydata.refundApply.refund_type];
changeData.returnReasons = mydata.refundApply.reason;
changeData.returnExplain = mydata.refundApply.content;
changeData.fileList1 = mydata.refundApply.images;
changeData.returnMethods = mydata.refundApply.refund_way_type;
this.selectComponent('.returnMethods').setRadio(changeData.returnMethods);
changeData.returnGoolsList = mydata.refundApply.refund_order_goods;
changeData.order_status = mydata.refundApply.order.status;
if(changeData.returnMethods==1 && mydata.send_back_way_data){
this.getJdTakeParts(mydata.send_back_way_data);
}else if(changeData.returnMethods==1){
this.getJdTakeParts();
}
this.setData(changeData);
} else {
app.tips(res.msg);
}
},
fail: function (res) {
console.log(res);
},
});
},
//获取退款信息
getRefundInfo() {
let urlStr = app.getNetAddresss("refund.apply");
if(!app._isTextEmpty(this.data.refundType) && this.data.refundType=="installationSever"){
urlStr= app.getNetAddresss("plugin.live-install.frontend.apply.index"); //安装服务
}
if(!app._isTextEmpty(this.data.isValue)){
// 盲盒
urlStr= app.getNetAddresss("plugin.blind-box.api.apply.index");
}
urlStr += "&order_id=" + this.data.order_id;
app._getNetWork({
url: urlStr,
success: (resdata)=> {
var res = resdata.data;
if (res.result == 1) {
var mydata = res.data;
this.setData({
refundable_freight : Number(mydata.refundable_freight) || 0, //可退运费
refundable_other : Number(mydata.refundable_other) || 0, //其他费用
money: mydata.order.price.toFixed(2),
refundTypes: mydata.refundTypes,
order_status:mydata.order.status,
send_back_way:mydata.send_back_way,
returnMethods:mydata.send_back_way[0] ? mydata.send_back_way[0].value : 0,
returnAllGoodsList:mydata.order.order_goods.filter((item)=>{
item.stepperValue = 1;
return item.is_refund==0;
})
});
if(this.data.order_status>=2 && mydata.support_batch){
//support_batch 参数 true 支持单商品退款 false不支持 先判断下订单是否支持选择商品退款
// 不支持的就显示商品就行了,提交时也不用传 order_goods 参数
this.openComponentsPop('returnGoods');
}else {
this.openComponentsPop('returnType');
}
} else {
app.tips(res.msg);
}
},
fail: function (res) {
console.log(res);
},
});
},
//提交退款申请
confirmRefund() {
if (this.data.returnTypeItem.value!=2 && this.data.returnReasons=="") {
return app.tips("请选择申请原因!");
}
if (this.data.refundable_freight > 0 && Number(this.data.freight_price) > this.data.refundable_freight) {
return app.tips(`退款运费金额最大为${this.data.refundable_freight}`);
}
if (this.data.refundable_other > 0 && Number(this.data.other_price) > this.data.refundable_other) {
return app.tips(`退款其他金额最大为${this.data.refundable_other}`);
}
let json = {
order_id:this.data.order_id,
refund_id:this.data.refund_id,
refund_type:this.data.returnTypeItem.value,
reason:this.data.returnReasons,
content:this.data.returnExplain,
receive_status:this.data.receivingStatus=="not_received" ? 0 : 1,
refund_way_type:this.data.returnMethods,
freight_price: this.data.freight_price || 0,
other_price: this.data.other_price || 0
};
if(this.data.order_status>0){
let arr=[];
this.data.returnGoolsList.forEach(element => {
let o = {};
o.id = element.id;
o.total = element.refund_total;
arr.push(o);
});
if(arr.length > 0) json.order_goods = arr;
json.part_refund = 1;
}
//上门取货
if(this.data.returnMethods==1){
if(!this.data.start_time || !this.data.end_time) return app.tips('请选择取件时间');
Object.assign(json,this.data.jd_address);
json.jd_weight = this.data.jd_weight;
json.jd_length = this.data.jd_length;
json.jd_width = this.data.jd_width;
json.jd_height = this.data.jd_height;
json.start_time = this.data.start_time;
json.end_time = this.data.end_time;
}
let urlStr = "";
if (this.data.typeData == 1) {
urlStr = app.getNetAddresss("refund.apply.store");
} else if (this.data.typeData == 3) {
urlStr = app.getNetAddresss("plugin.snatch-regiment.api.order.refund");
} else {
urlStr = app.getNetAddresss("refund.edit.store");
}
if(!app._isTextEmpty(this.data.refundType) && this.data.refundType=="installationSever"){
urlStr= app.getNetAddresss("plugin.live-install.frontend.apply.store"); //安装服务
}
if(!app._isTextEmpty(this.data.isValue)){
// 盲盒
urlStr= app.getNetAddresss("plugin.blind-box.api.apply.store");
}
if(this.data.fileList1.length > 0) {
json.images = JSON.stringify(this.data.fileList1);
}
app._postNetWork({
url: urlStr,
showToastIn: false,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
wx.showToast({
title: res.msg,
icon: "none",
duration: 1500,
success: function () {
setTimeout(function () {
//要延时执行的代码
wx.navigateBack({
delta: 1,
});
}, 1500); //延迟时间
},
});
} else {
app.tips(res.msg);
}
},
fail: function (res) {},
});
},
updateImages(e) {
this.setData({
fileList1: e.detail
});
},
openComponentsPop(evt) {
let name=evt.currentTarget ? evt.currentTarget.dataset.name : evt;
this.selectComponent(`.${name}`).setPopShow();
},
confrimReturnType(evt){
let item = evt.detail.item;
if(this.data.returnTypeItem.value == item.value) return;
let changeData={};
if(item.value !=0 ){
changeData.receivingStatus="received";
}
changeData.returnTypeItem = item;
changeData.returnReasons="";
this.setData(changeData);
},
confirmReturnReason(evt){
let text = evt.detail.text;
this.setData({returnReasons:text});
},
confrimReturnGoods(evt){
this.setData({
returnGoolsList:evt.detail.modelsArr,
money:evt.detail.total_price
});
this.openComponentsPop('returnType');
},
confirmReceivingStatus(evt){
this.setData({
receivingStatus:evt.detail.status
});
},
confirmReturnMethods(evt){
this.setData({
returnMethods:evt.detail.status
});
if(this.data.returnMethods == 1 && this.data.jdTakeParts==null){
this.getJdTakeParts();
}
},
confirmPickUpTime(evt){
this.setData({
start_time:evt.detail.start_time,
end_time:evt.detail.end_time
});
},
confirmEditAddress(evt){
this.setData({
jd_address:evt.detail
});
let _json = {
province_id: evt.detail.pick_up_province,
city_id: evt.detail.pick_up_city,
district_id: evt.detail.pick_up_district,
street_id: evt.detail.pick_up_street,
address: evt.detail.pick_up_address
};
this.getPickUpTime(_json);
},
//获取京东上门安装默认数据
getJdTakeParts(defaultData = null){
let urlStr = app.getNetAddresss("plugin.jd-take-parts.frontend.refund.get-default-data");
app._postNetWork({
url: urlStr,
data: { order_id:this.data.order_id},
success: (resdata)=> {
var res = resdata.data;
if (res.result == 1) {
// this.selectComponent(`.pickUpTime`).setListData(res.data.time_list);
if(defaultData == null){
this.setData({
jdTakeParts:res.data,
jd_height:res.data.default.default_height,
jd_length:res.data.default.default_length,
jd_weight:res.data.default.default_weight,
jd_width:res.data.default.default_width,
});
this.selectComponent(`.editAddress`).setFormData(res.data.order_address);
this.getPickUpTime(res.data.order_address);
}else {
this.setData({
jdTakeParts:res.data,
jd_height:defaultData.jd_height,
jd_length:defaultData.jd_length,
jd_weight:defaultData.jd_weight,
jd_width:defaultData.jd_width,
start_time:defaultData.start_time,
end_time:defaultData.end_time,
});
let address={
realname:defaultData.pick_up_name,
mobile:defaultData.pick_up_tel,
province:defaultData.pick_up_province_name,
city:defaultData.pick_up_city_name,
district:defaultData.pick_up_district_name,
street:defaultData.pick_up_street_name,
province_id:defaultData.pick_up_province,
city_id:defaultData.pick_up_city,
district_id:defaultData.pick_up_district,
street_id:defaultData.pick_up_street,
address:defaultData.pick_up_address
};
this.selectComponent(`.editAddress`).setFormData(address);
this.getPickUpTime(address);
}
} else {
app.tips(res.msg);
}
},
fail: function (res) {},
});
},
getPickUpTime(_data) {
let _json = {
pick_up_province: _data.province_id,
pick_up_city: _data.city_id,
pick_up_district: _data.district_id,
pick_up_street: _data.street_id,
pick_up_address: _data.address
};
let urlStr = app.getNetAddresss("plugin.jd-take-parts.frontend.refund.get-pickup-in-time");
app._postNetWork({
url: urlStr,
data: _json,
success: (resdata)=> {
var res = resdata.data;
if (res.result == 1) {
this.selectComponent(`.pickUpTime`).setListData(res.data.time_list);
} else {
app.tips(res.msg);
}
},
fail: function (res) {},
});
},
showInstructionsFn() {
this.setData({
showInstructions: true
})
},
onCloseInstructions() {
this.setData({
showInstructions: false
})
},
onChangeFreightPrice(event){
this.setData({
freight_price: event.detail
})
},
onChangeOtherPrice(event){
this.setData({
other_price: event.detail
})
}
});