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.
 
 
 
 
 

282 lines
7.1 KiB

<template>
<view :style="colorStyle">
<view class="promoter-order">
<view class='promoterHeader bg-color'>
<view class='headerCon acea-row row-between-wrapper'>
<view>
<view class='name'>{{$t(`累计推广订单`)}}</view>
<view><text class='num'>{{count || 0}}</text>{{$t(``)}}</view>
</view>
<view class='iconfont icon-2'></view>
</view>
</view>
<view class='list' v-if="recordList.length>0">
<block v-for="(item,index) in recordList" :key="index">
<view class='item'>
<view class='title acea-row row-column row-center'>
<view class='data'>{{item.time}}</view>
<view>{{$t(`本月累计推广订单`)}}:{{item.count || 0}}{{$t(`单`)}}</view>
</view>
<view class='listn'>
<block v-for="(child,indexn) in item.child" :key="indexn">
<view class='itenm'>
<view class='top acea-row row-between-wrapper'>
<view class='pictxt acea-row row-between-wrapper'>
<view class='pictrue'>
<image :src='child.avatar'></image>
</view>
<view class='text line1'>{{child.nickname}}</view>
</view>
<view class='money' v-if="child.type == 'brokerage'">{{$t(`返佣`)}}:<text
class='font-color'>{{$t(`¥`)}}{{child.number}}</text></view>
<view class='money' v-else>{{$t(`暂未返佣`)}}:<text
class='font-color'>{{$t(`¥`)}}{{child.number}}</text></view>
</view>
<view class='bottom'>
<view><text class='name'>{{$t(`订单编号`)}}:</text>{{child.order_id}}</view>
<view><text class='name'>{{$t(`下单时间`)}}:</text>{{child.time}}</view>
<view class="more" v-if="child.children && child.children.length"
@click="open(child)">
{{child.open?$t(`收起`):$t(`更多`)}}
<text class="iconfont"
:class="child.open?'icon-xiangshang':'icon-xiangxia'"></text>
</view>
</view>
<view class="more-record" v-if="child.open">
<view class="more-record-list" v-for="(sp,indexs) in child.children"
:key="indexs">
<view class="more-record-box">
<view><text class='name'>{{$t(`单号`)}}</text>{{sp.order_id}}</view>
<view class='money' v-if="sp.type == 'brokerage'">{{$t(`返佣`)}}:<text
class='font-color'>{{$t(`¥`)}}{{sp.number}}</text></view>
<view class='money' v-else>{{$t(`暂未返佣`)}}:<text
class='font-color'>{{$t(`¥`)}}{{sp.number}}</text></view>
</view>
</view>
</view>
</view>
</block>
</view>
</view>
</block>
</view>
<view v-if="recordList.length == 0">
<emptyPage :title="$t(`暂无推广订单~`)"></emptyPage>
</view>
</view>
<!-- #ifdef MP -->
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
<!-- #endif -->
<!-- #ifndef MP -->
<home></home>
<!-- #endif -->
</view>
</template>
<script>
import {
spreadOrder,
divisionOrder
} from '@/api/user.js';
import {
toLogin
} from '@/libs/login.js';
import {
mapGetters
} from "vuex";
// #ifdef MP
import authorize from '@/components/Authorize';
// #endif
import emptyPage from '@/components/emptyPage.vue'
import home from '@/components/home';
import colors from '@/mixins/color.js';
export default {
components: {
// #ifdef MP
authorize,
// #endif
emptyPage,
home
},
mixins: [colors],
data() {
return {
page: 1,
limit: 8,
status: false,
recordList: [],
times: [],
recordCount: 0,
count: 0,
orderType: 0,
isAuto: false, //没有授权的不会自动授权
isShowAuth: false //是否隐藏授权
};
},
computed: mapGetters(['isLogin']),
onLoad(options) {
if (this.isLogin) {
this.orderType = options.type || 0
this.getRecordOrderList(options.type);
} else {
toLogin();
}
},
methods: {
open(item) {
item.open = !item.open
},
onLoadFun() {
this.getRecordOrderList();
},
// 授权关闭
authColse: function(e) {
this.isShowAuth = e
},
getRecordOrderList() {
let that = this;
let page = that.page;
let limit = that.limit;
let status = that.status;
if (status == true) return;
let fun
if (this.orderType) {
fun = divisionOrder
uni.setNavigationBarTitle({
title: that.$t(`推广订单列表`)
})
} else {
fun = spreadOrder
}
fun({
page: page,
limit: limit
}).then(res => {
for (let i = 0; i < res.data.time.length; i++) {
if (!this.times.includes(res.data.time[i].time)) {
this.times.push(res.data.time[i].time)
this.recordList.push({
time: res.data.time[i].time,
count: res.data.time[i].count,
child: []
})
}
}
for (let x = 0; x < this.times.length; x++) {
for (let j = 0; j < res.data.list.length; j++) {
if (this.times[x] === res.data.list[j].time_key) {
res.data.list[j].open = false
this.recordList[x].child.push(res.data.list[j])
}
}
}
that.count = res.data.count || 0;
that.status = res.data.list.length < 8;
that.page += 1;
});
}
},
onReachBottom() {
this.getRecordOrderList();
}
}
</script>
<style scoped lang="scss">
.promoter-order .list .item .title {
height: 133rpx;
padding: 0 30rpx;
font-size: 26rpx;
color: #999;
}
.promoter-order .list .item .title .data {
font-size: 28rpx;
color: #282828;
margin-bottom: 5rpx;
}
.promoter-order .list .item .listn .itenm {
background-color: #fff;
// margin: 0 $uni-index-margin-row;
border-radius: 8rpx;
.more-record {
color: #999;
font-size: 24rpx;
.more-record-list {
padding: 20rpx 30rpx;
border-top: 1px solid #f2f2f2;
.more-record-box {
display: flex;
justify-content: space-between;
}
}
}
}
.promoter-order .list .item .listn .itenm~.itenm {
margin-top: 12rpx;
}
.promoter-order .list .item .listn .itenm .top {
margin-left: 30rpx;
padding-right: 30rpx;
border-bottom: 1rpx solid #eee;
height: 100rpx;
}
.promoter-order .list .item .listn .itenm .top .pictxt {
width: 320rpx;
}
.promoter-order .list .item .listn .itenm .top .pictxt .text {
width: 230rpx;
font-size: 30rpx;
color: #282828;
}
.promoter-order .list .item .listn .itenm .top .pictxt .pictrue {
width: 66rpx;
height: 66rpx;
}
.promoter-order .list .item .listn .itenm .top .pictxt .pictrue image {
width: 100%;
height: 100%;
border-radius: 50%;
border: 3rpx solid #fff;
box-sizing: border-box;
box-shadow: 0 0 15rpx #aaa;
}
.promoter-order .list .item .listn .itenm .top .money {
font-size: 28rpx;
}
.promoter-order .list .item .listn .itenm .bottom {
padding: 20rpx 30rpx;
font-size: 28rpx;
color: #666;
line-height: 1.6;
position: relative;
.more {
font-size: 24rpx;
position: absolute;
right: 12rpx;
bottom: 24rpx;
.iconfont {
font-size: 22rpx;
margin-left: 5rpx;
}
}
}
.promoter-order .list .item .listn .itenm .bottom .name {
color: #999;
}
</style>