217 lines
6.6 KiB
Vue
217 lines
6.6 KiB
Vue
<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 === 5">
|
||
<awaitRated />
|
||
</view>
|
||
<view v-if="selectedTab === 6">
|
||
<rated />
|
||
</view>
|
||
<view v-else>
|
||
<view v-for="(item, index) in orderData" :key="index">
|
||
<view class="contentList">
|
||
<!-- 订单头部信息 -->
|
||
<view class="order-header" @click="toDetails(item.order_status)">
|
||
<text>提交订单:{{ item.order_time }}</text>
|
||
<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="http://localhost:8080/refund.png" />
|
||
{{ getOrderStatus(item.order_status) }}
|
||
</view>
|
||
<view v-else class="order_status">{{
|
||
getOrderStatus(item.order_status)
|
||
}}</view>
|
||
</view>
|
||
|
||
<!-- 商品列表 -->
|
||
<view class="goods-list" @click="toDetails(item.order_status)">
|
||
<view
|
||
v-for="(goods, goodsIndex) in item.commodity_order_item_list
|
||
.commodity_pic"
|
||
:key="goodsIndex"
|
||
class="goods-item"
|
||
>
|
||
<image :src="goods.image" class="goods-img"></image>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 订单底部信息 -->
|
||
<view class="order-footer">
|
||
<view
|
||
class="order-footer-text"
|
||
@click="toDetails(item.order_status)"
|
||
>共{{ 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">
|
||
取消订单
|
||
</button>
|
||
<button class="yfd-btn" @click="cancelOrder">运费单</button>
|
||
<button class="pay-btn" @click="goToPay">立即支付</button>
|
||
</view>
|
||
<view class="btn-group" v-if="item.order_status === 3">
|
||
<button class="yfd-btn" @click="cancelOrder">运费单</button>
|
||
</view>
|
||
<view class="btn-group" v-if="item.order_status === 6">
|
||
<button class="yfd-btn" @click="cancelOrder">运费单</button>
|
||
<button class="pay-btn" @click="cancelOrder">再来一单</button>
|
||
</view>
|
||
<view class="btn-group" v-if="item.order_status === 4">
|
||
<button class="cancel-btn" @click="checkLogistics">
|
||
查看物流
|
||
</button>
|
||
<button class="yfd-btn" @click="cancelOrder">运费单</button>
|
||
<button class="pay-btn" @click="cancelOrder">再来一单</button>
|
||
</view>
|
||
<view class="btn-group" v-if="item.order_status === 5">
|
||
<button class="cancel-btn" @click="orderEvaluate">
|
||
服务评价
|
||
</button>
|
||
<button class="yfd-btn" @click="cancelOrder">运费单</button>
|
||
<button class="pay-btn" @click="cancelOrder">再来一单</button>
|
||
</view>
|
||
<view class="btn-group" v-if="item.order_status === 7">
|
||
<button class="pay-btn" @click="cancelOrder">再来一单</button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
import { picUrl, NavgateTo, request } from "../../../utils";
|
||
import { apiArr } from "../../../api/order";
|
||
import Rated from "./rated.vue";
|
||
import AwaitRated from "./awaitRated.vue";
|
||
|
||
export default {
|
||
components: {
|
||
Rated,
|
||
AwaitRated,
|
||
},
|
||
data() {
|
||
return {
|
||
categoryList: [
|
||
{ category_name: "全部" },
|
||
{ category_name: "待付款" },
|
||
{ category_name: "待发货" },
|
||
{ category_name: "配送中" },
|
||
{ category_name: "已完成" },
|
||
{ category_name: "待评价" },
|
||
{ category_name: "已评价" },
|
||
],
|
||
selectedTab: 0,
|
||
orderData: [],
|
||
};
|
||
},
|
||
methods: {
|
||
selectTab(index, item) {
|
||
this.selectedTab = index;
|
||
if (index !== 6) {
|
||
this.getOrderList();
|
||
}
|
||
},
|
||
cancelOrder() {
|
||
// 取消订单逻辑
|
||
uni.showModal({
|
||
title: "提示",
|
||
content: "确定要取消订单吗?",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
// 调用取消订单API
|
||
}
|
||
},
|
||
});
|
||
},
|
||
goToPay() {
|
||
console.log("🚀 ~ goToPay ~ goToPay:", "去支付...");
|
||
},
|
||
toDetails(order_status) {
|
||
NavgateTo(
|
||
`/packages/myOrders/orderDetails/index?order_status=${order_status}`
|
||
);
|
||
},
|
||
|
||
checkLogistics() {
|
||
NavgateTo(`/packages/myOrders/logistics/index`);
|
||
},
|
||
|
||
orderEvaluate() {
|
||
NavgateTo(`/packages/myOrders/orderEvaluate/index`);
|
||
},
|
||
|
||
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() {
|
||
request(apiArr.orderList, "POST", {
|
||
user_id: uni.getStorageSync("userId"),
|
||
}).then((res) => {
|
||
const orderList = res.order_list || [];
|
||
let filteredData = orderList;
|
||
|
||
if (this.selectedTab !== 0) {
|
||
const statusMap = {
|
||
1: 1, // 待付款
|
||
2: 3, // 待发货
|
||
3: 4, // 配送中
|
||
4: 5, // 已完成
|
||
};
|
||
const targetStatus = statusMap[this.selectedTab];
|
||
if (targetStatus) {
|
||
filteredData = orderList.filter(
|
||
(item) => item.order_status === targetStatus
|
||
);
|
||
}
|
||
}
|
||
this.orderData = filteredData;
|
||
});
|
||
},
|
||
},
|
||
|
||
onLoad(options) {
|
||
this.getOrderList();
|
||
},
|
||
};
|
||
</script>
|
||
<style>
|
||
@import url("./index.css");
|
||
</style> |