333 lines
11 KiB
JavaScript
333 lines
11 KiB
JavaScript
![]() |
import { url } from '../request';
|
||
|
Page({
|
||
|
data: {
|
||
|
current: 0,
|
||
|
businessName:'',
|
||
|
items: [
|
||
|
{
|
||
|
title: '全部',
|
||
|
},
|
||
|
{
|
||
|
title: '待支付',
|
||
|
},
|
||
|
{
|
||
|
title: '待使用',
|
||
|
},
|
||
|
{
|
||
|
title: '已完成',
|
||
|
},
|
||
|
{
|
||
|
title: '已取消',
|
||
|
},
|
||
|
],
|
||
|
dingdan:[],
|
||
|
paymentStatuses: [
|
||
|
{ paymentStatuses: '0', statue: '待支付' },
|
||
|
{ paymentStatuses: '1', statue: '待使用' },
|
||
|
{ paymentStatuses: '2', statue: '已取消' },
|
||
|
{ paymentStatuses: '3', statue: '已退款' },
|
||
|
{ paymentStatuses: '4', statue: '已完成' }
|
||
|
]
|
||
|
|
||
|
},
|
||
|
onLoad() {
|
||
|
my.getStorage({
|
||
|
key: 'userInfo',
|
||
|
success: (res) => {
|
||
|
const userInfo = res.data;
|
||
|
this.setData({ id: userInfo.id });
|
||
|
|
||
|
if (userInfo) {
|
||
|
my.request({
|
||
|
url: url + '/api/orders/my/page',
|
||
|
method: 'POST',
|
||
|
data: {
|
||
|
claimStatus: 0,
|
||
|
current: 1,
|
||
|
pageSize: 1000,
|
||
|
userId: userInfo.id,
|
||
|
userRole: 0,
|
||
|
},
|
||
|
headers: { 'content-type': 'application/json' },
|
||
|
dataType: 'json',
|
||
|
success: async (res) => {
|
||
|
console.log(res,'rwssss');
|
||
|
if (res.data.code === 0) {
|
||
|
// 生成包含 appointmentId 的订单列表
|
||
|
let orders = res.data.data.records.map(order => ({
|
||
|
id:order.id,
|
||
|
businessAvatar:order.businessVO.businessAvatar,
|
||
|
serviceMode: order.serviceMode,
|
||
|
businessName: order.businessVO.businessName || '未知店铺',
|
||
|
commoditiesImage: order.orderItemsVOList[0].commoditiesVO.commoditiesImage || '',
|
||
|
commoditiesName: order.orderItemsVOList[0].commoditiesVO.commoditiesName || '未知商品',
|
||
|
orderNumber: order.orderNumber,
|
||
|
totalPrice: order.totalPrice,
|
||
|
paymentStatus: order.paymentStatus,
|
||
|
status: '',
|
||
|
appointmentId: order.appointmentId,
|
||
|
phone:order.phone,
|
||
|
username:order.userName,
|
||
|
businessId:order.businessVO.id,
|
||
|
quantity:order.orderItemsVOList.quantity,
|
||
|
createTime:order.createTime
|
||
|
}));
|
||
|
|
||
|
this.setData({ dingdan: orders }); // 初始化订单列表
|
||
|
|
||
|
// 提取所有 appointmentId 并获取详情
|
||
|
const appointmentIds = res.data.data.records.map(order => order.appointmentId);
|
||
|
appointmentIds.forEach(id => {
|
||
|
this.fetchOrderDetail(id); // 逐个请求状态
|
||
|
});
|
||
|
|
||
|
} else if (res.data.code === 40100) {
|
||
|
my.alert({ content: '登录信息已过期,请重新登录' });
|
||
|
my.navigateTo({ url: '/pages/denglu/denglu' });
|
||
|
}
|
||
|
},
|
||
|
fail: (error) => {
|
||
|
console.error('请求失败: ', JSON.stringify(error));
|
||
|
my.alert({ content: '请求失败,请稍后重试' });
|
||
|
},
|
||
|
});
|
||
|
} else {
|
||
|
my.alert({
|
||
|
content: '您未登录,请先登录。',
|
||
|
success: () => my.navigateTo({ url: '/pages/denglu/denglu' }),
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
},
|
||
|
|
||
|
fetchOrderDetail(appointmentId) {
|
||
|
my.request({
|
||
|
url: url + '/api/appointments/getAppointments',
|
||
|
method: 'GET',
|
||
|
data: { appointmentsId: appointmentId }, // 使用正确的参数名
|
||
|
headers: { 'content-type': 'application/json' },
|
||
|
dataType: 'json',
|
||
|
success: (res) => {
|
||
|
if (res.data.code === 0) {
|
||
|
const status = res.data.data.status; // 根据实际接口返回调整
|
||
|
// 更新对应订单的 status
|
||
|
const updatedDingdan = this.data.dingdan.map(order => {
|
||
|
return order.appointmentId === appointmentId
|
||
|
? { ...order, status: status }
|
||
|
: order;
|
||
|
});
|
||
|
this.setData({ dingdan: updatedDingdan });
|
||
|
console.log(this.data.dingdan);
|
||
|
}
|
||
|
},
|
||
|
fail: (error) => {
|
||
|
console.error(`订单 ${appointmentId} 请求失败:`, JSON.stringify(error));
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
onSwipeChange(e) {
|
||
|
this.setData({
|
||
|
current: e.detail.current,
|
||
|
});
|
||
|
},
|
||
|
onChange(current) {
|
||
|
this.setData({
|
||
|
current,
|
||
|
});
|
||
|
},
|
||
|
handleChange(current) {
|
||
|
this.setData({
|
||
|
current,
|
||
|
});
|
||
|
},
|
||
|
onPlus() {
|
||
|
this.alert('plus');
|
||
|
},
|
||
|
alert(content) {
|
||
|
my.alert({
|
||
|
title: content,
|
||
|
});
|
||
|
},
|
||
|
getPaymentStatusText(status) {
|
||
|
const statusObj = this.paymentStatuses.find(item => item.paymentStatuses === status.toString());
|
||
|
return statusObj ? statusObj.statue : '未知状态'; // 如果找不到对应状态,返回 '未知状态'
|
||
|
},
|
||
|
quxiao(item){
|
||
|
const id = item.target.dataset.num
|
||
|
console.log(id);
|
||
|
const orderId = id.id
|
||
|
console.log(orderId,'zheshiorderid');
|
||
|
my.getStorage({
|
||
|
key: 'userInfo',
|
||
|
success: (res) => {
|
||
|
const userInfo = res.data;
|
||
|
this.setData({
|
||
|
id: userInfo.id, // 获取 id
|
||
|
});
|
||
|
|
||
|
if (userInfo && userInfo.cookie) {
|
||
|
my.request({
|
||
|
url: url + '/api/orders/cancel',
|
||
|
method: 'POST',
|
||
|
data: {
|
||
|
id:orderId,
|
||
|
userId: this.data.id
|
||
|
},
|
||
|
headers: {
|
||
|
'content-type': 'application/json',
|
||
|
'Cookie': userInfo.cookie,
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: (res) => {
|
||
|
if(res.data.code===0){
|
||
|
my.showToast({
|
||
|
content: '订单已取消',
|
||
|
});
|
||
|
this.onLoad()
|
||
|
}
|
||
|
else if(res.data.code===40100){
|
||
|
my.alert({
|
||
|
content: '登录信息已过期,请重新登录'
|
||
|
});
|
||
|
my.navigateTo({
|
||
|
url:'/pages/denglu/denglu'
|
||
|
})
|
||
|
}
|
||
|
console.log(res);
|
||
|
console.log(this.data.dingdan);
|
||
|
},
|
||
|
fail: (error) => {
|
||
|
console.error('请求失败: ', JSON.stringify(error));
|
||
|
my.alert({ content: '请求失败,请稍后重试' });
|
||
|
},
|
||
|
});
|
||
|
}
|
||
|
else {
|
||
|
my.alert({
|
||
|
content: '您未登录,请先登录。',
|
||
|
success: () => {
|
||
|
my.navigateTo({
|
||
|
url: '/pages/denglu/denglu',
|
||
|
});
|
||
|
},
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
console.log(orderId,this.data.id);
|
||
|
},
|
||
|
tuikuan(){
|
||
|
my.alert({
|
||
|
content:'退款申请已提交,等待商家同意'
|
||
|
})
|
||
|
},
|
||
|
pay(item){
|
||
|
console.log(item,'jashgdkhjashdkjashdkaskh');
|
||
|
const id = item.target.dataset.num
|
||
|
const ordernumber = id.orderNumber
|
||
|
const commoditiesName = id.commoditiesName
|
||
|
const commoditiesPrice = id.totalPrice
|
||
|
const quantity =id.quantity
|
||
|
const commoditiesImage =id.commoditiesImage
|
||
|
console.log(orderid,ordernumber,commoditiesName,commoditiesPrice);
|
||
|
const orderid = id.id
|
||
|
my.navigateTo({
|
||
|
url:`/pages/pay/pay?ordernumber=${ordernumber}
|
||
|
&&commoditiesName=${commoditiesName}
|
||
|
&&commoditiesPrice=${commoditiesPrice}
|
||
|
&&quantity=${quantity}&&commoditiesImage=${commoditiesImage}
|
||
|
&&orderid=${orderid}`
|
||
|
})
|
||
|
console.log(id,'id啊');
|
||
|
console.log(orderid,'orderid');
|
||
|
},
|
||
|
xiangqing(item){
|
||
|
const id = item.target.dataset.num
|
||
|
console.log(id,'xiangqing');
|
||
|
const ordernumber = id.orderNumber
|
||
|
const createTime = id.createTime
|
||
|
const phone = id.phone
|
||
|
const userName = id.username
|
||
|
const businessName =id.businessName
|
||
|
const commoditiesName = id.commoditiesName;
|
||
|
const commoditiesImage = id.commoditiesImage;
|
||
|
const commoditiesPrice = id.totalPrice;
|
||
|
const businessId = id.businessId
|
||
|
const statues =id.paymentStatus
|
||
|
console.log(statues,businessId,commoditiesPrice,commoditiesImage,commoditiesName,ordernumber,createTime,phone,userName,businessName);
|
||
|
my.navigateTo({
|
||
|
url:`/pages/dingdanxiangqing/dingdanxiangqing?ordernumber=${ordernumber}
|
||
|
&&createTime=${createTime}&&phone=${phone}&&userName=${userName}
|
||
|
&&businessName=${businessName}&&commoditiesName=${commoditiesName}&&commoditiesImage=${commoditiesImage}
|
||
|
&&commoditiesPrice=${commoditiesPrice}&&businessId=${businessId}
|
||
|
&&statues=${statues}`
|
||
|
})
|
||
|
},
|
||
|
// orderok(item){
|
||
|
// const id = item.target.dataset.num
|
||
|
// const orderId = id.id
|
||
|
// console.log(orderId,'okroderid');
|
||
|
// my.getStorage({
|
||
|
// key: 'userInfo',
|
||
|
// success: (res) => {
|
||
|
// const userInfo = res.data;
|
||
|
// this.setData({
|
||
|
// id: userInfo.id, // 获取 id
|
||
|
// });
|
||
|
|
||
|
// if (userInfo && userInfo.cookie) {
|
||
|
// my.request({
|
||
|
// url: url + '/api/orders/success',
|
||
|
// method: 'POST',
|
||
|
// data: {
|
||
|
// id:orderId,
|
||
|
// userId: this.data.id
|
||
|
// },
|
||
|
// headers: {
|
||
|
// 'content-type': 'application/json',
|
||
|
// 'Cookie': userInfo.cookie,
|
||
|
// },
|
||
|
// dataType: 'json',
|
||
|
// success: (res) => {
|
||
|
// if(res.data.code===0){
|
||
|
// my.showToast({
|
||
|
// content: '订单已完成',
|
||
|
// });
|
||
|
// this.onShow()
|
||
|
// }
|
||
|
// else if(res.data.code===40100){
|
||
|
// my.alert({
|
||
|
// content: '登录信息已过期,请重新登录'
|
||
|
// });
|
||
|
// my.navigateTo({
|
||
|
// url:'/pages/denglu/denglu'
|
||
|
// })
|
||
|
// }
|
||
|
// console.log(res);
|
||
|
// console.log(this.data.dingdan);
|
||
|
// },
|
||
|
// fail: (error) => {
|
||
|
// console.error('请求失败: ', JSON.stringify(error));
|
||
|
// my.alert({ content: '请求失败,请稍后重试' });
|
||
|
// },
|
||
|
// });
|
||
|
// }
|
||
|
// else {
|
||
|
// my.alert({
|
||
|
// content: '您未登录,请先登录。',
|
||
|
// success: () => {
|
||
|
// my.navigateTo({
|
||
|
// url: '/pages/denglu/denglu',
|
||
|
// });
|
||
|
// },
|
||
|
// });
|
||
|
// }
|
||
|
// },
|
||
|
// });
|
||
|
// console.log(orderId,this.data.id);
|
||
|
// }
|
||
|
|
||
|
});
|
||
|
|