You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
hezhiying/pages/fenxiao/fansOrder.vue

308 lines
6.0 KiB

<template>
<view class="page">
<view class="totalContent">
<view class="totalitem">
<view class="price">
<text></text>
<text class="num">{{info.total_fans_order_amount}}</text>
</view>
<view class="descText">
订单总金额
</view>
</view>
<view class="totalitem" style="border-left:1px solid #fff;">
<view class="price">
<text class="num">{{info.today_fans_order_num}}</text>
</view>
<view class="descText">
订单数
</view>
</view>
</view>
<!-- -->
<view class="order-list">
<view class="list" v-for="(item,index) in tableData" :key="index">
<view class="title-status">
<view class="title">
<text>订单号{{item.order_sn}}</text>
</view>
<view class="status">
<text>{{getstatusLabel(item.status)}}</text>
<!-- <text>{{item.status==0?'付款确认':item.status==1?'收款确认':item.status==3?'投诉':''}}</text> -->
</view>
</view>
<view class="goods-list">
<view class="goods">
<view class="thumb">
<image :src="item.order_goods[0]?item.order_goods[0].goods_image:''" mode="aspectFit"></image>
</view>
<view class="item">
<view class="goods-name">
<text class="two-omit">{{item.order_goods[0]?item.order_goods[0].goods_name:''}}</text>
</view>
<view class="priceBox">
<view class="goods-price">
<text class="min">{{item.order_goods[0]?item.order_goods[0].goods_price:''}}</text>
</view>
<view class="yongjin">
佣金{{item.commission_amount}}
</view>
</view>
</view>
</view>
</view>
<view class="status-btn">
<view class="btn">
<text>归属人{{item.seller.nickname}}</text>
</view>
<view class="btn">
<text>购买人{{item.buyer.nickname}}</text>
</view>
</view>
</view>
</view>
<view class="empty" v-show="tableData.length==0">
<image src="../../static/image/mescroll-empty.png" mode="widthFix"></image>
<view class="emptyText">
暂无数据
</view>
</view>
</view>
</template>
<script>
import {getUserFansOrderStatistic,getUserFansOrderList} from '@/common/api.js'
export default {
data() {
return {
info:{
today_fans_order_num:0,
total_fans_order_amount:0
},
page:1,
limit:10,
tableData:[],
total:0,
statusList:[
{id:0,name:'待支付'},
{id:1,name:'待确认'},
{id:2,name:'待委托'},
{id:3,name:'已投诉'},
{id:4,name:'待发货'},
{id:5,name:'待收货'},
{id:-1,name:'已取消'},
{id:7,name:'已上架'},
]
};
},
methods:{
getInfo(){
getUserFansOrderStatistic().then(res=>{
this.info = Object.assign({},this.info,res.data)
})
},
getList(val){
let params={
page:this.page,
limit:this.limit,
}
getUserFansOrderList(params).then(res=>{
if(val){
this.tableData.push(...res.data.data)
}else{
this.tableData = res.data.data;
this.total = res.data.total
}
})
},
getstatusLabel(val){
let arr = this.statusList.filter(item=>{
return item.id==val;
})
if(arr.length>0){
return arr[0].name
}else{
return '-'
}
},
},
onReachBottom() {
if(this.tableData.length<this.total){
this.page++;
this.getList('over')
}
},
mounted(){
this.getInfo()
this.getList()
}
}
</script>
<style scoped lang="scss">
.page{
padding-bottom:30rpx;
}
.totalContent{
height: 160rpx;
background: url('../../static/image/total-bg.png');
background-size: cover;
background-repeat: no-repeat;
border-radius: 6px;
overflow: hidden;
position: relative;
// width:94%;
// margin:20rpx auto 0 auto;
display: flex;
padding:40rpx 0;
margin:20rpx 24rpx;
.totalitem{
flex:1;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
.price{
display: flex;
align-items: center;
justify-content: center;
text{
font-size: 30rpx;
color:#fff;
}
.num{
font-size: 48rpx;
}
}
.descText{
text-align: center;
font-size: 28rpx;
color:#fff;
}
}
}
.empty{
text-align: center;
image{
width:50%;
height:auto
}
.emptyText{
text-align: center;
margin-top:20rpx;
color:#aaa;
}
}
/* 订单列表 */
.order-list{
margin: 10px 12px;
.list{
padding: 0 24rpx;
background-color: #FFFFFF;
border-radius: 20rpx;
margin-bottom: 20rpx;
.title-status{
display: flex;
align-items: center;
justify-content: space-between;
padding:20rpx 0;
.title{
display: flex;
align-items: center;
// padding:10rpx 0;
text{
font-size: 26rpx;
color: gray;
}
}
.status{
display: flex;
align-items: center;
text{
font-size: 26rpx;
color: $base;
}
}
}
.goods-list{
.goods{
display: flex;
align-items: center;
width: 100%;
height: 170rpx;
.thumb{
display: flex;
align-items: center;
width: 30%;
height: 100%;
image{
width: 160rpx;
height: 160rpx;
border-radius: 10rpx;
}
}
.item{
display: flex;
justify-content: space-between;
flex-direction: column;
padding: 10rpx 0;
height: 100%;
margin-left:20rpx;
width: 100%;
.goods-name{
text{
font-size: 26rpx;
color: #9f751f;
}
}
.priceBox{
display: flex;
align-items: center;
justify-content: space-between;
}
.goods-price{
display: flex;
align-items: center;
justify-content: space-between;
text{
color: #222222;
}
.min{
font-size: 26rpx;
}
}
.yongjin{
color:$base
}
}
}
}
.status-btn{
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
// height: 80rpx;
border-top:1px solid #eaeaea;
.btn{
padding: 15rpx 0rpx;
text{
font-size: 26rpx;
color: gray;
}
}
}
}
}
</style>