Browse Source

Merge branch 'master' of http://git.liuniu946.com/hwq/xpl

hwq 3 years ago
parent
commit
6a469b0882

+ 2 - 0
api/market.js

@@ -28,6 +28,7 @@ export function miningDateils(data,id) {
 		data
 	});
 }
+// 兑换记录
 export function getSp(data,id) {
 	return request({
 		url: '/api/lala/sp_exchange/'+id,
@@ -35,6 +36,7 @@ export function getSp(data,id) {
 		data
 	});
 }
+// 特别兑换
 export function spExchange(data,id) {
 	return request({
 		url: '/api/lala/sp_exchange/'+id,

+ 2 - 2
api/user.js

@@ -1,10 +1,10 @@
 import request from '@/utils/request'
-import { upFilse} from '@/utils/request';
+import { upFilse } from '@/utils/request';
 
 // 获取用户信息
 export function getUserInfo(data) {
 	return request({
-		url: '/api/userinfo',
+		url: '/api/user',
 		method: 'get',
 		data
 	});

+ 18 - 0
api/wallet.js

@@ -121,4 +121,22 @@ export function lalaprice(data) {
 		method: 'get',
 		data
 	});
+}
+
+// 钱包流水
+export function USDT(data) {
+	return request({
+		url: '/api/money/log/USDT',
+		method: 'get',
+		data
+	});
+}
+
+// 个人钱包
+export function getWallet(data) {
+	return request({
+		url: '/api/wallet',
+		method: 'get',
+		data
+	});
 }

+ 73 - 5
pages.json

@@ -286,6 +286,19 @@
 				}
 			}
 		},
+		{
+			"path": "pages/user/assets",
+			"style": {
+				"navigationBarBackgroundColor": "transparent",
+				"navigationBarTextStyle": "white",
+				"app-plus": {
+					"titleNView": {
+						"type": "float",
+						"titleText": "资产中心"
+					}
+				}
+			}
+		},
 		{
 			"path": "pages/assets/teamDetails",
 			"style": {
@@ -361,23 +374,47 @@
 		},
 		{
 			"path": "pages/user/user",
+			// "style": {
+			// 	"navigationBarBackgroundColor": "transparent",
+			// 	"navigationBarTextStyle": "white",
+			// 	"app-plus": {
+			// 		"titleNView": {
+			// 			"type": "float",
+			// 			"titleText": "我的"
+			// 		}
+			// 	}
+			// }
 			"style": {
 				// #ifndef MP-WEIXIN
 				"navigationStyle": "custom",
 				// #endif
-				"navigationBarTitleText": "个人中心"
+				"navigationBarTitleText": "我的"
 			}
 		},
 		//糖果
 		{
 			"path": "pages/money/award",
 			"style": {
-				"navigationBarTitleText": "奖励明细",
+				"navigationBarTitleText": "糖果",
 				"app-plus": {
 					"titleNView": false
 				}
 			}
 		},
+		{
+			"path": "pages/money/mallPoints",
+			"style": {
+				"navigationBarBackgroundColor": "transparent",
+				"navigationBarTextStyle": "white",
+				"app-plus": {
+					"titleNView": {
+						"type": "float",
+						"titleText": "商城积分"
+					}
+				}
+			}
+		},
+		
 		{
 			"path": "pages/money/pay",
 			"style": {
@@ -438,6 +475,7 @@
 				"navigationBarTitleText": "搜索"
 			}
 		},
+		
 		// 佣金
 		{
 			"path": "pages/money/wallet",
@@ -452,22 +490,44 @@
 		{
 			"path": "pages/money/integralP",
 			"style": {
-				"navigationBarTitleText": "我的拼团积分",
+				"navigationBarTitleText": "拼团积分",
 				"app-plus": {
 					"titleNView": false
 				}
 			}
 		},
-		// 购物积分
+		
+		// 我的贷款
 		{
 			"path": "pages/money/integralShopping",
 			"style": {
-				"navigationBarTitleText": "货款",
+				"navigationBarTitleText": "我的贷款",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		//拼团冻结积分
+		{
+			"path": "pages/money/frozen",
+			"style": {
+				"navigationBarTitleText": "拼团冻结积分",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		//我的公益积分
+		{
+			"path": "pages/money/publicWelfare",
+			"style": {
+				"navigationBarTitleText": "我的公益积分",
 				"app-plus": {
 					"titleNView": false
 				}
 			}
 		},
+		
 		// 兑换糖果
 		{
 			"path": "pages/conversion/candy",
@@ -482,6 +542,14 @@
 				"navigationBarTitleText": "积分转账"
 			}
 		},
+		
+		//兑换冻结积分
+		{
+			"path": "pages/conversion/frozen",
+			"style": {
+				"navigationBarTitleText": "兑换"
+			}
+		},
 		{
 			"path": "pages/order/order",
 			"style": {

+ 12 - 1
pages/conversion/candy.vue

@@ -3,6 +3,14 @@
 		<view class="content-money">
 			<view class="buttom">
 				<text class="text">可兑换积分</text>
+				<view class="icon"><text>¥</text>{{ integral }}</view>
+			</view>
+			<view class="interval"></view>
+			<view class="buttom">
+				<text class="text">申请兑换糖果</text>
+				<view class=" icon">
+				<input class="input" type="number" v-model="withdrawal > integral ? integral : withdrawal" 
+				placeholder="申请兑换糖果数量" placeholder-class="placeholder" /></view>
 				<view class="icon">{{ money }}</view>
 			</view>
 			<view class="interval"></view>
@@ -48,6 +56,9 @@ export default {
 			const obj = this.all;
 			return (this.withdrawal * +obj.usdt_price) / +this.add.usdt_price;
 		},
+		integral() {
+			return this.$store.state.user.userInfo.integral
+		}
 	},
 	onLoad() {
 		wallet({}).then(({ data }) => {
@@ -90,7 +101,7 @@ export default {
 				})
 			}
 		}
-	}
+	},
 }
 </script>
 

+ 117 - 0
pages/conversion/frozen.vue

@@ -0,0 +1,117 @@
+<template>
+	<view class="frozen">
+		<view class="header">
+			<text>兑换规则</text><br>
+			<text class="explain">每1000拼团冻结积分+10拼团值可兑换2000拼团积分</text>
+		</view>
+		<view class="content">
+			<view class="title">
+				<view class="l"></view>
+				<view >福利兑换</view>
+			</view>
+			<view class="center">
+				<view class="left">
+					<view class="name">
+						<text class="num">1000</text><br>
+						<text>拼团冻结积分</text>
+					</view>
+					<view class="name">+</view>
+					<view class="name"><text class="num">10</text>拼团值</view>
+				</view>
+				<view class="img">
+					<image src="../../static/img/duhuanbg.png" mode=""></image>
+				</view>
+				<view class="right">
+					<text class="num">1000</text>拼团积分
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			当前剩余拼团冻结积分<text class="num">2000</text>拼团值<text class="num">50</text>
+		</view>
+		<view class="btn">
+			确认兑换
+		</view>
+	</view>
+</template>
+
+<script>
+</script>
+
+<style lang="scss">
+	.header {
+		font-size: 28rpx;
+		padding: 30rpx;
+		background-color: #fff;
+		font-family: PingFang-SC-Medium;
+		.explain {
+			color: #6D7C88;
+		}
+	}
+	.content {
+		margin-top: 10rpx;
+		background-color: #fff;
+		padding: 30rpx;
+		margin-bottom: 1rpx;
+		.title {
+			display: flex;
+			.l {
+				width: 4rpx;
+				border-radius: 30rpx;
+				margin-right: 10rpx;
+				background: linear-gradient(180deg, #32C6FF 0%,  #2E58FF 100%);
+			}
+		}
+		.center {
+			width: 100%;
+			display: flex;
+			justify-content: space-around;
+			padding: 30rpx;
+			view {
+				margin: auto 0;
+			}
+			.name {
+				font-family: PingFang-SC-Bold;
+				font-weight: bold;
+				font-size: 35rpx;
+				margin: 10rpx;
+			}
+			.left {
+				text-align: center;
+				display: grid;
+				align-content: space-around;
+			}
+			.img {
+				height: 80rpx;
+				line-height: 80rpx;
+				image {
+					width: 80rpx;
+					height: 100%;
+				}
+			}
+			.right {
+				font-family: PingFang-SC-Bold;
+				font-weight: bold;
+				font-size: 35rpx;
+			}
+		}
+	}
+	.footer {
+		padding: 20rpx;
+		color: #6D7C88;
+	}
+	.btn {
+		background: linear-gradient(180deg, #32C6FF 0%,  #2E58FF 100%);
+		color: #fff;
+		font-size: 30rpx;
+		width: 90%;
+		border-radius: 60rpx;
+		padding: 20rpx;
+		text-align: center;
+		margin: 120rpx auto;
+	}
+	.num {
+		color: #2E58FF;
+		margin-right: 5rpx;
+	}
+</style>

+ 3 - 1
pages/conversion/transfers.vue

@@ -18,12 +18,14 @@
 		</view>
 		<view class="main">
 			<view class="main-font">转账数量</view>
-			<input class="main-input" type="text" value="" v-model="num" placeholder="请输入转账数量" placeholder-class="main-input" />
+			<input class="main-input" type="number" v-model="num > jf ? jf : num" placeholder="请输入转账数量" placeholder-class="main-input" />
 		</view>
+		<view class="btn" @click="submit">
 		<view class="btn" @click="transfer">
 			提交申请
 		</view>
 	</view>
+	</view>
 </template>
 
 <script>

+ 18 - 5
pages/message/message.vue

@@ -1,20 +1,21 @@
 <template>
 	<view class="center">
 		<view class="message">
-			<view class="item" v-for="l in list">
+			<view class="item" v-for="l in list" @click="look(l.cate_id)">
 				<view class="img">
 					<image :src="l.image" mode=""></image>
 				</view>
 				<view class="right">
 					<view class="top">
-						<view class="title">{{ l.name }}</view><view class="time">{{ l.time }}</view>
+						<view class="title">{{ l.name }}</view><view class="time">{{ time(l.last_message.add_time) }}</view>
 					</view>
 					<view class="bottom">
-						<view class="concent clamp2">{{ l.last_message.detail }}</view><view class="icon" v-show="l.unwatch_message>0"></view>
+						<view class="concent clamp2">{{ l.last_message.detail }}</view>
+						<view class="icon" v-show="l.unwatch_message > 0"></view>
+						<view class="title">{{ l.name }}</view><view class="time">{{ l.time }}</view>
 					</view>
 				</view>
 			</view>
-			
 		</view>
 	</view>
 </template>
@@ -22,7 +23,6 @@
 <script>
 import { messageList } from '@/api/finance.js'
 export default {
-	
 	data(){
 		return {
 			list:[],
@@ -37,6 +37,19 @@ export default {
 				this.list = data
 				console.log(data)
 			})
+		},
+		look(id) {
+			console.log(id)
+		},
+		time (data) {
+			var date = new Date(data)
+			var Y = date.getFullYear() + '-'
+			var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
+			var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
+			var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
+			var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
+			var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds())
+			return Y + M + D + h + m + s
 		}
 	}
 }

+ 438 - 0
pages/money/frozen.vue

@@ -0,0 +1,438 @@
+<template>
+	<view class="content">
+		<view class="status_bar"><!-- 这里是状态栏 --></view>
+		<view class="content-money">
+			<view class="body-title">
+				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
+				<view class="header">拼团冻结积分</view>
+			</view>
+			<view class="content-bg"><image src="../../static/img/user-integralP.png" mode=""></image></view>
+			<view class="money-box"><view class="money">{{ integral || 0 }}</view></view>
+			<view class="value">拼团值:200</view>
+			<!-- <view class="rule" @click="open()">转赠规则</view> -->
+		</view>
+		<view class="btn flex">
+			<view class="btn-item" @click="navto('/pages/conversion/candy')">兑换糖果</view>
+			<view class="btn-item" @click="navto('/pages/conversion/frozen')">兑换拼团积分</view>
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+						<view class="title-box">
+							<view class="title">
+								<text>{{ item.title }}</text>
+							</view>
+							<view class="time">
+								<text>{{ item.add_time }}</text>
+							</view>
+						</view>
+						<view class="money">
+							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+		<uni-popup ref="popup" type="center">
+			<view class="popup-box">
+				<view class="popup-title">转赠规则</view>
+				<view class="popup-main">
+					<view class="popup-little">一、活动时间</view>
+					<view class="popup-text">xxxx年xx月xx日xx时举办活动</view>
+					<view class="popup-little">二、规则</view>
+					<view class="popup-text">本次活动奖励共二挡,活动奖励按 最高档发放</view>
+					<view class="popup-little">一、活动时间</view>
+					<view class="popup-text">xxxx年xx月xx日xx时举办活动</view>
+					<view class="popup-little">二、规则</view>
+					<view class="popup-text">本次活动奖励共二挡,活动奖励按 最高档发放</view>
+				</view>
+			</view>
+			<view class="close" @click="close"><image src="../../static/img/Close.png" mode=""></image></view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+import { moneyLog, recharge, wallet } from '@/api/finance.js';
+import { mapState, mapMutations } from 'vuex';
+import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+import empty from '@/uview-ui/components/u-empty/u-empty.vue';
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+export default {
+	components: {
+		empty,
+		uniLoadMore,
+		uniPopup
+	},
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					_this.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	data() {
+		return {
+			integral: 0,//我的积分
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			navList: [
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				}
+			],
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		wallet({}).then(({ data }) => {
+			const obj = this
+			const arr = Object.keys(data.back);
+			console.log(arr);
+			arr.forEach(e => {
+				if(e == 'USDC'){
+					obj.integral = (data.back[e].money.money*1)
+				}
+			});
+		});
+		this.loadData();
+	},
+	methods: {
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		},
+		// 点击返回 我的页面
+		toBack() {
+			uni.navigateBack({});
+		},
+		async loadData(source) {
+			//这里时将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state + 3;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			//修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+
+			moneyLog(
+				{
+					page: navItem.page,
+					limit: navItem.limit,
+					pm:navItem.state
+				},
+				'USDC'
+			)
+				.then(({ data }) => {
+					if (data.list.length > 0) {
+						navItem.orderList = navItem.orderList.concat(data.list);
+						console.log(navItem.orderList);
+						navItem.page++;
+					}
+					//判断是否还有数据, 有改为more, 没有改为noMore
+					if (navItem.limit == data.length) {
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+			this.loadData('tabChange');
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		},
+		open() {
+			this.$refs.popup.open();
+		},
+		close() {
+			this.$refs.popup.close();
+		},
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f1f1f1;
+	height: 100%;
+}
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
+.content-money {
+	padding-bottom: 30rpx;
+	position: relative;
+	height: 400rpx;
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 400rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
+		position: relative;
+		.header {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
+			height: 80rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 2;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+		}
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
+			display: flex;
+			align-items: center;
+		}
+		
+		.goback {
+			z-index: 100;
+			width: 34rpx;
+			height: 34rpx;
+		}
+	}
+	.rule {
+		z-index: 11;
+		position: absolute;
+		top: 130rpx;
+		right: 0;
+		width: 140rpx;
+		height: 50rpx;
+		background: #ffffff;
+		border-top-left-radius: 8rpx;
+		border-bottom-left-radius: 8rpx;
+		text-align: center;
+		line-height: 50rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #2e58ff;
+	}
+}
+.btn {
+	justify-content: center;
+	align-items: center;
+	position: relative;
+	z-index: 10;
+	.btn-item {
+		margin: 0 15rpx;
+		width: 330rpx;
+		height: 100rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 10rpx;
+		text-align: center;
+		line-height: 100rpx;
+		font-size: 34rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #3c77ff;
+		margin-top: -50rpx;
+	}
+}
+.money-box {
+	position: relative;
+	z-index: 10;
+	padding-top: 50rpx;
+	color: #ffffff;
+	text-align: center;
+	.money {
+		font-size: 86rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+}
+
+.value {
+	margin-top: 5rpx;
+	position: relative;
+	z-index: 10;
+	margin: 0 auto;
+	color: #333333;
+	text-align: center;
+	background-color: #fff;
+	width: 160rpx;
+	font-size: 25rpx;
+	padding: 5rpx;
+	border-radius: 30rpx;
+}
+
+.navbar {
+	margin-top: 20rpx;
+	display: flex;
+	height: 88rpx;
+	padding: 0 5px;
+	background: #fff;
+	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+	position: relative;
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: $font-color-dark;
+		position: relative;
+		&.current {
+			color: $base-color;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 44px;
+				height: 0;
+				border-bottom: 2px solid $base-color;
+			}
+		}
+	}
+}
+//列表
+
+.swiper-box {
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+		}
+	}
+}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #ffffff;
+	}
+}
+.popup-box {
+	background: #FFFFFF;
+	border-radius: 10rpx;
+	width: 580rpx;
+	padding: 43rpx 60rpx 56rpx 34rpx;
+	.popup-title {
+		width: 100%;
+		text-align: center;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #333333;
+	}
+	.popup-main {
+		margin-top: 48rpx;
+		.popup-little {
+			padding-top: 18rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+		.popup-text {
+			padding-left: 60rpx;
+			padding-top: 18rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+	}
+}
+.close {
+	margin: 70rpx auto 0;
+	width: 84rpx;
+	height: 84rpx;
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+</style>

+ 402 - 0
pages/money/loan.vue

@@ -0,0 +1,402 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="content-bg"><image src="../../static/img/user-integralP.png" mode=""></image></view>
+			<view class="money-box"><view class="money"> 66 </view></view>
+			<view class="rule" @click="open()">转赠规则</view>
+		</view>
+		<view class="btn flex">
+			<view class="btn-item" @click="navto('/pages/conversion/candy')">转换为糖果</view>
+			<view class="btn-item" @click="navto('/pages/conversion/transfers')">贷款转赠</view>
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+					<!-- 订单列表 -->
+					<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+						<view class="title-box">
+							<view class="title">
+								<text>{{ item.title }}</text>
+							</view>
+							<view class="time">
+								<text>{{ item.add_time }}</text>
+							</view>
+						</view>
+						<view class="money">
+							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+		<uni-popup ref="popup" type="center">
+			<view class="popup-box">
+				<view class="popup-title">转赠规则</view>
+				<view class="popup-main">
+					<view class="popup-little">一、活动时间</view>
+					<view class="popup-text">xxxx年xx月xx日xx时举办活动</view>
+					<view class="popup-little">二、规则</view>
+					<view class="popup-text">本次活动奖励共二挡,活动奖励按 最高档发放</view>
+					<view class="popup-little">一、活动时间</view>
+					<view class="popup-text">xxxx年xx月xx日xx时举办活动</view>
+					<view class="popup-little">二、规则</view>
+					<view class="popup-text">本次活动奖励共二挡,活动奖励按 最高档发放</view>
+				</view>
+			</view>
+			<view class="close" @click="close"><image src="../../static/img/Close.png" mode=""></image></view>
+		</uni-popup>
+		<view class="btn-box" @click="navto('/pages/money/recharge')">
+			立即充值
+		</view>
+	</view>
+</template>
+
+<script>
+	
+import { getSp,spExchange } from '@/api/market.js';
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { mapState, mapMutations } from 'vuex';
+import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+import empty from '@/uview-ui/components/u-empty/u-empty.vue';
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+export default {
+	components: {
+		empty,
+		uniLoadMore,
+		uniPopup
+	},
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					_this.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	data() {
+		return {
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			navList: [
+				{
+					state: 0,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 1,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				}
+			],
+			money: 0,
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+		//获取用户余额
+		userBalance({}).then(({ data }) => {
+			console.log(data)
+			this.money = data.now_money;
+		});
+		console.log(this.jf)
+	},
+	computed: {
+		integral() {
+			return this.$store.state.user.userInfo.integral
+		}
+	},
+	methods: {
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		},
+		// 点击返回 我的页面
+		toBack() {
+			uni.navigateBack({});
+		},
+		async loadData(source) {
+			//这里时将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state + 3;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			//修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+
+			spreadCommission(
+				{
+					page: navItem.page,
+					limit: navItem.limit
+				},
+				state
+			)
+				.then(({ data }) => {
+					if (data.length > 0) {
+						navItem.orderList = navItem.orderList.concat(data[0].list);
+						console.log(navItem.orderList);
+						navItem.page++;
+					}
+					//判断是否还有数据, 有改为more, 没有改为noMore
+					if (navItem.limit == data.length) {
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+			this.loadData('tabChange');
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		},
+		open() {
+			this.$refs.popup.open();
+		},
+		close() {
+			this.$refs.popup.close();
+		},
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f1f1f1;
+	height: 100%;
+}
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
+.content-money {
+	padding-bottom: 30rpx;
+	position: relative;
+	height: 400rpx;
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 400rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+	.rule {
+		z-index: 11;
+		position: absolute;
+		top: 130rpx;
+		right: 0;
+		width: 140rpx;
+		height: 50rpx;
+		background: #ffffff;
+		border-top-left-radius: 8rpx;
+		border-bottom-left-radius: 8rpx;
+		text-align: center;
+		line-height: 50rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #2e58ff;
+	}
+}
+.btn {
+	justify-content: center;
+	align-items: center;
+	position: relative;
+	z-index: 10;
+	.btn-item {
+		margin: 0 15rpx;
+		width: 330rpx;
+		height: 100rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 10rpx;
+		text-align: center;
+		line-height: 100rpx;
+		font-size: 34rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #3c77ff;
+		margin-top: -50rpx;
+	}
+}
+.money-box {
+	position: relative;
+	z-index: 10;
+	padding-top: 150rpx;
+	color: #ffffff;
+	text-align: center;
+	.money {
+		font-size: 86rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+}
+
+.navbar {
+	margin-top: 20rpx;
+	display: flex;
+	height: 88rpx;
+	padding: 0 5px;
+	background: #fff;
+	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+	position: relative;
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: $font-color-dark;
+		position: relative;
+		&.current {
+			color: $base-color;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 44px;
+				height: 0;
+				border-bottom: 2px solid $base-color;
+			}
+		}
+	}
+}
+//列表
+
+.swiper-box {
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+		}
+	}
+}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #ffffff;
+	}
+}
+.popup-box {
+	background: #FFFFFF;
+	border-radius: 10rpx;
+	width: 580rpx;
+	padding: 43rpx 60rpx 56rpx 34rpx;
+	.popup-title {
+		width: 100%;
+		text-align: center;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #333333;
+	}
+	.popup-main {
+		margin-top: 48rpx;
+		.popup-little {
+			padding-top: 18rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+		.popup-text {
+			padding-left: 60rpx;
+			padding-top: 18rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+	}
+}
+.close {
+	margin: 70rpx auto 0;
+	width: 84rpx;
+	height: 84rpx;
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+.btn-box {
+	width: 674rpx;
+	height: 88rpx;
+	background: linear-gradient(0deg, #2E58FF, #32C6FF);
+	border-radius: 44rpx;
+	font-size: 36rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #FFFFFF;
+	text-align: center;
+	line-height: 88rpx;
+	position: fixed;
+	bottom: 48rpx;
+	left: 0;
+	right: 0;
+	margin: 0 auto;
+}
+</style>

+ 276 - 0
pages/money/mallPoints.vue

@@ -0,0 +1,276 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="content-bg"><image src="../../static/img/user-award.png" mode=""></image></view>
+			<view class="money-box">
+				<view class="money"> 2000 </view>
+			</view>
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+						<view class="title-box">
+							<view class="title">
+								<text>{{ item.title }}</text>
+							</view>
+							<view class="time">
+								<text>{{ item.add_time }}</text>
+							</view>
+						</view>
+						<view class="money">
+							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+import { spreadCommission, userBalance,USDT,getWallet } from '@/api/wallet.js';
+import { mapState, mapMutations } from 'vuex';
+import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+import empty from '@/uview-ui/components/u-empty/u-empty.vue';
+export default {
+	components: {
+		empty,
+		uniLoadMore
+	},
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					_this.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	data() {
+		return {
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			navList: [
+				{
+					state: 0,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 1,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				}
+			],
+			money: 0
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+		this.getRecord()
+		//获取用户余额
+		userBalance({}).then(({ data }) => {
+			console.log(data)
+			this.money = data.now_money;
+		});
+		this.getMoneyLog()
+		this.getUSDT()
+	},
+	methods: {
+		async loadData(source) {
+			//这里时将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state + 3;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			//修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+
+			spreadCommission(
+				{
+					page: navItem.page,
+					limit: navItem.limit
+				},
+				state
+			)
+				.then(({ data }) => {
+					if (data.length > 0) {
+						navItem.orderList = navItem.orderList.concat(data[0].list);
+						console.log(navItem.orderList);
+						navItem.page++;
+					}
+					//判断是否还有数据, 有改为more, 没有改为noMore
+					if (navItem.limit == data.length) {
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+			this.loadData('tabChange');
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f1f1f1;
+	height: 100%;
+}
+.content-money {
+	padding-bottom: 30rpx;
+	position: relative;
+	height: 400rpx;
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 400rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+}
+.money-box {
+	position: relative;
+	z-index: 100;
+	padding-top: 150rpx;
+	color: #ffffff;
+	text-align: center;
+	.money {
+		font-size: 86rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #FFFFFF;
+	}
+}
+
+.navbar {
+	margin-top: 20rpx;
+	display: flex;
+	height: 88rpx;
+	padding: 0 5px;
+	background: #fff;
+	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+	position: relative;
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: $font-color-dark;
+		position: relative;
+		&.current {
+			color: $base-color;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 44px;
+				height: 0;
+				border-bottom: 2px solid $base-color;
+			}
+		}
+	}
+}
+//列表
+
+.swiper-box {
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+		.money {
+			color: #EF3A55;
+			font-size: $font-lg + 5rpx;
+		}
+	}
+}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #ffffff;
+	}
+}
+.btn-box {
+	width: 674rpx;
+	height: 88rpx;
+	background: linear-gradient(0deg, #2E58FF, #32C6FF);
+	border-radius: 44rpx;
+	font-size: 36rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #FFFFFF;
+	text-align: center;
+	line-height: 88rpx;
+	position: fixed;
+	bottom: 48rpx;
+	left: 0;
+	right: 0;
+	margin: 0 auto;
+}
+</style>

+ 454 - 0
pages/money/publicWelfare.vue

@@ -0,0 +1,454 @@
+<template>
+	<view class="content">
+		<view class="status_bar"><!-- 这里是状态栏 --></view>
+		<view class="content-money">
+			<view class="body-title">
+				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
+				<view class="header">我的公益积分</view>
+			</view>
+			<view class="content-bg"><image src="../../static/img/user-integralP.png" mode=""></image></view>
+			<view class="money-box"><view class="money">{{ integral || 0 }}</view></view>
+			<view class="value">公益奖励:200</view>
+			<!-- <view class="rule" @click="open()">转赠规则</view> -->
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+						<view class="title-box">
+							<view class="title">
+								<text>{{ item.title }}</text>
+							</view>
+							<view class="time">
+								<text>{{ item.add_time }}</text>
+							</view>
+						</view>
+						<view class="money">
+							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+		<uni-popup ref="popup" type="center">
+			<view class="popup-box">
+				<view class="popup-title">转赠规则</view>
+				<view class="popup-main">
+					<view class="popup-little">一、活动时间</view>
+					<view class="popup-text">xxxx年xx月xx日xx时举办活动</view>
+					<view class="popup-little">二、规则</view>
+					<view class="popup-text">本次活动奖励共二挡,活动奖励按 最高档发放</view>
+					<view class="popup-little">一、活动时间</view>
+					<view class="popup-text">xxxx年xx月xx日xx时举办活动</view>
+					<view class="popup-little">二、规则</view>
+					<view class="popup-text">本次活动奖励共二挡,活动奖励按 最高档发放</view>
+				</view>
+			</view>
+			<view class="close" @click="close"><image src="../../static/img/Close.png" mode=""></image></view>
+		</uni-popup>
+		<view class="btn-box" @click="navto('/pages/money/withdrawal')">
+			公益奖励提现
+		</view>
+	</view>
+</template>
+
+<script>
+import { moneyLog, recharge, wallet } from '@/api/finance.js';
+import { mapState, mapMutations } from 'vuex';
+import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+import empty from '@/uview-ui/components/u-empty/u-empty.vue';
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+export default {
+	components: {
+		empty,
+		uniLoadMore,
+		uniPopup
+	},
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					_this.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	data() {
+		return {
+			integral: 0,//我的积分
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			navList: [
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页面
+					limit: 10 //每次信息条数
+				}
+			],
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		wallet({}).then(({ data }) => {
+			const obj = this
+			const arr = Object.keys(data.back);
+			console.log(arr);
+			arr.forEach(e => {
+				if(e == 'USDC'){
+					obj.integral = (data.back[e].money.money*1)
+				}
+			});
+		});
+		this.loadData();
+	},
+	methods: {
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		},
+		// 点击返回 我的页面
+		toBack() {
+			uni.navigateBack({});
+		},
+		async loadData(source) {
+			//这里时将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state + 3;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			//修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+
+			moneyLog(
+				{
+					page: navItem.page,
+					limit: navItem.limit,
+					pm:navItem.state
+				},
+				'USDC'
+			)
+				.then(({ data }) => {
+					if (data.list.length > 0) {
+						navItem.orderList = navItem.orderList.concat(data.list);
+						console.log(navItem.orderList);
+						navItem.page++;
+					}
+					//判断是否还有数据, 有改为more, 没有改为noMore
+					if (navItem.limit == data.length) {
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+			this.loadData('tabChange');
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		},
+		open() {
+			this.$refs.popup.open();
+		},
+		close() {
+			this.$refs.popup.close();
+		},
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f1f1f1;
+	height: 100%;
+}
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
+.content-money {
+	padding-bottom: 30rpx;
+	position: relative;
+	height: 400rpx;
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 400rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
+		position: relative;
+		.header {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
+			height: 80rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 2;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+		}
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
+			display: flex;
+			align-items: center;
+		}
+		
+		.goback {
+			z-index: 100;
+			width: 34rpx;
+			height: 34rpx;
+		}
+	}
+	.rule {
+		z-index: 11;
+		position: absolute;
+		top: 130rpx;
+		right: 0;
+		width: 140rpx;
+		height: 50rpx;
+		background: #ffffff;
+		border-top-left-radius: 8rpx;
+		border-bottom-left-radius: 8rpx;
+		text-align: center;
+		line-height: 50rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #2e58ff;
+	}
+}
+.btn {
+	justify-content: center;
+	align-items: center;
+	position: relative;
+	z-index: 10;
+	.btn-item {
+		margin: 0 15rpx;
+		width: 330rpx;
+		height: 100rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 10rpx;
+		text-align: center;
+		line-height: 100rpx;
+		font-size: 34rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #3c77ff;
+		margin-top: -50rpx;
+	}
+}
+.money-box {
+	position: relative;
+	z-index: 10;
+	padding-top: 50rpx;
+	color: #ffffff;
+	text-align: center;
+	.money {
+		font-size: 86rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+}
+
+.value {
+	margin-top: 5rpx;
+	position: relative;
+	z-index: 10;
+	margin: 0 auto;
+	color: #333333;
+	text-align: center;
+	background-color: #fff;
+	width: 160rpx;
+	font-size: 25rpx;
+	padding: 5rpx;
+	border-radius: 30rpx;
+}
+
+.navbar {
+	margin-top: 20rpx;
+	display: flex;
+	height: 88rpx;
+	padding: 0 5px;
+	background: #fff;
+	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+	position: relative;
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: $font-color-dark;
+		position: relative;
+		&.current {
+			color: $base-color;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 44px;
+				height: 0;
+				border-bottom: 2px solid $base-color;
+			}
+		}
+	}
+}
+//列表
+
+.swiper-box {
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+		}
+	}
+}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #ffffff;
+	}
+}
+.popup-box {
+	background: #FFFFFF;
+	border-radius: 10rpx;
+	width: 580rpx;
+	padding: 43rpx 60rpx 56rpx 34rpx;
+	.popup-title {
+		width: 100%;
+		text-align: center;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #333333;
+	}
+	.popup-main {
+		margin-top: 48rpx;
+		.popup-little {
+			padding-top: 18rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+		.popup-text {
+			padding-left: 60rpx;
+			padding-top: 18rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+	}
+}
+.close {
+	margin: 70rpx auto 0;
+	width: 84rpx;
+	height: 84rpx;
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+.btn-box {
+	width: 674rpx;
+	height: 88rpx;
+	background: linear-gradient(0deg, #2E58FF, #32C6FF);
+	border-radius: 44rpx;
+	font-size: 36rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #FFFFFF;
+	text-align: center;
+	line-height: 88rpx;
+	position: fixed;
+	bottom: 48rpx;
+	left: 0;
+	right: 0;
+	margin: 0 auto;
+}
+</style>

+ 6 - 2
pages/money/recharge.vue

@@ -2,7 +2,7 @@
 	<view class="content">
 		<view class="row-box">
 			<view class="money-box">
-				<view class="money">{{ myMoney }}</view>
+				<view class="money">{{ now_money }}</view>
 				<view class="money-text">我的糖果数量</view>
 			</view>
 			<!-- <view class="chong">充值记录</view> -->
@@ -88,8 +88,12 @@ export default {
 	},
 	computed: {
 		// #ifdef H5
-		...mapState(['weichatObj'])
+		...mapState(['weichatObj']),
 		// #endif
+		//我的糖果数
+		now_money() {
+			return this.$store.state.user.userInfo.now_money
+		}
 	},
 	methods: {
 		// 跳转

+ 2 - 1
pages/money/withdrawal.vue

@@ -115,7 +115,8 @@ export default {
 		// 加载余额信息
 		async loadData() {
 			extractBank({}).then(({ data }) => {
-				// this.money = data.moneyCount; //可提现余额
+				console.log(data)
+				this.money = data.brokerage_price; //可提现余额
 				this.minPrice = data.minPrice; //最小提现
 				this.freeze = data.inmoneyCount; //提现中的余额
 			});

+ 1 - 0
pages/product/product.vue

@@ -353,6 +353,7 @@ export default {
 				obj.reply = data.reply; //保存评论列表
 				obj.imgList = goods.slider_image; //保存轮播图
 				obj.specList = data.productAttr; //保存分类列表
+				console.log(data.productAttr)
 				obj.productValue = data.productValue; //保存分类查询数据
 				obj.actionPrice = goods.price; //保存默认选中商品价格
 				obj.actionImage = goods.image_base; //保存默认选中商品价格

+ 189 - 0
pages/user/assets.vue

@@ -0,0 +1,189 @@
+<template>
+	<view class="assets">
+		<view class="header">
+			<view class="img"><image :src="userInfo.avatar" mode=""></image></view>
+			{{ userInfo.nickname }}
+		</view>
+		<view class="numerical">
+			<view class="value">
+				<text>8555</text><br>
+				贡献值
+			</view>
+			<view class="l"></view>
+			<view class="value">
+				<text>788</text><br>
+				诚信值
+			</view>
+		</view>
+		<view class="main">
+			<view class="btn" @click="nav('/pages/money/wallet')">
+				<image src="../../static/icon/index1.png"></image>
+				<text>{{userInfo.brokerage_price * 1}}</text>
+				佣金
+			</view>
+			<view class="btn" @click="nav('/pages/money/award')">
+				<image src="../../static/icon/index2.png"></image>
+				<text>{{ candy||0 }}</text>
+				糖果
+			</view>
+			<view class="btn" @click="nav('/pages/money/integralShopping')">
+				<image src="../../static/icon/index3.png"></image>
+				<text>{{ userInfo.now_money*1 }}</text>
+				货款
+			</view>
+			<view class="btn" @click="nav('/pages/money/mallPoints')">
+				<image src="../../static/icon/index4.png"></image>
+				<text>2000</text>
+				商城积分
+			</view>
+			<view class="btn" @click="nav('/pages/money/integralP')">
+				<image src="../../static/icon/index5.png"></image>
+				<text>{{ jf||0 }}</text>
+				拼团积分
+			</view>
+			<view class="btn" @click="nav('/pages/money/frozen')">
+				<image src="../../static/icon/index6.png"></image>
+				<text>2000</text>
+				拼团冻结积分
+			</view>
+			<view class="btn" @click="nav('/pages/money/publicWelfare')">
+				<image src="../../static/icon/index7.png"></image>
+				<text>2000</text>
+				公益积分
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+import { wallet } from '@/api/finance.js';
+	export default {
+		mounted() {
+			console.log(this.userInfo)
+		},
+		data() {
+			return {
+				candy: '',
+				jf: ''
+			}
+		},
+		mounted() {
+			this.getWallet()
+		},
+		methods: {
+			getWallet() {
+				wallet({}).then(({ data }) => {
+					console.log(data)
+					const obj = this
+					const arr = Object.keys(data.back);
+					console.log(arr);
+					let ar = [];
+					arr.forEach(e => {
+						console.log(e,'11111')
+						if(e == 'LALA'){
+							obj.candy = (data.back[e].money.money*1).toFixed(0)
+						}
+						if(e == 'USDC'){
+							obj.jf = (data.back[e].money.money*1)
+						}
+						ar.push(data.back[e]);
+					});
+				});
+			},
+			nav(url) {
+				uni.navigateTo({
+					url: url,
+					fail() {
+						uni.switchTab({
+							url: url
+						});
+					}
+				});
+			},
+		},
+		computed: {
+			userInfo() {
+				return this.$store.state.user.userInfo
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.assets {
+		.header {
+			height: 480rpx;
+			background: linear-gradient(180deg, #32C6FF 0%,  #2E58FF 100%);
+			color: #fff;
+			font-size: 35rpx;
+			text-align: center;
+			font-family: PingFang-SC-Medium;
+			padding-top: 140rpx;
+			.img {
+				margin-bottom: 10rpx;
+				image {
+					border-radius: 50%;
+					width: 150rpx;
+					height: 150rpx;
+					border: solid 6rpx #fff;
+				}
+			}
+		}
+		.numerical {
+			box-shadow: 0 5rpx 10rpx 1rpx #e6e6e6;
+			margin: 30rpx;
+			color: #666666;
+			display: flex;
+			text-align: center;
+			background-color: #fff;
+			padding: 30rpx;
+			border-radius: 20rpx;
+			position: relative;
+			top: -120rpx;
+			.l {
+				background-color: #F8F8F8;
+				width: 5rpx;
+				height: 70rpx;
+				margin:  auto 0;
+			}
+			.value {
+				flex: 1;
+			}
+			text {
+				font-size: 40rpx;
+				color: #333333;
+			}
+		}
+		.main {
+			position: relative;
+			top: -140rpx;
+			display: flex;
+			flex-wrap: wrap;
+			text-align: center;
+			margin: 20rpx;
+			.btn {
+				padding: 40rpx;
+				box-shadow: 0 5rpx 10rpx 1rpx #e6e6e6;
+				border-radius: 20rpx;
+				width: calc(50% - 20rpx);
+				height: 240rpx;
+				background-color: #fff;
+				margin: 10rpx;
+				display: grid;
+				align-content: space-around;
+				color: #666666;
+				font-family: PingFang-SC-Medium;
+				image {
+					margin: 10rpx auto;
+					width: 80rpx;
+					height: 80rpx;
+				}
+				text {
+					color: #333333;
+					font-size: 35rpx;
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
pages/user/user.vue

@@ -69,7 +69,7 @@
 					<view class="link" hover-class="common-hover"></view>
 				</view>
 				<view class="order-section">
-					<view class="order-item" @click="nav('')" hover-class="common-hover" :hover-stay-time="50">
+					<view class="order-item" @click="nav('/pages/user/assets')" hover-class="common-hover" :hover-stay-time="50">
 						<view class=" icon1 position-relative"><image class="icon-img" src="../../static/user/myMoney.png" mode="aspectFit"></image></view>
 						<text>我的资产</text>
 					</view>

BIN
static/icon/message1.png


BIN
static/icon/message2.png


BIN
static/icon/message3.png


BIN
static/icon/message4.png


BIN
static/icon/message5.png