小程序云开发在已完成的订单列表点击某一个订单的评价按钮,跳转到评价页面,填写评价后返回订单列表,已评价的订单的评价按钮不显示,查看评价按钮显示的示例代码
时间: 2024-05-13 07:16:13 浏览: 114
以下是一个简单的示例代码,假设你的订单数据存在一个名为`orders`的集合中,评价数据存在一个名为`evaluations`的集合中:
```js
Page({
data: {
orders: [], // 订单列表
},
// 页面加载时获取订单数据
onLoad() {
this.getOrders();
},
// 获取订单数据
getOrders() {
wx.cloud.callFunction({
name: 'getOrders',
success: res => {
this.setData({
orders: res.result.data
});
},
fail: err => {
console.error('获取订单数据失败:', err);
}
});
},
// 点击评价按钮跳转到评价页面
onEvaluate(e) {
const orderId = e.currentTarget.dataset.orderId;
wx.navigateTo({
url: `/pages/evaluate/evaluate?orderId=${orderId}`,
});
},
// 更新订单列表中已评价订单的状态
updateOrders() {
wx.cloud.callFunction({
name: 'getEvaluations',
success: res => {
const evaluations = res.result.data;
const orders = this.data.orders.map(order => {
const evaluation = evaluations.find(e => e.orderId === order._id);
if (evaluation) {
order.evaluated = true;
}
return order;
});
this.setData({
orders: orders
});
},
fail: err => {
console.error('获取评价数据失败:', err);
}
});
},
// 页面显示时更新订单列表
onShow() {
this.updateOrders();
}
});
```
在以上示例代码中,我们通过`getOrders`和`getEvaluations`云函数分别获取订单和评价数据。在`onEvaluate`函数中,我们通过`navigateTo`跳转到评价页面,并传递订单ID作为参数。在评价成功后,我们需要更新订单列表中已评价订单的状态,以便在页面显示时隐藏评价按钮。为此,我们在`updateOrders`函数中,通过`getEvaluations`云函数获取所有评价数据,并根据订单ID更新订单列表中已评价订单的状态。最后,在`onShow`函数中调用`updateOrders`函数以便在页面显示时更新订单列表。
阅读全文