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.
239 lines
8.1 KiB
239 lines
8.1 KiB
<template> |
|
<view class="promoter-list" ref="container"> |
|
<view class="header"> |
|
<view class="promoterHeader bg-color-red"> |
|
<view class="headerCon acea-row row-between-wrapper"> |
|
<view> |
|
<view class="name">推广人数</view> |
|
<view> |
|
<text class="num">{{ first + second||'0' }}</text> |
|
<text>人</text> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="nav acea-row row-around"> |
|
<view class="item" :class="screen.grade == 0 ? 'on' : ''" @click="checkGrade(0)">一级({{ first||'0' }})</view> |
|
<view class="item" :class="screen.grade == 1 ? 'on' : ''" @click="checkGrade(1)">二级({{ second||'0' }})</view> |
|
</view> |
|
<view class="search acea-row row-between-wrapper"> |
|
<form @submit.prevent="submitForm"> |
|
<view class="input"> |
|
<input placeholder="点击搜索会员名称" v-model="screen.keyword" /> |
|
<text class="iconfont icon-guanbi" @click="screen.keyword=''"></text> |
|
</view> |
|
</form> |
|
<view class="iconfont icon-sousuo2"></view> |
|
</view> |
|
</view> |
|
<view class="list"> |
|
<view class="sortNav acea-row row-middle" :class="fixedState === true ? 'on' : ''"> |
|
<view class="sortItem" @click="sort('childCount')"> |
|
团队排序 |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort1.png`" v-if="childCount == 1" /> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort2.png`" v-if="childCount == 2" /> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort3.png`" v-if="childCount == 3" /> |
|
</view> |
|
<view class="sortItem" @click="sort('numberCount')"> |
|
金额排序 |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort1.png`" v-if="numberCount == 1" /> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort2.png`" v-if="numberCount == 2" /> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort3.png`" v-if="numberCount == 3" /> |
|
</view> |
|
<view class="sortItem" @click="sort('orderCount')"> |
|
订单排序 |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort1.png`" v-if="orderCount == 1" /> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort2.png`" v-if="orderCount == 2" /> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/sort3.png`" v-if="orderCount == 3" /> |
|
</view> |
|
</view> |
|
<view :class="fixedState === true ? 'sortList' : ''"> |
|
<view class="item acea-row row-between-wrapper" v-for="(val, spreadListIndex) in spreadList" |
|
:key="spreadListIndex"> |
|
<view class="picTxt acea-row row-between-wrapper"> |
|
<view class="pictrue"> |
|
<image :src="val.avatar" /> |
|
</view> |
|
<view class="text"> |
|
<view class="name line1">{{ val.nickname }}</view> |
|
<view>加入时间: {{ val.time }}</view> |
|
</view> |
|
</view> |
|
<view class="right"> |
|
<view> |
|
<text class="font-color-red">{{ val.childCount }}</text>人 |
|
</view> |
|
<view>{{ val.orderCount }} 单</view> |
|
<view>{{ val.numberCount ? val.numberCount : 0 }} 元</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<Loading :loaded="loaded" :loading="loading"></Loading> |
|
</view> |
|
</template> |
|
<script> |
|
import { |
|
getSpreadUser |
|
} from "@/api/user"; |
|
import Loading from "@/components/Loading"; |
|
export default { |
|
name: "PromoterList", |
|
components: { |
|
Loading |
|
}, |
|
props: {}, |
|
data: function () { |
|
return { |
|
fixedState: false, |
|
screen: { |
|
page: 1, |
|
limit: 15, |
|
grade: 0, |
|
keyword: "", |
|
sort: "" |
|
}, |
|
childCount: 2, |
|
numberCount: 2, |
|
orderCount: 2, |
|
loaded: false, |
|
loading: false, |
|
spreadList: [], |
|
loadTitle: "", |
|
first: "", |
|
second: "" |
|
}; |
|
}, |
|
mounted: function () { |
|
this.getSpreadUsers(); |
|
}, |
|
onReachBottom() { |
|
!this.loading && this.getSpreadUsers(); |
|
}, |
|
watch: { |
|
"screen.sort": function () { |
|
this.screen.page = 0; |
|
this.loaded = false; |
|
this.loading = false; |
|
this.spreadList = []; |
|
this.getSpreadUsers(); |
|
} |
|
}, |
|
methods: { |
|
handleScroll: function () { |
|
// var scrollTop = |
|
// document.documentElement.scrollTop || document.body.scrollTop; |
|
// var offsetTop = document.querySelector(".header").clientHeight; |
|
// if (scrollTop >= offsetTop) { |
|
// this.fixedState = true; |
|
// } else { |
|
// this.fixedState = false; |
|
// } |
|
}, |
|
submitForm: function () { |
|
this.screen.page = 0; |
|
this.loaded = false; |
|
this.loading = false; |
|
this.spreadList = []; |
|
this.getSpreadUsers(); |
|
}, |
|
getSpreadUsers: function () { |
|
let that = this, |
|
screen = that.screen; |
|
if (that.loaded || that.loading) return; |
|
that.loading = true; |
|
getSpreadUser(screen).then( |
|
res => { |
|
that.loading = false; |
|
that.spreadList.push.apply(that.spreadList, res.data.list); |
|
that.loaded = res.data.list.length < that.screen.limit; //判断所有数据是否加载完成; |
|
that.loadTitle = that.loaded ? "人家是有底线的" : "上拉加载更多"; |
|
that.screen.page = that.screen.page + 1; |
|
that.first = res.data.total; |
|
that.second = res.data.totalLevel; |
|
}, |
|
err => { |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
}, |
|
300 |
|
); |
|
}, |
|
checkGrade: function (val) { |
|
if (val == this.screen.grade) return; |
|
else { |
|
this.screen.page = 1; |
|
this.screen.grade = val; |
|
this.loading = false; |
|
this.loaded = false; |
|
this.spreadList = []; |
|
this.getSpreadUsers(); |
|
} |
|
}, |
|
sort: function (types) { |
|
let that = this; |
|
switch (types) { |
|
case "childCount": |
|
if (that.childCount == 2) { |
|
that.childCount = 1; |
|
that.orderCount = 2; |
|
that.numberCount = 2; |
|
that.screen.sort = "childCount DESC"; |
|
} else if (that.childCount == 1) { |
|
that.childCount = 3; |
|
that.orderCount = 2; |
|
that.numberCount = 2; |
|
that.screen.sort = "childCount ASC"; |
|
} else if (that.childCount == 3) { |
|
that.childCount = 2; |
|
that.orderCount = 2; |
|
that.numberCount = 2; |
|
that.screen.sort = ""; |
|
} |
|
break; |
|
case "numberCount": |
|
if (that.numberCount == 2) { |
|
that.numberCount = 1; |
|
that.orderCount = 2; |
|
that.childCount = 2; |
|
that.screen.sort = "numberCount DESC"; |
|
} else if (that.numberCount == 1) { |
|
that.numberCount = 3; |
|
that.orderCount = 2; |
|
that.childCount = 2; |
|
that.screen.sort = "numberCount ASC"; |
|
} else if (that.numberCount == 3) { |
|
that.numberCount = 2; |
|
that.orderCount = 2; |
|
that.childCount = 2; |
|
that.screen.sort = ""; |
|
} |
|
break; |
|
case "orderCount": |
|
if (that.orderCount == 2) { |
|
that.orderCount = 1; |
|
that.numberCount = 2; |
|
that.childCount = 2; |
|
that.screen.sort = "orderCount DESC"; |
|
} else if (that.orderCount == 1) { |
|
that.orderCount = 3; |
|
that.numberCount = 2; |
|
that.childCount = 2; |
|
that.screen.sort = "orderCount ASC"; |
|
} else if (that.orderCount == 3) { |
|
that.orderCount = 2; |
|
that.numberCount = 2; |
|
that.childCount = 2; |
|
that.screen.sort = ""; |
|
} |
|
break; |
|
default: |
|
that.screen.sort = ""; |
|
} |
|
} |
|
} |
|
}; |
|
</script>
|
|
|