diff --git a/api/afterSale.js b/api/afterSale.js index e5af8f5c..a1440aca 100644 --- a/api/afterSale.js +++ b/api/afterSale.js @@ -1,5 +1,9 @@ export const apiArr = { + orderList: '/api/v2/wechat/commodity/order', // 商品订单列表 + afterSalesList: '/api/v2/wechat/commodity/after-sales/list', // 商品订单售后列表 afterSaleCreate: "/api/v2/wechat/commodity/after-sales/refund-info/create", //商品订单售后信息创建 cancelOrConfirm: "/api/v2/wechat/commodity/order/cancel_or_confirm", //商品订单确认收货或取消 isAllow: "/api/v2/wechat/commodity/after-sales/is-allow", //判断订单是否能申请售后 + revokeApply: "/api/v2/wechat/commodity/after-sales/revoke-apply", //撤销售后申请 + changeGoodsList: "/api/v2/wechat/commodity/after-sales/change-goods-list", //商品售后换货商品列表 }; diff --git a/api/order.js b/api/order.js deleted file mode 100644 index 3f115aee..00000000 --- a/api/order.js +++ /dev/null @@ -1,3 +0,0 @@ -export const apiArr = { - orderList: '/api/v2/wechat/commodity/order', // 商品订单列表 -} \ No newline at end of file diff --git a/packages/myOrders/afterSale/index.css b/packages/myOrders/afterSale/index.css index c39d0cb4..189d24df 100644 --- a/packages/myOrders/afterSale/index.css +++ b/packages/myOrders/afterSale/index.css @@ -93,8 +93,7 @@ .goods-desc { font-size: 26rpx; - color: #ff4d4f; - background-color: #fff2f0; + color: #999999; padding: 4rpx 12rpx; border-radius: 8rpx; display: inline-block; diff --git a/packages/myOrders/afterSale/index.vue b/packages/myOrders/afterSale/index.vue index dab0d27a..a0f4c871 100644 --- a/packages/myOrders/afterSale/index.vue +++ b/packages/myOrders/afterSale/index.vue @@ -5,9 +5,8 @@ - {{ item.commodity_order_item[0].goods_name || '衡水喜屏传媒有限公司' - }} - 退货退款 + {{ item.commodity_order_item[0].goods_name }} + {{ item.after_sales_type === 1 ? '退款' : (item.after_sales_type === 2 ? '退货瑞款' : '换货') }} 提交订单:{{ formatDate(item.create_time) }} @@ -22,7 +21,7 @@ {{ ite.goods_name }} 退款:¥{{ ite.sales_price }} - {{ ite.after_sales_reason }} + {{ ite.goods_spec }} ¥{{ ite.sales_price }}/个 x{{ ite.count }} @@ -43,7 +42,7 @@ - + @@ -53,6 +52,7 @@ diff --git a/packages/myOrders/index/index.css b/packages/myOrders/index/index.css index 0b5266dc..3260c051 100644 --- a/packages/myOrders/index/index.css +++ b/packages/myOrders/index/index.css @@ -1,6 +1,6 @@ page { background-color: #f6f7fb; - padding-bottom: 0; + padding-bottom: 50rpx; min-height: 100vh; } diff --git a/packages/myOrders/index/index.vue b/packages/myOrders/index/index.vue index 11254b31..d1c69045 100644 --- a/packages/myOrders/index/index.vue +++ b/packages/myOrders/index/index.vue @@ -5,7 +5,7 @@ :class="['tabItem', selectedTab === index ? 'active2' : '']" @click="selectTab(index, item)"> {{ item.category_name }} - + @@ -16,7 +16,7 @@ - + @@ -63,7 +63,7 @@ - {{item.commodity_order_item_list.length}}笔售后 + {{ item.commodity_order_item_list.length }}笔售后 @@ -93,7 +93,7 @@ - @@ -117,7 +117,6 @@ import { upload, NavgateTo } from '../../../utils'; -import { apiArr } from "../../../api/order"; import { apiArr as afterSaleApi } from "../../../api/afterSale"; import Rated from "../rated/rated.vue"; import AwaitRated from "../awaitRated/awaitRated.vue"; @@ -151,13 +150,16 @@ export default { { category_name: "售后" }, ], selectedTab: 0, - orderData: orderMockData, + // orderData: orderMockData, + orderData: [], showPopup: false,//取消订单 afterSaleGoods: [],//售后商品列表 + afterSaleOrderItem: {},//售后订单对象 noSalePopup: false,//无售后商品 showTkPopup: false,//申请退款 afterSaleItem: '',//操作对象 + afterSaleList: [],//售后列表 }; }, methods: { @@ -182,35 +184,58 @@ export default { cancel_reason: data.reason, } request(afterSaleApi.cancelOrConfirm, "POST", params).then((res) => { - console.log("🚀 ~ handleOrderCancelled ~ res:", res) + this.getOrderList(); }); }, // 售后按钮 afterSale(item) { + console.log("🚀 ~ afterSale ~ item:", item) this.afterSaleGoods = item.commodity_order_item_list; + // 保存完整的订单对象 + this.afterSaleOrderItem = item; this.$refs.afterSalePopupRef.openAfterSalePopup(); - console.log(item.id); + console.log(item.id); // 根据条件判断是否可以售后 - // request(afterSaleApi.isAllow, "POST", { - // order_id: item.id, - // }).then((res) => { - // console.log("🚀 ~ afterSale ~ res:", res) - // if (res.data.is_allow_after_sales) { - // this.afterSaleGoods = res.data.allow_items; - // // this.selectedAsGood = item.commodity_order_item_list[0].id; - // this.$refs.afterSalePopupRef.openAfterSalePopup(); - // } else { - // this.noSalePopup = true - // } - // }); + // request(afterSaleApi.isAllow, "POST", { + // order_id: item.id, + // }).then((res) => { + // console.log("🚀 ~ afterSale ~ res:", res) + // if (res.data.is_allow_after_sales) { + // this.afterSaleGoods = res.data.allow_items; + // // this.selectedAsGood = item.commodity_order_item_list[0].id; + // this.$refs.afterSalePopupRef.openAfterSalePopup(); + // } else { + // this.noSalePopup = true + // } + // }); }, // 处理退款提交事件 handleRefundSubmitted(data) { + console.log("🚀 ~ handleRefundSubmitted ~ handleRefundSubmitted:", this.afterSaleOrderItem) console.log("🚀 ~ handleRefundSubmitted ~ 退款申请提交成功:", data); + const params = { + nick_name: uni.getStorageSync("nickName"), + order_id: this.afterSaleOrderItem.id, + goods_ids: this.afterSaleOrderItem.commodity_order_item_list.map(item => item.goods_id), + after_sales_type: data.afterSalesType, + after_sales_reason: data.refundReason, + refund_amount: this.afterSaleOrderItem.total_amount, + application_description: data.refundDescription, + // 将图片对象数组转换为字符串数组,多个URL用逗号分隔 + application_images: data.imgList && data.imgList.length > 0 ? + data.imgList.map(img => img.url).join(',') : '', + order_status: 5, + receiving_address: data.merchantAddress, + change_goods_id: data.changeServiceId + } + console.log("🚀 ~ handleRefundConfirmed ~ parasm:", params) + // request(afterSaleApi.afterSaleCreate, "POST", params).then((res) => { + // this.getOrderList(); + // }); }, @@ -219,11 +244,11 @@ export default { this.afterSaleItem = item; this.showTkPopup = true }, - - // 查看物流 - viewLogistics(item) { - - }, + + // 查看物流 + viewLogistics(item) { + + }, // 处理退款确认事件 handleRefundConfirmed(data) { @@ -232,6 +257,7 @@ export default { const params = { nick_name: uni.getStorageSync("nickName"), order_id: this.afterSaleItem.id, + goods_ids: this.afterSaleItem.commodity_order_item_list.map(item => item.goods_id), after_sales_type: 1, after_sales_reason: data.reason, refund_amount: this.afterSaleItem.total_amount, @@ -239,7 +265,7 @@ export default { } console.log("🚀 ~ handleRefundConfirmed ~ parasm:", params) request(afterSaleApi.afterSaleCreate, "POST", params).then((res) => { - console.log("🚀 ~ handleRefundConfirmed ~ res:", res) + this.getOrderList(); }); }, @@ -256,14 +282,14 @@ export default { } console.log("🚀 ~ confirmReceiving ~ params:", params) request(afterSaleApi.cancelOrConfirm, "POST", params).then((res) => { - console.log("🚀 ~ handleRefundConfirmed ~ res:", res) + this.getOrderList(); }); } }, }); }, goToPay(item) { - console.log(item); + console.log(item); }, toDetails(item) { NavgateTo( @@ -301,16 +327,39 @@ export default { }, getOrderList() { - request(apiArr.orderList, "POST", { + request(afterSaleApi.orderList, "POST", { + order_status: this.selectedTab, user_id: uni.getStorageSync("userId"), }).then((res) => { - // + res.order_list.forEach(item => { + item.commodity_order_item_list.forEach(good => { + good.commodity_pic = picUrl + good.commodity_pic; + }) + }) + this.orderData = res.order_list; }); }, + getAfterSaleList() { + const params = { + user_id: uni.getStorageSync('userId'), + } + request(afterSaleApi.afterSalesList, "POST", params).then((res) => { + res.after_sales_list.forEach(item => { + // 处理退货图片,多个URL用逗号分隔 + if (item.return_images) { + const images = item.return_images.split(','); + const processedImages = images.map(img => picUrl + img).join(','); + item.return_images = processedImages; + } + }) + this.afterSaleList = res.after_sales_list; + }); + } }, onLoad(options) { this.getOrderList(); + this.getAfterSaleList(); }, }; diff --git a/packages/myOrders/index/orderMockData.json b/packages/myOrders/index/orderMockData.json index cb00571d..b2c3f437 100644 --- a/packages/myOrders/index/orderMockData.json +++ b/packages/myOrders/index/orderMockData.json @@ -173,6 +173,8 @@ "create_time": "2024-08-22 14:50:33", "update_time": "2024-08-22 18:30:15", "after_sales_count": 1, + "supplier_address": "供应商收货地址", + "supplier_phone": "11111111111", "commodity_order_item_list": [ { "id": 50005, diff --git a/packages/myOrders/index/popup/afterSale/index.css b/packages/myOrders/index/popup/afterSale/index.css index fe396c60..da80b64c 100644 --- a/packages/myOrders/index/popup/afterSale/index.css +++ b/packages/myOrders/index/popup/afterSale/index.css @@ -427,7 +427,6 @@ } .itemSize { - width: 30%; font-size: 26rpx; color: #333; background: #F6F7FB; @@ -447,7 +446,6 @@ height: 100rpx; margin-right: 30rpx; border-radius: 20rpx; - border:1rpx solid red; } .itemSize_top{ diff --git a/packages/myOrders/index/popup/afterSale/index.vue b/packages/myOrders/index/popup/afterSale/index.vue index 025a6238..8fea2667 100644 --- a/packages/myOrders/index/popup/afterSale/index.vue +++ b/packages/myOrders/index/popup/afterSale/index.vue @@ -19,13 +19,14 @@ - + + 当日达 当日达 - {{ item.goods_name}} + {{ item.goods_name }} {{ item.goods_spec }} ¥{{ item.cost_price }}/个 @@ -50,7 +51,7 @@ @click="selectAfterSaleType2(0)"> 退货退款 退货 + @click="selectAfterSaleType2(1)">退款 @@ -79,7 +80,6 @@ 确认退款信息 服务类型* - {{ selectedServiceType || '请选择服务类型' }} @@ -173,20 +173,21 @@ 换货商品* - {{ changeServiceType || '请选择需要换的商品' }} + {{ changeServiceName || '请选择需要换的商品' }} - 高尚 - 15901518415 + {{ orderItem.receiving_name }} + {{ orderItem.receiving_phone }} - {{ merchantAddress }} + {{ orderItem.receiving_address }} - + @@ -215,13 +216,14 @@ 取消 - + - {{ changeName }} - ¥{{ changePrice }}/袋 + {{ currentGG.goods_name }} + ¥{{ currentGG.sales_price }}/{{ currentGG.goods_unit }} + - {{ item.goods_name }} {{ item.goods_spec }} / {{ item.goods_unit }} @@ -230,11 +232,23 @@