分佣:promoter-list 迁移
							parent
							
								
									b15fb02ecf
								
							
						
					
					
						commit
						27321bda16
					
				|  | @ -5,6 +5,11 @@ export function getBrokerageUserSummary() { | |||
|   return request.get('app-api/trade/brokerage-user/get-summary'); | ||||
| } | ||||
| 
 | ||||
| // 获得下级分销统计分页
 | ||||
| export function getBrokerageUserChildSummaryPage(data) { | ||||
|   return request.get('app-api/trade/brokerage-user/child-summary-page', data); | ||||
| } | ||||
| 
 | ||||
| // 获得分销用户排行分页(基于用户量)
 | ||||
| export function getBrokerageUserRankPageByUserCount(data) { | ||||
|   return request.get('app-api/trade/brokerage-user/rank-page-by-user-count', data); | ||||
|  |  | |||
|  | @ -5,50 +5,50 @@ | |||
| 				<view class='headerCon acea-row row-between'> | ||||
| 					<view> | ||||
| 						<view class='name'>推广人数</view> | ||||
| 						<view><text class='num'>{{peopleData.count}}</text>人</view> | ||||
| 						<view><text class='num'>{{peopleData.firstBrokerageUserCount + peopleData.secondBrokerageUserCount}}</text>人</view> | ||||
| 					</view> | ||||
| 					<view class='iconfont icon-tuandui'></view> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 			<view class="pad30"> | ||||
| 				<view class='nav acea-row row-around'> | ||||
| 					<view :class="grade == 0 ? 'item on' : 'item'" @click='setType(0)'>一级({{peopleData.total}})</view> | ||||
| 					<view :class="grade == 1 ? 'item on' : 'item'" @click='setType(1)'>二级({{peopleData.totalLevel}}) | ||||
| 					<view :class="level === 1 ? 'item on' : 'item'" @click='setType(1)'>一级({{peopleData.firstBrokerageUserCount}})</view> | ||||
| 					<view :class="level === 2 ? 'item on' : 'item'" @click='setType(2)'>二级({{peopleData.secondBrokerageUserCount}}) | ||||
| 					</view> | ||||
| 				</view> | ||||
| 				<view class='search acea-row row-between-wrapper'> | ||||
| 					<view class='input'><input placeholder='点击搜索会员名称' placeholder-class='placeholder' v-model="keyword" | ||||
| 					<view class='input'><input placeholder='点击搜索会员名称' placeholder-class='placeholder' v-model="nickname" | ||||
| 							@confirm="submitForm" confirm-type='search' name="search"></input></view> | ||||
| 					<button class='iconfont icon-sousuo2' @click="submitForm"></button> | ||||
| 				</view> | ||||
| 				<view class='list'> | ||||
| 					<view class="sortNav acea-row row-middle"> | ||||
| 						<view class="sortItem" @click='setSort("childCount","ASC")' v-if="sort == 'childCountDESC'">团队排序 | ||||
| 						<view class="sortItem" @click='setSort("userCount","asc")' v-if="sort === 'userCountDESC'">团队排序 | ||||
| 							<image src='/static/images/sort1.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("childCount")' v-else-if="sort == 'childCountASC'">团队排序 | ||||
| 						<view class="sortItem" @click='setSort("userCount", "desc")' v-else-if="sort === 'userCountASC'">团队排序 | ||||
| 							<image src='/static/images/sort3.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("childCount","DESC")' v-else>团队排序 | ||||
| 						<view class="sortItem" @click='setSort("userCount","desc")' v-else>团队排序 | ||||
| 							<image src='/static/images/sort2.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("numberCount","ASC")' v-if="sort == 'numberCountDESC'"> | ||||
| 						<view class="sortItem" @click='setSort("price","asc")' v-if="sort === 'priceDESC'"> | ||||
| 							金额排序 | ||||
| 							<image src='/static/images/sort1.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("numberCount")' v-else-if="sort == 'numberCountASC'">金额排序 | ||||
| 						<view class="sortItem" @click='setSort("price", "desc")' v-else-if="sort === 'priceASC'">金额排序 | ||||
| 							<image src='/static/images/sort3.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("numberCount","DESC")' v-else>金额排序 | ||||
| 						<view class="sortItem" @click='setSort("price","desc")' v-else>金额排序 | ||||
| 							<image src='/static/images/sort2.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("orderCount","ASC")' v-if="sort == 'orderCountDESC'">订单排序 | ||||
| 						<view class="sortItem" @click='setSort("orderCount","asc")' v-if="sort === 'orderCountDESC'">订单排序 | ||||
| 							<image src='/static/images/sort1.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("orderCount")' v-else-if="sort == 'orderCountASC'">订单排序 | ||||
| 						<view class="sortItem" @click='setSort("orderCount", "desc")' v-else-if="sort === 'orderCountASC'">订单排序 | ||||
| 							<image src='/static/images/sort3.png'></image> | ||||
| 						</view> | ||||
| 						<view class="sortItem" @click='setSort("orderCount","DESC")' v-else>订单排序 | ||||
| 						<view class="sortItem" @click='setSort("orderCount","desc")' v-else>订单排序 | ||||
| 							<image src='/static/images/sort2.png'></image> | ||||
| 						</view> | ||||
| 					</view> | ||||
|  | @ -60,83 +60,70 @@ | |||
| 								</view> | ||||
| 								<view class='text'> | ||||
| 									<view class='name line1'>{{item.nickname}}</view> | ||||
| 									<view>加入时间: {{item.time.split(' ')[0]}}</view> | ||||
| 									<view>加入时间: {{ formatDate(item.brokerageTime) }}</view> | ||||
| 								</view> | ||||
| 							</view> | ||||
| 							<view class="right"> | ||||
| 								<view><text class='num font-color'>{{item.childCount ? item.childCount : 0}}</text>人 | ||||
| 								<view><text class='num font-color'>{{ item.brokerageUserCount || 0}}</text>人 | ||||
| 								</view> | ||||
| 								<view><text class="num">{{item.orderCount ? item.orderCount : 0}}</text>单</view> | ||||
| 								<view><text class="num">{{item.numberCount ? item.numberCount : 0}}</text>元</view> | ||||
| 								<view><text class="num">{{ item.orderCount|| 0}}</text>单</view> | ||||
| 								<view><text class="num">{{ fen2yuan(item.brokeragePrice || 0) }}</text>元</view> | ||||
| 							</view> | ||||
| 						</view> | ||||
| 					</block> | ||||
| 					<Loading :loaded="status" :loading="loadingList"></Loading> | ||||
| 					<block v-if="recordList.length == 0 && isShow"> | ||||
| 					<block v-if="recordList.length === 0 && isShow"> | ||||
| 						<emptyPage title="暂无推广人数~"></emptyPage> | ||||
| 					</block> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 		</view> | ||||
| 		<!-- #ifdef MP --> | ||||
| 		<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> --> | ||||
| 		<!-- #endif --> | ||||
| 		<home></home> | ||||
| 	</view> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| 	import { | ||||
| 		spreadPeople, | ||||
| 		spreadPeoCount | ||||
| 	} from '@/api/user.js'; | ||||
| 	import { | ||||
| 		toLogin | ||||
| 	} from '@/libs/login.js'; | ||||
| 	import { | ||||
| 		mapGetters | ||||
| 	} from "vuex"; | ||||
| 	import { toLogin } from '@/libs/login.js'; | ||||
| 	import { mapGetters } from "vuex"; | ||||
| 	import emptyPage from '@/components/emptyPage.vue' | ||||
| 	import Loading from "@/components/Loading"; | ||||
| 	// #ifdef MP | ||||
| 	import authorize from '@/components/Authorize'; | ||||
| 	// #endif | ||||
| 	import home from '@/components/home'; | ||||
| 	export default { | ||||
|   import * as BrokerageAPI from '@/api/trade/brokerage.js' | ||||
|   import * as Util from '@/utils/util.js'; | ||||
|   import dayjs from "@/plugin/dayjs/dayjs.min.js"; | ||||
|   export default { | ||||
| 		components: { | ||||
| 			Loading, | ||||
| 			emptyPage, | ||||
| 			// #ifdef MP | ||||
| 			authorize, | ||||
| 			// #endif | ||||
| 			home | ||||
| 		}, | ||||
| 		data() { | ||||
| 			return { | ||||
| 				page: 1, | ||||
|         peopleData: { | ||||
|           firstBrokerageUserCount: 0, | ||||
|           secondBrokerageUserCount: 0 | ||||
|         }, | ||||
| 
 | ||||
|         recordList: [], | ||||
|         page: 1, | ||||
| 				limit: 20, | ||||
| 				keyword: '', | ||||
| 				sort: '', | ||||
| 				isAsc: '', | ||||
| 				sortKey: '', | ||||
| 				grade: 0, | ||||
| 				nickname: '', | ||||
| 				isAsc: 'desc', | ||||
| 				sortKey: 'userCount', | ||||
|         sort: 'userCountDESC', | ||||
|         level: 1, | ||||
| 				status: false, | ||||
| 				loadingList: false, | ||||
| 				recordList: [], | ||||
| 				peopleData: {}, | ||||
| 				isShow: false, | ||||
| 				isAuto: false, //没有授权的不会自动授权 | ||||
| 				isShowAuth: false //是否隐藏授权 | ||||
| 			}; | ||||
| 		}, | ||||
| 		computed: mapGetters(['isLogin']), | ||||
| 		onLoad() { | ||||
| 			if (this.isLogin) { | ||||
| 				this.userSpreadNewList(); | ||||
| 				this.spreadPeoCount(); | ||||
| 			} else { | ||||
| 				toLogin(); | ||||
| 			if (!this.isLogin) { | ||||
|         toLogin(); | ||||
|         return; | ||||
| 			} | ||||
|       this.userSpreadNewList(); | ||||
|       this.spreadPeoCount(); | ||||
| 		}, | ||||
| 		onShow: function() { | ||||
| 			if (this.is_show) this.userSpreadNewList(); | ||||
|  | @ -145,23 +132,15 @@ | |||
| 			this.is_show = true; | ||||
| 		}, | ||||
| 		methods: { | ||||
| 			onLoadFun: function(e) { | ||||
| 				this.userSpreadNewList(); | ||||
| 			}, | ||||
| 			// 授权关闭 | ||||
| 			authColse: function(e) { | ||||
| 				this.isShowAuth = e | ||||
| 			}, | ||||
| 			setSort: function(sortKey, isAsc) { | ||||
| 				let that = this; | ||||
| 				that.isAsc = isAsc; | ||||
| 				that.sort = sortKey + isAsc; | ||||
| 				that.sortKey = sortKey; | ||||
| 				that.page = 1; | ||||
| 				that.limit = 20; | ||||
| 				that.status = false; | ||||
| 				that.$set(that, 'recordList', []); | ||||
| 				that.userSpreadNewList(); | ||||
| 				this.isAsc = isAsc; | ||||
| 				this.sort = sortKey + isAsc.toUpperCase(); | ||||
| 				this.sortKey = sortKey; | ||||
| 				this.page = 1; | ||||
| 				this.limit = 20; | ||||
| 				this.status = false; | ||||
| 				this.$set(this, 'recordList', []); | ||||
| 				this.userSpreadNewList(); | ||||
| 			}, | ||||
| 			submitForm: function() { | ||||
| 				this.page = 1; | ||||
|  | @ -171,14 +150,12 @@ | |||
| 				this.userSpreadNewList(); | ||||
| 			}, | ||||
| 
 | ||||
| 			setType: function(grade) { | ||||
| 				if (this.grade != grade) { | ||||
| 					this.grade = grade; | ||||
| 			setType: function(level) { | ||||
| 				if (this.level !== level) { | ||||
| 					this.level = level; | ||||
| 					this.page = 1; | ||||
| 					this.limit = 20; | ||||
| 					this.keyword = ''; | ||||
| 					this.sort = ''; | ||||
| 					this.isAsc = ''; | ||||
| 					this.nickname = ''; | ||||
| 					this.status = false; | ||||
| 					this.loadingList = false; | ||||
| 					this.$set(this, 'recordList', []); | ||||
|  | @ -186,41 +163,45 @@ | |||
| 				} | ||||
| 			}, | ||||
| 			spreadPeoCount() { | ||||
| 				spreadPeoCount().then(res => { | ||||
|         BrokerageAPI.getBrokerageUserSummary().then(res => { | ||||
| 					this.peopleData = res.data; | ||||
| 				}); | ||||
| 			}, | ||||
| 			userSpreadNewList: function() { | ||||
| 				let that = this; | ||||
| 				let page = that.page; | ||||
| 				let limit = that.limit; | ||||
| 				let status = that.status; | ||||
| 				let keyword = that.keyword; | ||||
| 				let isAsc = that.isAsc; | ||||
| 				let sortKey = that.sortKey; | ||||
| 				let grade = that.grade; | ||||
| 				let recordList = that.recordList; | ||||
| 				let page = this.page; | ||||
| 				let limit = this.limit; | ||||
| 				let status = this.status; | ||||
|  				let recordList = this.recordList; | ||||
| 				let recordListNew = []; | ||||
| 				if (that.loadingList) return; | ||||
| 				if (status == true) return; | ||||
| 				spreadPeople({ | ||||
| 					page: page, | ||||
| 					limit: limit, | ||||
| 					keyword: keyword, | ||||
| 					grade: grade, | ||||
| 					sortKey: sortKey, | ||||
| 					isAsc: isAsc | ||||
| 				if (this.loadingList || status) { | ||||
|           return; | ||||
|         } | ||||
|         BrokerageAPI.getBrokerageUserChildSummaryPage({ | ||||
| 					pageNo: page, | ||||
| 					pageSize: limit, | ||||
| 					nickname: this.nickname, | ||||
| 					level: this.level, | ||||
| 					'sortingField.field': this.sortKey, | ||||
|           'sortingField.order': this.isAsc, | ||||
| 				}).then(res => { | ||||
| 					let recordListData = res.data.list ? res.data.list : []; | ||||
| 					let len = recordListData.length; | ||||
| 					recordListNew = recordList.concat(recordListData); | ||||
| 					that.status = limit > len; | ||||
| 					that.page = page + 1; | ||||
| 					that.$set(that, 'recordList', recordListNew || []); | ||||
| 					that.loadingList = false; | ||||
| 					if(that.recordList.length===0) that.isShow = true; | ||||
| 					this.status = limit > len; | ||||
| 					this.page = page + 1; | ||||
| 					this.$set(this, 'recordList', recordListNew || []); | ||||
| 					this.loadingList = false; | ||||
| 					if (this.recordList.length === 0) { | ||||
|             this.isShow = true; | ||||
|           } | ||||
| 				}); | ||||
| 			} | ||||
| 			}, | ||||
|       fen2yuan(price) { | ||||
|         return Util.fen2yuan(price) | ||||
|       }, | ||||
|       formatDate: function(date) { | ||||
|         return dayjs(date).format("YYYY-MM-DD HH:mm:ss"); | ||||
|       }, | ||||
| 		}, | ||||
| 		onReachBottom: function() { | ||||
| 			this.userSpreadNewList(); | ||||
|  |  | |||
|  | @ -11,21 +11,21 @@ | |||
| 					</view> | ||||
|           <!-- top3 排名 --> | ||||
| 					<view class="rank acea-row row-bottom row-around"> | ||||
| 						<view class="item" v-show="Two.userId"> | ||||
| 						<view class="item" v-show="Two.id"> | ||||
| 							<view class="pictrue"> | ||||
| 								<image :src="Two.avatar"></image> | ||||
| 							</view> | ||||
| 							<view class="name line1">{{Two.nickname}}</view> | ||||
| 							<view class="num">{{ Two.brokerageUserCount }}人</view> | ||||
| 						</view> | ||||
| 						<view class="item" v-show="One.userId"> | ||||
| 						<view class="item" v-show="One.id"> | ||||
| 							<view class="pictrue"> | ||||
| 								<image :src="One.avatar"></image> | ||||
| 							</view> | ||||
| 							<view class="name line1">{{One.nickname}}</view> | ||||
| 							<view class="num">{{ One.brokerageUserCount }}人</view> | ||||
| 						</view> | ||||
| 						<view class="item" v-show="Three.userId"> | ||||
| 						<view class="item" v-show="Three.id"> | ||||
| 							<view class="pictrue"> | ||||
| 								<image :src="Three.avatar"></image> | ||||
| 							</view> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 YunaiV
						YunaiV