guhongwei 2 rokov pred
rodič
commit
926b60259b
1 zmenil súbory, kde vykonal 194 pridanie a 14 odobranie
  1. 194 14
      pagesMy/assets/index.vue

+ 194 - 14
pagesMy/assets/index.vue

@@ -10,12 +10,22 @@
 				</view>
 			</view>
 			<view class="two">
-				<view class="two_1" v-if="list&&list.length>0">
-					数据列表
-				</view>
-				<view class="two_2" v-else>
-					已加载完全部
-				</view>
+				<scroll-view scroll-y="true" class="scroll-view" @scrolltolower="toPage" @scroll="toScroll">
+					<view class="list-scroll-view">
+						<view class="list" v-for="(item, index) in list" :key="index">
+							<view class="other">
+								<view class="other_1">返现金额: <text class="money">{{item.money}}</text></view>
+								<view class="other_1">推荐人: <text>{{item.inviter}}</text></view>
+								<view class="other_1">返现时间: <text>{{item.time}}</text></view>
+								<view class="other_1">来源: <text>{{item.zhSource}}</text></view>
+								<view class="other_1">状态: <text>{{item.zhStatus}}</text></view>
+							</view>
+						</view>
+						<view class="is_bottom" v-if="is_bottom">
+							<text>{{config.bottom_title}}</text>
+						</view>
+					</view>
+				</scroll-view>
 			</view>
 		</view>
 	</mobile-frame>
@@ -25,15 +35,140 @@
 	export default {
 		data() {
 			return {
+				// 系统设置
+				config: {},
+				user: {},
 				money: 0,
-				list: []
+				list: [],
+				total: 0,
+				skip: 0,
+				limit: 6,
+				page: 0,
+				// 状态
+				statusList: [],
+				// 来源
+				sourceList: [],
+				// 数据是否触底
+				is_bottom: false,
+				scrollTop: 0,
 			};
 		},
-		onLoad: function(e) {
-			
+		onLoad: async function(e) {
+			const that = this;
+			that.searchConfig();
+			await that.searchOther();
+			await that.watchLogin();
+		},
+		onHide: function() {
+			const that = this;
+			that.clearPage();
 		},
 		methods: {
+			// 查询基本设置
+			searchConfig() {
+				const that = this;
+				uni.getStorage({
+					key: 'config',
+					success: function(res) {
+						if (res.data) that.$set(that, `config`, res.data)
+					},
+					fail: function(err) {
+						console.log(err);
+					}
+				})
+			},
+			watchLogin() {
+				const that = this;
+				uni.getStorage({
+					key: 'token',
+					success: function(res) {
+						let user = that.$jwt(res.data);
+						that.$set(that, `user`, user)
+						that.search()
+					}
+				})
+			},
+			// 查询列表
+			async search() {
+				const that = this;
+				let user = that.user;
+				if (user._id) {
+					let info = {
+						skip: that.skip,
+						limit: that.limit,
+						inviter: user._id,
+					}
+					let res = await that.$api(`/cashBack`, 'GET', {
+						...info,
+					})
+					if (res.errcode == '0') {
+						let list = [...that.list, ...res.data];
+						for (let val of list) {
+							let status = that.statusList.find(i => i.value == val.status)
+							if (status) val.zhStatus = status.label;
+							let source = that.sourceList.find(i => i.value == val.source)
+							if (source) val.zhSource = source.label;
+						}
+						that.$set(that, `list`, list);
+						that.$set(that, `total`, res.total)
+					}
+					let arr = await that.$api(`/cashBack/computedTotal`, 'GET', {
+						customer: user._id
+					})
+					if (arr.errcode == '0') that.$set(that, `money`, arr.data);
+				}
+			},
+			// 查询其他信息
+			async searchOther() {
+				const that = this;
+				let res;
+				res = await that.$api(`/dictData`, 'GET', {
+					code: "cashBack_status"
+				});
+				if (res.errcode == '0') {
+					that.$set(that, `statusList`, res.data)
+				}
+				res = await that.$api(`/dictData`, 'GET', {
+					code: "cashBack_source"
+				});
+				if (res.errcode == '0') {
+					that.$set(that, `sourceList`, res.data)
+				}
+			},
 
+			// 分页
+			toPage(e) {
+				const that = this;
+				let list = that.list;
+				let limit = that.limit;
+				if (that.total > list.length) {
+					uni.showLoading({
+						title: '加载中',
+						mask: true
+					})
+					let page = that.page + 1;
+					that.$set(that, `page`, page)
+					let skip = page * limit;
+					that.$set(that, `skip`, skip)
+					that.search();
+					uni.hideLoading();
+				} else that.$set(that, `is_bottom`, true)
+			},
+			toScroll(e) {
+				const that = this;
+				let up = that.scrollTop;
+				that.$set(that, `scrollTop`, e.detail.scrollTop);
+				let num = Math.sign(up - e.detail.scrollTop);
+				if (num == 1) that.$set(that, `is_bottom`, false);
+			},
+			// 清空列表
+			clearPage() {
+				const that = this;
+				that.$set(that, `list`, [])
+				that.$set(that, `skip`, 0)
+				that.$set(that, `limit`, 6)
+				that.$set(that, `page`, 0)
+			}
 		},
 		onPullDownRefresh: async function() {
 			const that = this;
@@ -78,13 +213,58 @@
 		}
 
 		.two {
-			.two_2 {
-				text-align: center;
-				color: #858585;
-				font-size: 14px;
-				margin: 5vw 0;
+			position: relative;
+			flex-grow: 1;
+			padding: 2vw 0 0 0;
+
+			.list {
+				width: 92vw;
+				border: 0.5vw solid var(--f1Color);
+				margin: 2vw 2vw 0 1.5vw;
+				padding: 2vw;
+				border-radius: 5px;
+
+				.other {
+					.other_1 {
+						font-size: var(--font16Size);
+						margin: 0 0 1vw 0;
+
+						.money {
+							color: #ff0000;
+						}
+
+						text {
+							margin: 0 0 0 2vw;
+							color: var(--f85Color);
+							font-size: var(--font14Size);
+						}
+					}
+				}
 			}
+		}
+	}
+
+	.scroll-view {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+
+		.list-scroll-view {
+			display: flex;
+			flex-direction: column;
+		}
+	}
+
+	.is_bottom {
+		text-align: center;
 
+		text {
+			padding: 2vw 0;
+			display: inline-block;
+			color: #858585;
+			font-size: 14px;
 		}
 	}
 </style>