This commit is contained in:
Ling53666
2025-08-18 09:11:51 +08:00
commit 02554225da
2516 changed files with 133155 additions and 0 deletions

View File

@ -0,0 +1,335 @@
import { url } from '../request';
Page({
data: {
current: 0,
businessName:'',
items: [
{
title: '全部',
},
{
title: '待支付',
},
{
title: '待使用',
},
{
title: '已完成',
},
{
title: '已取消',
},
{
title: '已退款',
},
],
dingdan:[],
paymentStatuses: [
{ paymentStatuses: '0', statue: '待支付' },
{ paymentStatuses: '1', statue: '待使用' },
{ paymentStatuses: '2', statue: '已取消' },
{ paymentStatuses: '3', statue: '已退款' },
{ paymentStatuses: '4', statue: '已完成' }
]
},
onShow() {
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.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);
},
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
const serviceMode = id.serviceMode
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}&&serviceMode=${serviceMode}`
})
},
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);
}
});