修复在订单列表页点击立即支付后在提交订单页没有自提点的bug
This commit is contained in:
parent
d2f6efbd3f
commit
6e28dc148e
419
packages/myOrders/groupOrders/index.vue
Normal file
419
packages/myOrders/groupOrders/index.vue
Normal file
@ -0,0 +1,419 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="tabs">
|
||||||
|
<view v-for="(item, index) in categoryList" :key="index"
|
||||||
|
:class="['tabItem', selectedTab === index ? 'active2' : '']" @click="selectTab(index, item)">
|
||||||
|
{{ item.category_name }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="content">
|
||||||
|
<view v-if="selectedTab === 6">
|
||||||
|
<awaitRated :orderData="orderData" />
|
||||||
|
</view>
|
||||||
|
<view v-else-if="selectedTab === 7">
|
||||||
|
<rated :orderData="orderData" />
|
||||||
|
</view>
|
||||||
|
<view v-else-if="selectedTab === 8">
|
||||||
|
<afterSale :afterSaleList="afterSaleList" @revokeApply="revokeApply" />
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
<view v-for="(item, index) in orderData" :key="index">
|
||||||
|
<view class="contentList">
|
||||||
|
<!-- 订单头部信息 -->
|
||||||
|
<view class="order-header" @click="toDetails(item)">
|
||||||
|
<view class="orderTitle">
|
||||||
|
<view class="orderTitleSupplier">{{ item.supplier_name }}
|
||||||
|
<view v-if="item.order_status == 6 || item.order_status == 5" class="status3">{{
|
||||||
|
getOrderStatus(item.order_status) }}</view>
|
||||||
|
<view v-else-if="item.order_status == 7" class="status2">
|
||||||
|
<img src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/myOrder/refund.png" />
|
||||||
|
{{ getOrderStatus(item.order_status) }}
|
||||||
|
</view>
|
||||||
|
<view v-else class="order_status">{{
|
||||||
|
getOrderStatus(item.order_status)
|
||||||
|
}}</view>
|
||||||
|
</view>
|
||||||
|
<text>提交订单:{{ item.order_time }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 商品列表 -->
|
||||||
|
<view class="goods-list" @click="toDetails(item)">
|
||||||
|
<view v-for="(goods, goodsIndex) in item.commodity_order_item_list" :key="goodsIndex" class="goods-item">
|
||||||
|
<image :src="goods.commodity_pic" class="goods-img"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 订单底部信息 -->
|
||||||
|
<view class="order-footer">
|
||||||
|
<view class="order-footer-text" @click="toDetails(item)">共{{ item.total_count }}件商品,共计
|
||||||
|
<text> {{ item.total_amount }}</text>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<view class="btn-group" v-if="item.order_status === 1">
|
||||||
|
<button class="cancel-btn" @click="cancelOrder(item)">
|
||||||
|
取消订单
|
||||||
|
</button>
|
||||||
|
<!-- <button class="yfd-btn" @click="cancelOrder">运费单</button> -->
|
||||||
|
<button class="pay-btn" @click="goToPay(item)">立即支付</button>
|
||||||
|
</view>
|
||||||
|
<view class="btn-group" v-if="item.order_status === 3">
|
||||||
|
<button class="cancel-btn" @click="applyRefund(item)">申请退款</button>
|
||||||
|
</view>
|
||||||
|
<view class="btn-group" v-if="item.order_status === 4">
|
||||||
|
<button class="cancel-btn" @click="viewLogistics(item)">查看物流</button>
|
||||||
|
<button class="pay-btn" @click="confirmReceiving(item)">确认收货</button>
|
||||||
|
</view>
|
||||||
|
<view class="btn-group" v-if="item.order_status === 5">
|
||||||
|
<text class="afterSaleNum">{{ item.commodity_order_item_list.length }}笔售后</text>
|
||||||
|
<button class="cancel-btn" @click="afterSale(item)">退换/售后</button>
|
||||||
|
<button class="pay-btn" @click="orderEvaluate(item)" :disabled="item.evauate_status === 1">评价</button>
|
||||||
|
</view>
|
||||||
|
<view class="btn-group" v-if="item.order_status === 6">
|
||||||
|
<!-- <button class="cancel-btn" @click="orderEvaluate">
|
||||||
|
服务评价
|
||||||
|
</button>
|
||||||
|
<button class="yfd-btn" @click="cancelOrder">运费单</button> -->
|
||||||
|
<button class="pay-btn" @click="goToPay(item)">再来一单</button>
|
||||||
|
</view>
|
||||||
|
<view class="btn-group" v-if="item.order_status === 7">
|
||||||
|
<button class="pay-btn" @click="goToPay(item)">再来一单</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!------------------ 以下为popup ------------------>
|
||||||
|
<!-- 取消订单 -->
|
||||||
|
<cancel-order-popup :showPopup.sync="showPopup" @orderCancelled="handleOrderCancelled" />
|
||||||
|
|
||||||
|
<!-- 申请退款 -->
|
||||||
|
<refund-popup :showPopup.sync="showTkPopup" @refundConfirmed="handleRefundConfirmed" />
|
||||||
|
|
||||||
|
<!-- 退换 售后 - 选择退款原因 -->
|
||||||
|
<!-- 售后弹窗组件 -->
|
||||||
|
<after-sale-popup :afterSaleGoods.sync="afterSaleGoods" :orderItem="afterSaleOrderItem" ref="afterSalePopupRef"
|
||||||
|
@refundSubmitted="handleRefundSubmitted" />
|
||||||
|
|
||||||
|
<!-- 无售后商品 -->
|
||||||
|
<view>
|
||||||
|
<u-popup ref="popup" mode="center" :show="noSalePopup" :round="15" :mask-close-able="false">
|
||||||
|
<view class="noSalePopup">
|
||||||
|
<view>抱歉该订单已无可申请售后的商品</view>
|
||||||
|
<button class="noSalePopup-btn" @click="noSalePopup = false">我知道了</button>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
isPhone,
|
||||||
|
picUrl,
|
||||||
|
request,
|
||||||
|
upload,
|
||||||
|
NavgateTo
|
||||||
|
} from '../../../utils';
|
||||||
|
import { apiArr as afterSaleApi } from "../../../api/afterSale";
|
||||||
|
import Rated from "../rated/rated.vue";
|
||||||
|
import AwaitRated from "../awaitRated/awaitRated.vue";
|
||||||
|
import AfterSale from "../afterSale/index.vue";
|
||||||
|
import cancelOrderPopup from '../index/popup/cancelOrder/cancelOrder.vue';
|
||||||
|
import refundPopup from '../index/popup/refund/refund.vue';
|
||||||
|
import afterSalePopup from '../index/popup/afterSale/index.vue';
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Rated,
|
||||||
|
AwaitRated,
|
||||||
|
AfterSale,
|
||||||
|
cancelOrderPopup,
|
||||||
|
refundPopup,
|
||||||
|
afterSalePopup
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
categoryList: [
|
||||||
|
{ category_name: "全部" },
|
||||||
|
{ category_name: "待付款" },
|
||||||
|
{ category_name: "已取消" },
|
||||||
|
{ category_name: "待发货" },
|
||||||
|
{ category_name: "配送中" },
|
||||||
|
{ category_name: "已完成" },
|
||||||
|
{ category_name: "待评价" },
|
||||||
|
{ category_name: "已评价" },
|
||||||
|
{ category_name: "售后" },
|
||||||
|
],
|
||||||
|
selectedTab: 0,
|
||||||
|
// orderData: orderMockData,
|
||||||
|
orderData: [],
|
||||||
|
|
||||||
|
showPopup: false,//取消订单
|
||||||
|
afterSaleGoods: [],//售后商品列表
|
||||||
|
afterSaleOrderItem: {},//售后订单对象
|
||||||
|
noSalePopup: false,//无售后商品
|
||||||
|
showTkPopup: false,//申请退款
|
||||||
|
afterSaleItem: '',//操作对象
|
||||||
|
afterSaleList: [],//售后列表
|
||||||
|
selectStatus: '',//选中的status
|
||||||
|
evaluateStatus: '',//评价状态
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
selectTab(index, item) {
|
||||||
|
this.selectedTab = index;
|
||||||
|
if (index == 6) {
|
||||||
|
this.evaluateStatus = 2;
|
||||||
|
this.selectStatus = ''
|
||||||
|
} else if (index == 7) {
|
||||||
|
this.evaluateStatus = 1;
|
||||||
|
this.selectStatus = ''
|
||||||
|
} else if (index == 2) {
|
||||||
|
this.selectStatus = 6;
|
||||||
|
this.evaluateStatus = ''
|
||||||
|
} else {
|
||||||
|
this.selectStatus = index;
|
||||||
|
this.evaluateStatus = ''
|
||||||
|
}
|
||||||
|
this.getOrderList();
|
||||||
|
},
|
||||||
|
// 取消订单
|
||||||
|
cancelOrder(item) {
|
||||||
|
this.afterSaleItem = item;
|
||||||
|
this.showPopup = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 处理订单取消事件
|
||||||
|
handleOrderCancelled(data) {
|
||||||
|
const params = {
|
||||||
|
order_id: this.afterSaleItem.id,
|
||||||
|
method: 1,
|
||||||
|
cancel_reason: data.reason,
|
||||||
|
}
|
||||||
|
request(afterSaleApi.cancelOrConfirm, "POST", params).then((res) => {
|
||||||
|
this.getOrderList();
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// 售后按钮
|
||||||
|
afterSale(item) {
|
||||||
|
this.afterSaleGoods = item.commodity_order_item_list;
|
||||||
|
// 保存完整的订单对象
|
||||||
|
this.afterSaleOrderItem = item;
|
||||||
|
this.$refs.afterSalePopupRef.openAfterSalePopup();
|
||||||
|
console.log(item.id);
|
||||||
|
|
||||||
|
// 根据条件判断是否可以售后
|
||||||
|
// request(afterSaleApi.isAllow, "POST", {
|
||||||
|
// order_id: item.id,
|
||||||
|
// }).then((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) {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
// request(afterSaleApi.afterSaleCreate, "POST", params).then((res) => {
|
||||||
|
// this.getOrderList();
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 申请退款
|
||||||
|
applyRefund(item) {
|
||||||
|
this.afterSaleItem = item;
|
||||||
|
this.showTkPopup = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查看物流
|
||||||
|
viewLogistics(item) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// 处理退款确认事件
|
||||||
|
handleRefundConfirmed(data) {
|
||||||
|
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,
|
||||||
|
order_status: 3
|
||||||
|
}
|
||||||
|
request(afterSaleApi.afterSaleCreate, "POST", params).then((res) => {
|
||||||
|
this.getOrderList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确认收货
|
||||||
|
confirmReceiving(item) {
|
||||||
|
uni.showModal({
|
||||||
|
title: "确认收货",
|
||||||
|
content: "确认收货后订单状态将变为【已完成】,如有售后需求可正常申请退款/售后,确定要确认收货吗?",
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
const params = {
|
||||||
|
order_id: item.id,
|
||||||
|
method: 2,
|
||||||
|
}
|
||||||
|
request(afterSaleApi.cancelOrConfirm, "POST", params).then((res) => {
|
||||||
|
this.getOrderList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
goToPay(item) {
|
||||||
|
// 创建转换后的商品数组
|
||||||
|
const transformedItems = item.commodity_order_item_list.map(goods => ({
|
||||||
|
checked: true,
|
||||||
|
commodity_goods_info: {
|
||||||
|
commodity_brief: "",
|
||||||
|
commodity_id: goods.commodity_id,
|
||||||
|
commodity_pic: goods.commodity_pic,
|
||||||
|
goods_alias: goods.goods_name,
|
||||||
|
goods_carousel: "",
|
||||||
|
goods_detail_pic: "",
|
||||||
|
goods_intro: goods.goods_name,
|
||||||
|
goods_name: goods.goods_name,
|
||||||
|
goods_no: "",
|
||||||
|
goods_spec: goods.goods_spec,
|
||||||
|
goods_status: 1,
|
||||||
|
goods_unit: goods.goods_unit,
|
||||||
|
goods_video: "",
|
||||||
|
group_buy_activity_info: null,
|
||||||
|
id: goods.id,
|
||||||
|
is_same_day: goods.is_same_day || false,
|
||||||
|
is_support_same_day: goods.is_support_same_day || 2,
|
||||||
|
market_price: goods.sales_price,
|
||||||
|
sales_price: goods.sales_price,
|
||||||
|
stock_quantity: goods.stock_quantity
|
||||||
|
},
|
||||||
|
commodity_id: goods.commodity_id,
|
||||||
|
count: goods.count,
|
||||||
|
create_time: item.create_time,
|
||||||
|
goods_id: goods.goods_id,
|
||||||
|
group_buy_id: 0,
|
||||||
|
id: goods.id,
|
||||||
|
supplier_id: item.supplier_id,
|
||||||
|
supplier_name: item.supplier_name,
|
||||||
|
update_time: item.update_time,
|
||||||
|
user_id: item.user_id
|
||||||
|
}));
|
||||||
|
|
||||||
|
NavgateTo(`/packages/shop/groupPurchaseSubmit/index?shopCarList=${JSON.stringify(transformedItems)}`)
|
||||||
|
},
|
||||||
|
toDetails(item) {
|
||||||
|
NavgateTo(
|
||||||
|
`/packages/myOrders/orderDetails/index?item=${JSON.stringify(item)}`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
checkLogistics() {
|
||||||
|
NavgateTo(`/packages/myOrders/logistics/index`);
|
||||||
|
},
|
||||||
|
|
||||||
|
orderEvaluate(item) {
|
||||||
|
NavgateTo(`/packages/myOrders/orderEvaluate/index?item=${JSON.stringify(item)}`);
|
||||||
|
},
|
||||||
|
|
||||||
|
getOrderStatus(order_status) {
|
||||||
|
switch (order_status) {
|
||||||
|
case 1:
|
||||||
|
return "待付款";
|
||||||
|
case 2:
|
||||||
|
return "支付中";
|
||||||
|
case 3:
|
||||||
|
return "待发货";
|
||||||
|
case 4:
|
||||||
|
return "配送中";
|
||||||
|
case 5:
|
||||||
|
return "已完成";
|
||||||
|
case 6:
|
||||||
|
return "已取消";
|
||||||
|
case 7:
|
||||||
|
return "退款中";
|
||||||
|
case 8:
|
||||||
|
return "已退款";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getOrderList() {
|
||||||
|
this.orderData = []
|
||||||
|
request(afterSaleApi.orderList, "POST", {
|
||||||
|
order_status: this.selectStatus,
|
||||||
|
evaluate_status: this.evaluateStatus,
|
||||||
|
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.filter(item => item.order_cate === 2);
|
||||||
|
this.getAfterSaleList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getAfterSaleList() {
|
||||||
|
const params = {
|
||||||
|
user_id: uni.getStorageSync('userId'),
|
||||||
|
}
|
||||||
|
request(afterSaleApi.afterSalesList, "POST", params).then((res) => {
|
||||||
|
res.after_sales_list?.forEach(item => {
|
||||||
|
item.commodity_order_item?.forEach(good => {
|
||||||
|
good.commodity_pic = picUrl + good.commodity_pic;
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.afterSaleList = res.after_sales_list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 处理订单撤销成功事件
|
||||||
|
revokeApply() {
|
||||||
|
this.getOrderList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(options) {
|
||||||
|
this.getOrderList();
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.getOrderList();
|
||||||
|
uni.removeStorageSync('afterSaleItem')
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
@ -300,7 +300,7 @@ export default {
|
|||||||
checked: true,
|
checked: true,
|
||||||
commodity_goods_info: {
|
commodity_goods_info: {
|
||||||
commodity_brief: "",
|
commodity_brief: "",
|
||||||
commodity_id: goods.goods_id,
|
commodity_id: goods.commodity_id,
|
||||||
commodity_pic: goods.commodity_pic,
|
commodity_pic: goods.commodity_pic,
|
||||||
goods_alias: goods.goods_name,
|
goods_alias: goods.goods_name,
|
||||||
goods_carousel: "",
|
goods_carousel: "",
|
||||||
@ -320,10 +320,10 @@ export default {
|
|||||||
sales_price: goods.sales_price,
|
sales_price: goods.sales_price,
|
||||||
stock_quantity: goods.stock_quantity
|
stock_quantity: goods.stock_quantity
|
||||||
},
|
},
|
||||||
commodity_id: goods.goods_id,
|
commodity_id: goods.commodity_id,
|
||||||
count: goods.count,
|
count: goods.count,
|
||||||
create_time: item.create_time,
|
create_time: item.create_time,
|
||||||
goods_id: goods.id,
|
goods_id: goods.goods_id,
|
||||||
group_buy_id: 0,
|
group_buy_id: 0,
|
||||||
id: goods.id,
|
id: goods.id,
|
||||||
supplier_id: item.supplier_id,
|
supplier_id: item.supplier_id,
|
||||||
@ -381,7 +381,7 @@ export default {
|
|||||||
good.commodity_pic = picUrl + good.commodity_pic;
|
good.commodity_pic = picUrl + good.commodity_pic;
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.orderData = res.order_list;
|
this.orderData = res.order_list.filter(item => item.order_cate == 1);
|
||||||
this.getAfterSaleList();
|
this.getAfterSaleList();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user