From 685f7778725e2505edbd6e6d6c65d3a395a77072 Mon Sep 17 00:00:00 2001 From: huliyong <2783385703@qq.com> Date: Sat, 19 Apr 2025 13:20:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=A2=E5=8D=95):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=8F=96=E6=B6=88=E3=80=81=E8=AF=84=E4=BB=B7?= =?UTF-8?q?=E5=92=8C=E4=BC=B4=E5=AE=A0=E5=B8=88=E9=80=89=E6=8B=A9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增订单取消弹窗组件,支持用户取消订单并填写取消原因 - 添加订单评价页面,用户可对已完成订单进行星级评分和文字评价 - 新增伴宠师选择页面,用户可选择之前服务过的伴宠师 - 在订单详情页和订单列表页集成取消订单和评价订单功能 - 优化订单操作流程,提升用户体验 --- api/system/user.js | 9 - components/configPopup.vue | 55 +++ pages.json | 18 + pages_order/components/order/CancelOrderPopup.vue | 216 ++++++++++ .../components/order/CompanionSelectPopup.vue | 190 +++++++++ pages_order/order/companionSelect.vue | 434 +++++++++++++++++++++ pages_order/order/orderDetail.vue | 31 +- pages_order/order/orderList.vue | 41 +- pages_order/order/orderModify.vue | 407 +++++++++++++++++++ pages_order/order/orderReview.vue | 308 +++++++++++++++ 10 files changed, 1694 insertions(+), 15 deletions(-) create mode 100644 components/configPopup.vue create mode 100644 pages_order/components/order/CancelOrderPopup.vue create mode 100644 pages_order/components/order/CompanionSelectPopup.vue create mode 100644 pages_order/order/companionSelect.vue create mode 100644 pages_order/order/orderModify.vue create mode 100644 pages_order/order/orderReview.vue diff --git a/api/system/user.js b/api/system/user.js index ba8b040..c094c85 100644 --- a/api/system/user.js +++ b/api/system/user.js @@ -148,15 +148,6 @@ export function getPhoneNumber(data){ }) } -// 取消订单 -export function cancelOrder(orderId){ - return request({ - url: `/h5/order/cancel/${orderId}`, - method: 'post', - headers:{ "isToken":true} - }) -} - diff --git a/components/configPopup.vue b/components/configPopup.vue new file mode 100644 index 0000000..f05615d --- /dev/null +++ b/components/configPopup.vue @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 9f09f6b..84d90e2 100644 --- a/pages.json +++ b/pages.json @@ -375,6 +375,24 @@ "enablePullDownRefresh": false, "navigationBarTextStyle": "white" } + }, + { + "path": "order/orderReview", + "style": { + "navigationBarTitleText": "评价订单", + "navigationBarBackgroundColor": "#FFBF60", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } + }, + { + "path": "order/companionSelect", + "style": { + "navigationBarTitleText": "服务过的伴宠师", + "navigationBarBackgroundColor": "#FFBF60", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } } ] } diff --git a/pages_order/components/order/CancelOrderPopup.vue b/pages_order/components/order/CancelOrderPopup.vue new file mode 100644 index 0000000..c8f579e --- /dev/null +++ b/pages_order/components/order/CancelOrderPopup.vue @@ -0,0 +1,216 @@ + + + + + \ No newline at end of file diff --git a/pages_order/components/order/CompanionSelectPopup.vue b/pages_order/components/order/CompanionSelectPopup.vue new file mode 100644 index 0000000..5b9faec --- /dev/null +++ b/pages_order/components/order/CompanionSelectPopup.vue @@ -0,0 +1,190 @@ + + + + + \ No newline at end of file diff --git a/pages_order/order/companionSelect.vue b/pages_order/order/companionSelect.vue new file mode 100644 index 0000000..8fc07a9 --- /dev/null +++ b/pages_order/order/companionSelect.vue @@ -0,0 +1,434 @@ + + + + + \ No newline at end of file diff --git a/pages_order/order/orderDetail.vue b/pages_order/order/orderDetail.vue index 0e5a6aa..c850130 100644 --- a/pages_order/order/orderDetail.vue +++ b/pages_order/order/orderDetail.vue @@ -22,17 +22,26 @@ - + 取消订单 去付款 + + 评价订单 + 联系客服 + + + @@ -45,6 +54,7 @@ import ServiceItems from '@/pages_order/components/order/ServiceItems.vue' import ServiceRemarks from '@/pages_order/components/order/ServiceRemarks.vue' import OrderInfo from '@/pages_order/components/order/OrderInfo.vue' + import CancelOrderPopup from '@/pages_order/components/order/CancelOrderPopup.vue' import { getOrderList } from "@/api/system/user.js" import { getOpenIdKey } from '@/utils/auth' @@ -55,7 +65,8 @@ ServicePets, ServiceItems, ServiceRemarks, - OrderInfo + OrderInfo, + CancelOrderPopup }, data() { return { @@ -188,6 +199,17 @@ uni.navigateTo({ url: `/pages/details/order?id=${this.orderId}` }); + }, + + // 去评价 + goToReview() { + uni.navigateTo({ + url: `/pages_order/order/orderReview?id=${this.orderId}` + }); + }, + + // 处理取消订单 + handleCancelOrder() { } } } @@ -232,6 +254,11 @@ color: #FFFFFF; } + .review-btn { + background-color: #FFAA48; + color: #FFFFFF; + } + .contact-btn { background-color: #FFFFFF; color: #666; diff --git a/pages_order/order/orderList.vue b/pages_order/order/orderList.vue index 7ad13b3..89bd3af 100644 --- a/pages_order/order/orderList.vue +++ b/pages_order/order/orderList.vue @@ -65,12 +65,19 @@ + + 取消订单 + 查看详情 - + 去付款 + + 再来一单 + @@ -91,9 +98,19 @@ + + + + + + @@ -101,10 +118,14 @@ import Kefu from '@/pages/common/kefu.vue' import { getOrderList } from "@/api/system/user.js" import { getOpenIdKey } from '@/utils/auth' + import CancelOrderPopup from '@/pages_order/components/order/CancelOrderPopup.vue' + import CompanionSelectPopup from '@/pages_order/components/order/CompanionSelectPopup.vue' export default { components: { - Kefu + Kefu, + CancelOrderPopup, + CompanionSelectPopup, }, data() { return { @@ -122,11 +143,12 @@ hasMore: true, loading: false, refreshing: false, + currentOrder: null, // 示例数据,实际应从API获取 exampleData: [ { id: '1', - status: 'unpaid', + status: '0', statusText: '待付款', amount: '264', pets: [ @@ -175,6 +197,10 @@ this.refreshing = false; }); }, + + handleCancelOrder(){ + + }, // 加载更多 loadMore() { @@ -252,7 +278,14 @@ } }, 500); }); - } + }, + + // 处理再来一单 + handleReorder(order) { + this.currentOrder = order; + this.$refs.companionSelectPopup.open(); + }, + }, onLoad() { // 页面加载时获取订单列表 diff --git a/pages_order/order/orderModify.vue b/pages_order/order/orderModify.vue new file mode 100644 index 0000000..4fb89e8 --- /dev/null +++ b/pages_order/order/orderModify.vue @@ -0,0 +1,407 @@ + + + + + \ No newline at end of file diff --git a/pages_order/order/orderReview.vue b/pages_order/order/orderReview.vue new file mode 100644 index 0000000..ad381ae --- /dev/null +++ b/pages_order/order/orderReview.vue @@ -0,0 +1,308 @@ + + + + + \ No newline at end of file