xuhaolan 3 년 전
부모
커밋
2b848f3d66

+ 78 - 14
pages.json

@@ -52,12 +52,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/set/set",
-			"style": {
-				"navigationBarTitleText": "设置"
-			}
-		},
 		{
 			"path": "pages/set/password",
 			"style": {
@@ -67,10 +61,27 @@
 		{
 			"path": "pages/set/userinfo",
 			"style": {
-				"navigationBarTitleText": "修改资料"
+				"navigationBarTitleText": "设置",
+				"navigationBarBackgroundColor":"#000",
+				"navigationBarTextStyle":"white"
 			}
+		},
+		{
+			"path": "pages/index/info",
+			"style": {
+				"navigationBarTitleText": "打款信息",
+				"navigationBarBackgroundColor":"#000",
+				"navigationBarTextStyle":"white"
+			}
+		}, 
+		{
+			"path": "pages/user/team",
+			"style": {
+				"navigationBarTitleText": "我的团队",
+				"navigationBarBackgroundColor":"#000",
+				"navigationBarTextStyle":"white"
+			}
 		}, 
-		
 		{
 			"path": "pages/user/user",
 			"style": {
@@ -119,17 +130,38 @@
 		{
 			"path": "pages/user/shareQrCode",
 			"style": {
-				"navigationBarTitleText": "邀请好友"
+				"navigationBarTitleText": "我的二维码",
+				"navigationBarBackgroundColor":"#000",
+				"navigationBarTextStyle":"white"
 			}
 		},
+		{
+			"path": "pages/user/promotion",
+			"style": {
+				"navigationBarTextStyle": "white",
+				"app-plus": {
+					"titleNView": {
+						"backgroundColor": "#15130f",
+						"type": "float",
+						"titleText": "我的推广" 
+					}
+				}
+			}
+		},
 		{
 			"path": "pages/profit/profit",
 			"style": {
-				"navigationBarTitleText": "收益中心",
-				"navigationBarBackgroundColor": "transparent",
-				"navigationBarTextStyle": "white"
-				// "transparentTitle":"always"
-			}
+				// "navigationBarTitleText": "收益中心",
+				"navigationBarTextStyle": "white",
+				"app-plus": {
+					"titleNView": {
+						"backgroundColor": "#15130f",
+						"type": "float",
+						"titleText": "收益中心" 
+					}
+				}
+			}
+<<<<<<< HEAD
 		}
 		,{
 			"path": "pages/upload/upload",
@@ -138,6 +170,38 @@
 				"navigationBarTextStyle":"white",
 				"navigationBarBackgroundColor":"#000000"
 			}
+=======
+		},
+		{
+			"path": "pages/public/success",
+			"style": {
+				// "navigationBarTitleText": "收益中心",
+				"navigationBarTextStyle": "white",
+				"app-plus": {
+					"titleNView": {
+						"backgroundColor": "#000",
+						"type": "float",
+						"titleText": "提交成功" 
+					}
+				}
+			}
+		},
+		{
+			"path": "pages/user/applyList",
+			"style": {
+				"navigationBarTitleText": "收益中心",
+				"navigationBarTextStyle": "white",
+				"navigationBarBackgroundColor":"#000"
+			}
+		},
+		{
+			"path": "pages/user/upgrade",
+			"style": {
+				"navigationBarTitleText": "升级会员",
+				"navigationBarTextStyle": "white",
+				"navigationBarBackgroundColor":"#000"
+			}
+>>>>>>> dc69991d376e462b9dc9cb7c7b412e7f73480e91
 		}
 	],
 

+ 11 - 0
pages/index/info.vue

@@ -0,0 +1,11 @@
+<template>
+	<view class="center">
+		
+	</view>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 18 - 31
pages/profit/profit.vue

@@ -6,28 +6,15 @@
 				<view class="text">当前余额</view>
 				<view class="money"><text>¥</text>{{ money | getMoneyStyle }}</view>		
 			</view>
-			<!-- <view class="moneyTx" @click="navto('./withdrawal')">提现</view>
-			<view class="flex buttom-box">
-				<view class="buttom" @click="navto('/pages/money/recharge')">
-					<view class="icon"><image src="/static/icon/i6.png" mode="aspectFill" class="icon-img"></image></view>
-					<text>统计</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom" @click="navto('./withdrawal')">
-					<view class="icon"><image src="/static/icon/i7.png" mode="aspectFill" class="icon-img"></image></view>
-					<text>提现</text>
-				</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+'px'}" class="swiper-box" duration="300" @change="changeTab">
+		<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">
@@ -63,22 +50,20 @@ export default {
 		empty,
 		uniLoadMore
 	},
-	onReady() {
-		//初始化获取页面宽度
-		uni.createSelectorQuery().select('.content')
-			.fields(
-			{
-				size:true
-			},
-			data => {
-				console.log(data);
-				console.log(Math.floor((data.width /750) * 300));
-				//保存头部高度
-				this.maxheight =data.height - Math.floor((data.width / 750) * 570);
-				console.log(this.maxheight);
-				}
-			)
-			.exec();
+	onReady(res) {
+		var obj = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					console.log(res, 'ddddddddddddd');
+					obj.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', obj.maxheight);
+				});
+			},
+			fail: res => {}
+		});
 	},
 	data() {
 		return {
@@ -181,13 +166,15 @@ page {
 	background: #000;
 	height: 100%;
 }
-.content-money {
+.content-money {
+	height: 430rpx;
 	padding-bottom: 30rpx;
 	background: $page-color-base;
 	position: relative;
 	.bg{ 
 		position: absolute;
 		width: 100%;
+		height: 430rpx;
 	}
 	.moneyTx{
 		position: absolute;

+ 83 - 35
pages/public/forget.vue

@@ -1,37 +1,52 @@
 <template>
 	<view class="container">
-		<view class="container_text">
-			<image class="banner-img" src="/static/img/img01.png" mode=" scaleToFill"></image>
+		<view class="container_text" >
+			<image src="../../static/icon/logo.png" mode="" class="logo"></image>
+			<view class="logo-tit"><text>博·赢</text></view>
+			<!-- <image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image> -->
 		</view>
-		<view class="loginTitle"><text>手机号登录</text></view>
+		<!-- <view class="loginTitle"><text>手机号登录</text></view> -->
 		<view class="login_text">
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
+				<view class="login_img"><image src="../../static/icon/icon-phone.png"></image></view>
 				<view class="login_name"><input class="uni-input" v-model="phone" focus placeholder="请输入手机号" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img"><image src="../../static/icon/icon-code.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus placeholder="请输入新密码" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img"><image src="../../static/icon/icon-code.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="repassword" focus placeholder="请重复输入新密码" /></view>
 			</view>
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img06.png"></image></view>
+				<view class="login_img"><image src="../../static/icon/icon-yzm.png"></image></view>
 				<view class="login_name flex">
 					<input class="uni-input width" v-model="code" focus placeholder="请输入验证码" />
 					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 				</view>
 			</view>
 			<view>
-				<button type="green" @click="register" class="uni-button uni-button-green">登录</button>
+				<button type="green" @click="loding?register():''" class="uni-button uni-button-green">确定修改</button>
 			</view>
 		</view>
 	</view>
 </template>
 <script>
 import { mapMutations } from 'vuex';
-import { verify, loginMobile, getUserInfo } from '@/api/login.js';
+import { verify, loginMobile, getUserInfo } from '@/api/login.js';
+import { registerReset } from '@/api/set.js';
 export default {
 	data() {
 		return {
 			phone: '', //用户
 			code: '', //验证码
 			time: '', //保存倒计时对象
-			countDown: 0 //倒计时
+			countDown: 0, //倒计时
+			password: '',
+			repassword: '',
+			loding:true,//是否载入中
+			
 		};
 	},
 	onLoad() {},
@@ -47,7 +62,8 @@ export default {
 		...mapMutations('user', ['setUserInfo', 'login']),
 		// 手机登录
 		register() {
-			let obj = this;
+			let obj = this;
+			console.log('dianji')
 			if (obj.phone == '') {
 				obj.$api.msg('请输入电话号码');
 				return;
@@ -55,26 +71,37 @@ export default {
 			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.phone)) {
 				obj.$api.msg('请输入正确的手机号');
 				return;
+			}
+			if(obj.password == '') {
+				obj.$api.msg('请输入新密码')
+				return 
+			}
+			if(obj.password != obj.repassword) {
+				obj.$api.msg('两次密码不一致')
+				return 
 			}
 			if (obj.code == '') {
 				obj.$api.msg('请输入验证码');
 				return;
 			}
-
-			loginMobile({
-				phone: obj.phone, //账号
-				captcha: obj.code
+			obj.loding = false
+			registerReset({
+				// phone: obj.phone, //账号
+				// captcha: obj.code,
+				account: obj.account,
+				captcha: obj.code,
+				password: obj.password,
 			}).then(function(e) {
-				uni.setStorageSync('token', e.data.token);
-				getUserInfo({}).then(e => {
-					obj.login();
-					// 保存返回用户数据
-					obj.setUserInfo(e.data);
-					//成功跳转首页
-					uni.switchTab({
-						url: '/pages/index/index'
-					});
-				});
+				// uni.setStorageSync('token', e.data.token);
+				// getUserInfo({}).then(e => {
+				// 	obj.login();
+				// 	// 保存返回用户数据
+				// 	obj.setUserInfo(e.data);
+				// 	//成功跳转首页
+				// 	uni.switchTab({
+				// 		url: '/pages/index/index'
+				// 	});
+				// });
 			}).catch((e) => {
 				console.log(e);
 			});
@@ -131,20 +158,36 @@ page {
 .container_text {
 	width: 100%;
 	height: 500rpx;
-	top: 0rpx;
+	top: 0rpx;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
 	.banner-img {
 		width: 100%;
 		height: 100%;
+	}
+	.logo {
+		width: 186rpx;
+		height: 196rpx;
+	}
+	.logo-tit {
+		text-align: center;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 400;
+		color: #FAD6B0;
 	}
 }
 .login_text {
 	margin: auto 30rpx;
 	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	margin-top: -180rpx;
+	padding: 50rpx 102rpx 0;
+	background-color: #000;
+	// margin-top: -180rpx;
 	border-radius: 20rpx;
-	.login_input {
+	.login_input {
+		padding-bottom: 20rpx;
 		border-bottom: 1px solid #f0f0f0;
 		margin-bottom: 65rpx;
 		.login_img image {
@@ -158,12 +201,12 @@ page {
 			font-size: 28rpx !important;
 		}
 		.login_name {
-			color: #333333;
+			color: #fff;
 			.width {
 				width: 325rpx !important;
 			}
 			.code {
-				color: #5dbc7c;
+				color: #dbb189;
 				font-size: 23rpx;
 				border-left: 1px solid #eeeeee;
 				width: 150rpx;
@@ -172,11 +215,16 @@ page {
 			}
 		}
 	}
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
+	.uni-button-green {
+		background: linear-gradient(-74deg, #CE9C6D, #FFECD6);
+		// border: 1px solid;
+		border-image: linear-gradient(115deg, #FEEBD5, #FFFFFF, #E1AD7D) 1 1;
+		box-shadow: 3rpx 4rpx 5rpx 0px rgba(151, 118, 74, 0.5);
+		border-radius: 10rpx;
+		font-size: 34rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #874B19;
 	}
 	.uni-button {
 		height: 85rpx;

+ 474 - 385
pages/public/login.vue

@@ -1,386 +1,475 @@
-<template>
-	<view class="container">
-		<view class="container_text">
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
-		</view>
-		<view class="loginTitle"><text>登录</text></view>
-		<view class="login_text">
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
-				<view class="login_name"><input class="uni-input" v-model="username" focus placeholder="请输入手机号" /></view>
-			</view>
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="password" v-model="passward" focus placeholder="请输入密码" /></view>
-			</view>
-			<view><button type="green" class="uni-button uni-button-green" @click="toLogin">登录</button></view>
-			<view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true" hover-class="none" @click="register">注册</button></view>
-			<navigator url="./forget"><view class="forget">忘记密码</view></navigator>
-			<view class="flex other">
-				<view class="fenge"></view>
-				<view class="qita">其他方式登录</view>
-				<view class="fenge"></view>
-			</view>
-			<!-- #ifndef APP-PLUS -->
-					<view class="weixin" @click="wecahtLogin"><image src="/static/img/img05.png"></image></view>
-					<view class="weixin_text" @click="wecahtLogin">微信登录</view>
-					<!-- #endif -->
-					<!-- #ifdef APP-PLUS -->
-					<block v-if="!is_ios">
-						<view class="weixin" @click="wecahtLogin"><image src="/static/img/img05.png" mode="scaleToFill"></image></view>
-						<view class="weixin_text" @click="wecahtLogin">微信登录</view>
-					</block>
-					<block v-else>
-						<view class="ios_login flex" @click="wecahtLogin('weixin')">
-							<text class="iconfont iconweixin"></text>
-							<text class="weixin_text">微信登录</text>
-						</view>
-						<view v-if='is_apple_login' class="ios_login flex" @click="wecahtLogin('apple')">
-							<image class="loginIcon" src="/static/icon/appleIcon.png" mode=" scaleToFill"></image>
-							<text class="weixin_text">通过Apple登录</text>
-						</view>
-					</block>
-					<!-- #endif -->
-				</view>
-			</view>
-</template>
-
-<script>
-import { mapMutations } from 'vuex';
-import { login} from '@/api/login.js';
-import { getUserInfo} from '@/api/user.js';
-// #ifdef APP-PLUS
-// applelogin接口需要开发编写,基础项目中可能没有
-import { applelogin } from '@/api/set.js';
-// loginWx接口需要开发编写,基础项目中可能没有
-import { loginWx } from '@/api/login.js';
-// #endif
-// #ifdef H5
-import { loginWinxin } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	data() {
-		return {
-			username: '',
-			passward: '',
-			// #ifdef APP-PLUS
-			is_ios: false ,//判断是否为ios手机
-			is_apple_login:false,//是否有ios授权登录功能
-			// #endif
-		};
-	},
-	onLoad() {
-		let obj = this;
-		// #ifdef APP-PLUS
-		let system = uni.getStorageSync('platform');
-		// 判断是否为ios
-		if (system == 'ios') {
-			obj.is_ios = true;
-		}
-		uni.getSystemInfo({
-			success(e) {
-				if(+e.system.split('.')[0]>=13){
-					obj.is_apple_login=true;
-				}
-			}
-		})
-		// #endif
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'login']),
-		// 微信登录
-		wecahtLogin(type) {
-			let obj = this;
-			// #ifdef H5
-			let weichatBrowser = uni.getStorageSync('weichatBrowser');
-			if (weichatBrowser) {
-				loginWinxin();
-			}
-			// #endif
-			// #ifdef APP-PLUS
-			uni.login({
-				provider: type,
-				success(e) {
-					uni.getUserInfo({
-						provider: type,
-						success(es) {
-							if(type==='weixin'){
-								loginWx(es.userInfo)
-									.then(e => {
-										uni.setStorageSync('token', e.data.token);
-										getUserInfo({}).then(e => {
-											obj.login();
-											// 保存返回用户数据
-											obj.setUserInfo(e.data);
-											//成功跳转首页
-											uni.switchTab({
-												url: '/pages/index/index'
-											});
-										});
-									})
-									.catch(e => {
-										console.log(e);
-										uni.showModal({
-											content: JSON.stringify(e),
-											success() {},
-											fail() {}
-										});
-									});
-							}
-							if(type==='apple'){
-								console.log(es.userInfo);
-								applelogin({
-									account: es.userInfo.openId,
-								})
-									.then(function(e) {
-										console.log(e,'token')
-										uni.setStorageSync('token', e.data.token);
-										getUserInfo({}).then(e => {
-											obj.login();
-											// 保存返回用户数据
-											obj.setUserInfo(e.data);
-											//成功跳转首页
-											uni.switchTab({
-												url: '/pages/index/index'
-											});
-										});
-										
-									})
-									.catch(function(e) {
-										console.log(e);
-									});
-							}
-							
-						},
-						fail(es) {
-							uni.showModal({
-								content: JSON.stringify(es),
-								success() {
-									// obj.login();
-									// // 保存返回用户数据
-									// obj.setUserInfo(e.data);
-									// //成功跳转首页
-									// uni.switchTab({
-									// 	url: '/pages/index/index'
-									// });
-								}
-							});
-						}
-					});
-				},
-				fail(e) {
-					uni.showModal({
-						title: '提示',
-						content: JSON.stringify(e),
-						showCancel: false
-					});
-				}
-			});
-			// #endif
-		},
-		//登录
-		async toLogin() {
-			let obj = this;
-			obj.logining = true;
-			if (obj.username == '') {
-				obj.$api.msg('请输入手机号');
-				return;
-			}
-			if (obj.passward == '') {
-				obj.$api.msg('请输入密码');
-				return;
-			}
-			login({
-				account: obj.username,
-				password: obj.passward
-			})
-				.then(function(e) {
-					uni.setStorageSync('token', e.data.token);
-					obj.$store.commit('hasLogin', true);
-					getUserInfo({}).then(e => {
-						obj.login();
-						// 保存返回用户数据
-						obj.setUserInfo(e.data);
-						let ur = uni.getStorageSync('present')|| '/pages/index/index';
-						//成功跳转首页
-						uni.switchTab({
-							url: ur,
-							fail(e) {
-								uni.navigateTo({
-									url: ur,
-									fail(e) {
-										uni.navigateTo({
-											url: '/pages/index/index',
-										});
-									}
-								});
-							}
-						});
-					});
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-		},
-		//跳转注册页
-		register() {
-			uni.navigateTo({
-				url: `/pages/public/register`
-			});
-		},
-		// 后退
-		navBack() {
-			uni.navigateBack();
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-	/* #ifdef APP-PLUS */
-	
-	.ios_login {
-		width: 260rpx;
-		border-radius: 12rpx;
-		justify-content: center;
-		border: 1px solid #212121;
-		margin: 24rpx auto;
-		padding: 10rpx;
-		background-color: #212121;
-		color: #ffffff;
-		.loginIcon {
-			width: 50rpx;
-			height: 50rpx;
-		}
-		.weixin_text {
-			line-height: 1;
-			margin-left: 20rpx;
-			color: #ffffff !important;
-		}
-	}
-	
-	/* #endif */
-	.ios_login {
-		width: 350rpx;
-		border-radius: 12rpx;
-		justify-content: center;
-		border: 1px solid #212121;
-		margin: 24rpx auto;
-		padding: 15rpx;
-		background-color: #212121;
-		color: #ffffff;
-		font-size: 32rpx;
-		.loginIcon {
-			font-size: 35rpx;
-			width: 35rpx;
-			height: 35rpx;
-		}
-		.weixin_text {
-			line-height: 1;
-			margin-left: 20rpx;
-			color: #ffffff !important;
-		}
-	}
-	
-page {
-	height: 100%;
-}
-.container {
-	width: 100%;
-	height: 100%;
-	background-size: 100%;
-}
-.container_text {
-	width: 100%;
-	height: 500rpx;
-	top: 0rpx;
-	.banner-img {
-		width: 100%;
-		height: 100%;
-	}
-}
-.login_text {
-	margin: auto 30rpx;
-	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	margin-top: -180rpx;
-	border-radius: 20rpx;
-	.login_input {
-		border-bottom: 1px solid #f0f0f0;
-		margin-bottom: 65rpx;
-		.login_img image {
-			height: 35rpx;
-			width: 29rpx;
-			margin-right: 20rpx;
-		}
-		.uni-input {
-			text-align: left;
-			width: 470rpx;
-			font-size: 28rpx !important;
-		}
-		.login_name {
-			color: #333333;
-		}
-	}
-
-	.other {
-		margin-top: 60rpx;
-		.fenge {
-			width: 30%;
-			height: 2rpx;
-			background-color: #eeeeee;
-		}
-		.qita {
-			font-size: 28rpx;
-			color: #999999;
-		}
-	}
-	.weixin {
-		width: 75rpx;
-		height: 75rpx;
-		margin: 25rpx auto;
-	}
-	.weixin image {
-		width: 100%;
-		height: 100%;
-	}
-	.weixin_text {
-		text-align: center;
-		font-size: 28rpx;
-		color: #999999;
-	}
-	.forget {
-		font-size: 28rpx;
-		width: 100%;
-		text-align: right;
-		color: #999999;
-	}
-
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-	}
-	.uni-button-green-plain {
-		border: 1px solid #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-		color: #5dbc7c;
-		background-color: #ffffff;
-	}
-	.uni-button {
-		height: 85rpx;
-		line-height: 85rpx;
-	}
-}
-.loginTitle {
-	position: absolute;
-	top: 250rpx;
-	width: 100%;
-	text-align: center;
-	color: white;
-	font-size: 40rpx;
-}
+<template>
+	<view class="container">
+		<view class="container_text" >
+			<image src="../../static/icon/logo.png" mode="" class="logo"></image>
+			<view class="logo-tit"><text>博·赢</text></view>
+			<!-- <image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image> -->
+		</view>
+		<view class="login_text">
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="/static/icon/icon-phone.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" v-model="username" focus placeholder="请输入手机号" />
+				</view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="../../static/icon/icon-code.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="passward" focus
+						placeholder="请输入密码" /></view>
+			</view>
+			<view><button type="green" class="uni-button uni-button-green" @click="toLogin">登录</button></view>
+			<!-- <view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true"
+					hover-class="none" @click="register">注册</button></view> -->
+			<view class=" flex bombtn">
+				<navigator url="./forget">
+					<view class="bbtn">忘记密码</view>
+				</navigator>
+				<view class="jg">
+				</view>
+				<view class="bbtn" @click="register">注册账号</view>
+			</view>
+			<!-- <view class="flex other">
+				<view class="fenge"></view>
+				<view class="qita">其他方式登录</view>
+				<view class="fenge"></view>
+			</view> -->
+			<!-- #ifndef APP-PLUS -->
+			<!-- <view class="weixin" @click="wecahtLogin">
+				<image src="/static/img/img05.png"></image>
+			</view>
+			<view class="weixin_text" @click="wecahtLogin">微信登录</view> -->
+			<!-- #endif -->
+			<!-- #ifdef APP-PLUS -->
+			<!-- <block v-if="!is_ios">
+				<view class="weixin" @click="wecahtLogin">
+					<image src="/static/img/img05.png" mode="scaleToFill"></image>
+				</view>
+				<view class="weixin_text" @click="wecahtLogin">微信登录</view>
+			</block>
+			<block v-else>
+				<view class="ios_login flex" @click="wecahtLogin('weixin')">
+					<text class="iconfont iconweixin"></text>
+					<text class="weixin_text">微信登录</text>
+				</view>
+				<view v-if='is_apple_login' class="ios_login flex" @click="wecahtLogin('apple')">
+					<image class="loginIcon" src="/static/icon/appleIcon.png" mode=" scaleToFill"></image>
+					<text class="weixin_text">通过Apple登录</text>
+				</view>
+			</block> -->
+			<!-- #endif -->
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		mapMutations
+	} from 'vuex';
+	import {
+		login
+	} from '@/api/login.js';
+	import {
+		getUserInfo
+	} from '@/api/user.js';
+	// #ifdef APP-PLUS
+	// applelogin接口需要开发编写,基础项目中可能没有
+	import {
+		applelogin
+	} from '@/api/set.js';
+	// loginWx接口需要开发编写,基础项目中可能没有
+	import {
+		loginWx
+	} from '@/api/login.js';
+	// #endif
+	// #ifdef H5
+	import {
+		loginWinxin
+	} from '@/utils/wxAuthorized';
+	// #endif
+	export default {
+		data() {
+			return {
+				username: '',
+				passward: '',
+				// #ifdef APP-PLUS
+				is_ios: false, //判断是否为ios手机
+				is_apple_login: false, //是否有ios授权登录功能
+				// #endif
+			};
+		},
+		onLoad() {
+			let obj = this;
+			// #ifdef APP-PLUS
+			let system = uni.getStorageSync('platform');
+			// 判断是否为ios
+			if (system == 'ios') {
+				obj.is_ios = true;
+			}
+			uni.getSystemInfo({
+				success(e) {
+					if (+e.system.split('.')[0] >= 13) {
+						obj.is_apple_login = true;
+					}
+				}
+			})
+			// #endif
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo', 'login']),
+			// 微信登录
+			wecahtLogin(type) {
+				let obj = this;
+				// #ifdef H5
+				let weichatBrowser = uni.getStorageSync('weichatBrowser');
+				if (weichatBrowser) {
+					loginWinxin();
+				}
+				// #endif
+				// #ifdef APP-PLUS
+				uni.login({
+					provider: type,
+					success(e) {
+						uni.getUserInfo({
+							provider: type,
+							success(es) {
+								if (type === 'weixin') {
+									loginWx(es.userInfo)
+										.then(e => {
+											uni.setStorageSync('token', e.data.token);
+											getUserInfo({}).then(e => {
+												obj.login();
+												// 保存返回用户数据
+												obj.setUserInfo(e.data);
+												//成功跳转首页
+												uni.switchTab({
+													url: '/pages/index/index'
+												});
+											});
+										})
+										.catch(e => {
+											console.log(e);
+											uni.showModal({
+												content: JSON.stringify(e),
+												success() {},
+												fail() {}
+											});
+										});
+								}
+								if (type === 'apple') {
+									console.log(es.userInfo);
+									applelogin({
+											account: es.userInfo.openId,
+										})
+										.then(function(e) {
+											console.log(e, 'token')
+											uni.setStorageSync('token', e.data.token);
+											getUserInfo({}).then(e => {
+												obj.login();
+												// 保存返回用户数据
+												obj.setUserInfo(e.data);
+												//成功跳转首页
+												uni.switchTab({
+													url: '/pages/index/index'
+												});
+											});
+
+										})
+										.catch(function(e) {
+											console.log(e);
+										});
+								}
+
+							},
+							fail(es) {
+								uni.showModal({
+									content: JSON.stringify(es),
+									success() {
+										// obj.login();
+										// // 保存返回用户数据
+										// obj.setUserInfo(e.data);
+										// //成功跳转首页
+										// uni.switchTab({
+										// 	url: '/pages/index/index'
+										// });
+									}
+								});
+							}
+						});
+					},
+					fail(e) {
+						uni.showModal({
+							title: '提示',
+							content: JSON.stringify(e),
+							showCancel: false
+						});
+					}
+				});
+				// #endif
+			},
+			//登录
+			async toLogin() {
+				let obj = this;
+				obj.logining = true;
+				if (obj.username == '') {
+					obj.$api.msg('请输入手机号');
+					return;
+				}
+				if (obj.passward == '') {
+					obj.$api.msg('请输入密码');
+					return;
+				}
+				login({
+						account: obj.username,
+						password: obj.passward
+					})
+					.then(function(e) {
+						uni.setStorageSync('token', e.data.token);
+						obj.$store.commit('hasLogin', true);
+						getUserInfo({}).then(e => {
+							obj.login();
+							// 保存返回用户数据
+							obj.setUserInfo(e.data);
+							let ur = uni.getStorageSync('present') || '/pages/index/index';
+							//成功跳转首页
+							uni.switchTab({
+								url: ur,
+								fail(e) {
+									uni.navigateTo({
+										url: ur,
+										fail(e) {
+											uni.navigateTo({
+												url: '/pages/index/index',
+											});
+										}
+									});
+								}
+							});
+						});
+					})
+					.catch(function(e) {
+						console.log(e);
+					});
+			},
+			//跳转注册页
+			register() {
+				uni.navigateTo({
+					url: `/pages/public/register`
+				});
+			},
+			// 后退
+			navBack() {
+				uni.navigateBack();
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	/* #ifdef APP-PLUS */
+
+	.ios_login {
+		width: 260rpx;
+		border-radius: 12rpx;
+		justify-content: center;
+		border: 1px solid #212121;
+		margin: 24rpx auto;
+		padding: 10rpx;
+		background-color: #212121;
+		color: #ffffff;
+
+		.loginIcon {
+			width: 50rpx;
+			height: 50rpx;
+		}
+
+		.weixin_text {
+			line-height: 1;
+			margin-left: 20rpx;
+			color: #ffffff !important;
+		}
+	}
+
+	/* #endif */
+	.ios_login {
+		width: 350rpx;
+		border-radius: 12rpx;
+		justify-content: center;
+		border: 1px solid #212121;
+		margin: 24rpx auto;
+		padding: 15rpx;
+		background-color: #212121;
+		color: #ffffff;
+		font-size: 32rpx;
+
+		.loginIcon {
+			font-size: 35rpx;
+			width: 35rpx;
+			height: 35rpx;
+		}
+
+		.weixin_text {
+			line-height: 1;
+			margin-left: 20rpx;
+			color: #ffffff !important;
+		}
+	}
+
+	page {
+		height: 100%;
+	}
+
+	.container {
+		width: 100%;
+		height: 100%;
+		background-size: 100%;
+	}
+
+	.container_text {
+		width: 100%;
+		height: 500rpx;
+		top: 0rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		.banner-img {
+			width: 100%;
+			height: 100%;
+		}
+		.logo {
+			width: 186rpx;
+			height: 196rpx;
+		}
+		.logo-tit {
+			text-align: center;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #FAD6B0;
+		}
+	}
+
+	.login_text {
+		margin: auto 30rpx;
+		position: relative;
+		padding: 100rpx 102rpx;
+		background-color: #000;
+		// margin-top: -180rpx;
+		border-radius: 20rpx;
+
+		.login_input {
+			padding-bottom: 20rpx;
+			border-bottom: 1px solid #f0f0f0;
+			margin-bottom: 65rpx;
+			background-color: #000;
+
+			.login_img image {
+				height: 35rpx;
+				width: 29rpx;
+				margin-right: 20rpx;
+			}
+
+			.uni-input {
+				background-color: #000;
+				text-align: left;
+				width: 470rpx;
+				font-size: 28rpx !important;
+			}
+
+			.login_name {
+				color: #fff;
+				background-color: #000;
+			}
+		}
+
+		.other {
+			margin-top: 60rpx;
+
+			.fenge {
+				width: 30%;
+				height: 2rpx;
+				background-color: #eeeeee;
+			}
+
+			.qita {
+				font-size: 28rpx;
+				color: #999999;
+			}
+		}
+
+		.weixin {
+			width: 75rpx;
+			height: 75rpx;
+			margin: 25rpx auto;
+		}
+
+		.weixin image {
+			width: 100%;
+			height: 100%;
+		}
+
+		.weixin_text {
+			text-align: center;
+			font-size: 28rpx;
+			color: #999999;
+		}
+
+		.forget {
+			font-size: 28rpx;
+			width: 100%;
+			text-align: right;
+			color: #999999;
+		}
+
+		.uni-button-green {
+			background: linear-gradient(-74deg, #CE9C6D, #FFECD6);
+			// border: 1px solid;
+			border-image: linear-gradient(115deg, #FEEBD5, #FFFFFF, #E1AD7D) 1 1;
+			box-shadow: 3rpx 4rpx 5rpx 0rpx rgba(151, 118, 74, 0.5);
+			border-radius: 45rpx;
+			font-size: 34rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #97764A;
+		}
+
+		.uni-button-green-plain {
+			border: 1px solid #5dbc7c;
+			margin: 40rpx 10rpx;
+			border-radius: 50rpx;
+			color: #5dbc7c;
+			background-color: #ffffff;
+		}
+
+		.uni-button {
+			height: 85rpx;
+			line-height: 85rpx;
+		}
+	}
+
+	.loginTitle {
+		position: absolute;
+		top: 250rpx;
+		width: 100%;
+		text-align: center;
+		color: white;
+		font-size: 40rpx;
+	}
+	.bombtn {
+		margin-top: 36rpx;
+		justify-content: center;
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		.jg {
+			height: 28rpx;
+			width: 2rpx;
+			background-color: #fff;
+			margin: 0 10rpx;
+		}
+	}
 </style>

+ 69 - 28
pages/public/register.vue

@@ -1,35 +1,41 @@
 <template>
 	<view class="container">
-		<view class="container_text" >
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
+		<view class="container_text" >
+			<image src="../../static/icon/logo.png" mode="" class="logo"></image>
+			<view class="logo-tit"><text>博·赢</text></view>
+			<!-- <image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image> -->
 		</view>
-		<view class="loginTitle"><text>注册</text></view>
+		
 		<view class="login_text">
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
+				<view class="login_img"><image src="../../static/icon/icon-phone.png"></image></view>
 				<view class="login_name"><input class="uni-input" v-model="phone" focus placeholder="请输入手机号" /></view>
 			</view>
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
+				<view class="login_img"><image src="../../static/icon/icon-code.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus placeholder="请输入密码" /></view>
 			</view>
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
+				<view class="login_img"><image src="../../static/icon/icon-code.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="password" v-model="repassword" focus placeholder="请重复输入密码" /></view>
 			</view>
-			<view class="login_input flex" style="display: none;">
-				<view class="login_img"><image src="/static/icon/img07.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="text" v-model="invitation" focus placeholder="请输入邀请码" /></view>
-			</view>
-			<!-- <view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img06.png"></image></view>
+			<view class="login_input flex">
+				<view class="login_img"><image src="../../static/icon/icon-yzm.png"></image></view>
 				<view class="login_name flex">
 					<input class="uni-input width" v-model="code" focus placeholder="请输入验证码" />
 					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 				</view>
-			</view> -->
-			<view><button type="green" @click="register" class="uni-button uni-button-green">注册账号</button></view>
-			<view><button class="uni-button uni-button-green uni-button-green-plain" type="green" plain="true" hover-class="none" @click="login">返回登录</button></view>
+			</view>
+			<view><button type="green" @click="register" class="uni-button uni-button-green">注册</button></view>
+			<!-- <view><button class="uni-button uni-button-green uni-button-green-plain" type="green" plain="true" hover-class="none" @click="login">返回登录</button></view> -->
+			<view class=" flex bombtn">
+				<navigator url="./forget">
+					<view class="bbtn">忘记密码</view>
+				</navigator>
+				<view class="jg">
+				</view>
+				<view class="bbtn" @click="login">账号登录</view>
+			</view>
 		</view>
 	</view>
 </template>
@@ -163,20 +169,36 @@ page {
 .container_text {
 	width: 100%;
 	height: 500rpx;
-	top: 0rpx;
+	top: 0rpx;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
 	.banner-img {
 		width: 100%;
 		height: 100%;
+	}
+	.logo {
+		width: 186rpx;
+		height: 196rpx;
+	}
+	.logo-tit {
+		text-align: center;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 400;
+		color: #FAD6B0;
 	}
 }
 .login_text {
 	margin: auto 30rpx;
 	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	margin-top: -180rpx;
+	padding: 20rpx 102rpx 100rpx;
+	background-color: #000;
+	// margin-top: -180rpx;
 	border-radius: 20rpx;
-	.login_input {
+	.login_input {
+		padding-bottom: 20rpx;
 		border-bottom: 1px solid #f0f0f0;
 		margin-bottom: 65rpx;
 		.login_img image {
@@ -190,7 +212,7 @@ page {
 			font-size: 28rpx !important;
 		}
 		.login_name {
-			color: #333333;
+			color: #fff;
 		}
 	}
 
@@ -227,11 +249,16 @@ page {
 		color: #999999;
 	}
 
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
+	.uni-button-green {
+		background: linear-gradient(-74deg, #CE9C6D, #FFECD6);
+		// border: 1px solid;
+		border-image: linear-gradient(115deg, #FEEBD5, #FFFFFF, #E1AD7D) 1 1;
+		box-shadow: 3rpx 4rpx 5rpx 0rpx rgba(151, 118, 74, 0.5);
+		border-radius: 10rpx;
+		font-size: 34rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #874B19;
 	}
 	.uni-button-green-plain {
 		border: 1px solid #5dbc7c;
@@ -265,7 +292,7 @@ page {
 	width: 325rpx !important;
 }
 .code {
-	color: #5dbc7c;
+	color: #dbb189;
 	font-size: 23rpx;
 	border-left: 1px solid #eeeeee;
 	width: 150rpx;
@@ -275,7 +302,21 @@ page {
 uni-button {
 	height: 80rpx !important;
 	line-height: 80rpx !important;
-}
+}
+.bombtn {
+		margin-top: 36rpx;
+		justify-content: center;
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		.jg {
+			height: 28rpx;
+			width: 2rpx;
+			background-color: #fff;
+			margin: 0 10rpx;
+		}
+	}
 
 </style>
 

+ 114 - 0
pages/public/success.vue

@@ -0,0 +1,114 @@
+<template>
+	<view class="content">
+		<image src="../../static/img/success.png" mode="" class="okimg"></image>
+		<text class="tit">提交成功</text>
+		<text class="tit1">请耐心等待审核</text>
+		<view class="btn-wrapper" >
+			<navigator url="/pages/index/index" open-type="switchTab" class="bank">返回首页</navigator>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				orderId:'',
+				money: '',
+			}
+		},
+		onLoad() {
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang='scss'>
+	.content{
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		padding-top: 277rpx;
+	}
+	.success-icon{
+		font-size: 160upx;
+		color: #5dbc7c;
+		margin-top: 100upx;
+	}
+	.tit{
+		margin-top: -50rpx;
+		font-size: 40rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		line-height: 1.5;
+	}
+	.tit1 {
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #B3B3B3;
+	}
+	.btn-group{
+		padding-top: 100upx;
+	}
+	.mix-btn {
+		margin-top: 30upx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 600upx;
+		height: 80upx;
+		font-size: $font-lg;
+		color: #fff;
+		background-color: $base-color;
+		border-radius: 10upx;
+		&.hollow{
+			background: #fff;
+			color: #303133;
+			border: 1px solid #ccc;
+		}
+	}
+	.okimg {
+		width: 362rpx;
+		height: 267rpx;
+	}
+	.btn-wrapper {
+		margin-top: 46rpx;
+		display: flex;
+		.look-btn {
+			width: 301rpx;
+			height: 78rpx;
+			background: #901b21;
+			text-align: center;
+			line-height: 78rpx;
+			border-radius: 10rpx;
+			color: #fff;
+			margin-right: 37rpx;
+		}
+		.bank {
+			/* width: 301rpx;
+			height: 78rpx;
+			text-align: center;
+			line-height: 78rpx;
+			background: #FFFFFF;
+			border: 2px solid #901B21;
+			border-radius: 10rpx;
+			color: #901b21; */
+			width: 350rpx;
+			line-height: 80rpx;
+			text-align: center;
+			background: linear-gradient(-74deg, #CE9C6D, #FFECD6);
+			box-shadow: 3rpx 4rpx 5rpx 0px rgba(151, 118, 74, 0.5);
+			border-radius: 40rpx;
+		
+			font-size: 34rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #874B19;
+		}
+	}
+</style>

+ 121 - 60
pages/set/userinfo.vue

@@ -1,35 +1,56 @@
 <template>
 	<view class="content">
-		<view class="row b-b">
+		<view class="row1">
+			<text class="tit">头像</text>
+			<view class="background-img" @click.stop="imgsub"><image class="background-img" v-model="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill"></image></view>
+		</view>
+		<view class="row">
 			<text class="tit">昵称</text>
-			<input class="input" type="text" v-model="name" placeholder="修改昵称" placeholder-class="placeholder" />
+			<input class="input" type="text" v-model="userInfo.nickname" placeholder-class="placeholder" />
+		</view>
+		<view class="row">
+			<text class="tit">ID</text>
+			<input class="input" type="text"  disabled="true" v-model="userInfo.uid" placeholder-class="placeholder" />
+		</view>
+		<view class="row">
+			<text class="tit">账户</text>
+			<input class="input" type="text"  disabled="true" v-model="userInfo.account" placeholder-class="placeholder" />
 		</view>
-		<button class="add-btn" @click="confirm">提交</button>
+		<view class="add-btn" @click="confirm">提交</view>
+		<view class="out" @click="toLogout">退出登录</view>
 	</view>
 </template>
 
 <script>
-import { mapState } from 'vuex';
-import { userEdit } from '@/api/set.js';
-export default {
-	data() {
-		return {
-			name: ''
-		};
-	},
+import { mapState,mapMutations } from 'vuex';
+import { uploads } from '@/api/user.js';
+import {userEdit,logout} from '@/api/set.js';
 
-	computed: {
-		...mapState('user', ['userInfo'])
+export default{
+	data(){
+		return{
+			
+		}
 	},
-	onShow(option) {
-		this.name = this.userInfo.nickname + '';
+	onLoad() {
+		console.log(this.userInfo)
+	},
+	computed: {
+		...mapState('user',['userInfo'])
 	},
 	methods: {
-		switchChange(e) {
-			this.addressData.default = e.value;
+		...mapMutations('user',['logout']),
+		imgsub() {
+			console.log('上传头像')
+			uploads({
+				filename: ''
+			}).then(data => {
+				console.log("data",data);
+				this.userInfo.avatar = data[0].url;
+			})
 		},
 		confirm() {
-			userEdit({ nickname: this.name, avatar: this.userInfo.avatar })
+			userEdit({ avatar: this.userInfo.avatar ,nickname: this.userInfo.nickname})
 				.then(e => {
 					this.$api.msg('修改成功');
 					setTimeout(()=> {
@@ -42,52 +63,92 @@ export default {
 				.catch(e => {
 					console.log(e);
 				});
-		}
+		},
+		toLogout(){
+			let obj = this;
+			uni.showModal({
+			    content: '确定要退出登录么',
+			    success: (e)=>{
+			    	if(e.confirm){
+						logout({}).then((e) => {
+							uni.navigateBack();
+						}).catch((e) => {
+							console.log(e);
+						})
+			    		obj.logout();
+			    	}
+			    }
+			});
+		},
 	}
-};
+}
 </script>
 
 <style lang="scss">
-page {
-	background: $page-color-base;
-	padding-top: 16upx;
-}
-
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30upx;
-	height: 110upx;
-	background: #fff;
-
-	.tit {
-		flex-shrink: 0;
-		width: 120upx;
-		font-size: 30upx;
-		color: $font-color-dark;
+	.row1 {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		position: relative;
+		padding: 0 30upx;
+		height: 110upx;
+		background: #000;
+		margin-bottom: 20upx;
+		.tit {
+			flex-shrink: 0;
+			width: 120upx;
+			font-size: $font-lg;
+			color: #fff;
+		}
+		
+		.background-img {
+			width: 80rpx;
+			height: 80rpx;
+			border-radius: 50%;
+			background: #f2f2f2;
+		}
 	}
-	.input {
-		flex: 1;
-		font-size: 30upx;
-		color: $font-color-dark;
+	.row {
+		display: flex;
+		align-items: center;
+		padding: 0 30upx;
+		height: 110upx;
+		background: #000;
+	
+		.tit {
+			flex-shrink: 0;
+			width: 120upx;
+			font-size: $font-lg;
+			color: #fff;
+		}
+		.input {
+			flex: 1;
+			text-align: right;
+			font-size: $font-base;
+			color: #fff;
+		}
 	}
-	.iconlocation {
-		font-size: 36upx;
-		color: $font-color-light;
+	.add-btn {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 158rpx auto 30rpx;
+		width: 560rpx;
+		height: 80rpx;
+		background: linear-gradient(-74deg, #CE9C6D, #FFECD6);
+		border-radius: 40px;
+		color: #FFFFFF;
 	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690upx;
-	height: 80upx;
-	margin: 60upx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10upx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-</style>
+	.out {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 0 auto 30rpx;
+		width: 560rpx;
+		height: 80rpx;
+		border: 1px solid #FFECD6;
+		background: #FFFFFF;
+		border-radius: 40px;
+		color: #CE9C6D;
+	}
+</style>

+ 222 - 0
pages/user/applyList.vue

@@ -0,0 +1,222 @@
+<template>
+	<view class="content">
+		<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':height}" 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" :style="{'height':height}">
+					<!-- 申请列表 -->
+					<view class="apply-box" v-for="item in 20">
+						<view class="box-top">
+							<image src="" mode="" class="user-img"></image>
+							<view class="user-info">
+								<view class="user-name clamp">
+								假猪套	假猪套假猪套假
+								</view>
+								<view class="user-phone">
+								13245678911
+								</view>
+							</view>
+						</view>
+						<view class="apply-info flex">
+							<view class="img-wrap">
+								<image src="" mode="" class="upimg" v-for="item in 2"></image>
+							</view>
+							<view class="btn-wrap flex" v-if="tabCurrentIndex == 0">
+								<view class="btn btn-reject">拒绝</view>
+								<view class="btn btn-pass">通过</view>
+							</view>
+							<view class="btn-wrap" v-if="tabCurrentIndex == 1">
+								已通过
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				height: '',
+				tabCurrentIndex: 0,
+				navList: [{
+						state: 0,
+						text: '未审核',
+						loadingType: 'more',
+						orderList: [],
+					},
+					{
+						state: 1,
+						text: '已审核',
+						loadingType: 'more',
+						orderList: [],
+					}
+				]
+			}
+		},
+		onReady(res) {
+			var obj = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box').boundingClientRect();
+					query.exec(function(res) {
+						console.log(res, 'ddddddddddddd');
+						obj.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', obj.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		methods: {
+			//顶部tab点击
+			tabClick(index) {
+				this.tabCurrentIndex = index;
+			},
+			changeTab(e) {
+				this.tabCurrentIndex = e.target.current;
+				this.loadData('tabChange');
+			},
+			loadData(source) {
+				console.log('swiper')
+				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';
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.navbar {
+		display: flex;
+		height: 40px;
+		padding: 0 5px;
+		background: #000;
+		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: #999999;
+			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 {
+		background-color: #15130f;
+		.apply-box {
+			height: 317rpx;
+			width: 702rpx;
+			// background-color: red;
+			margin: 0 auto;
+			border-bottom: 1px solid #6c6a68;
+			padding-top: 30rpx;
+			.box-top {
+				height: 80rpx;
+				// background-color: #bfa;
+				display: flex;
+				justify-content: flex-start;
+				.user-img {
+					width: 80rpx;
+					height: 80rpx;
+					background-color: #eee;
+					margin-right: 20rpx;
+					flex-shrink: 0;
+					border-radius: 50%;
+				}
+				.user-name {
+					max-width: 500rpx;
+					font-size: 30rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #FFFFFF;
+				}
+				.user-phone {
+					padding-top: 10rpx;
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #FFFFFF;
+				}
+			}
+			.apply-info {
+				padding: 25rpx 0 0 100rpx;
+				justify-content: space-between;
+				
+				.img-wrap {
+					.upimg {
+						width: 153rpx;
+						height: 152rpx;
+						border-radius: 10rpx;
+						background-color: #999;
+						margin-left: 10rpx;
+					}
+				}
+				.btn-wrap {
+					align-self: flex-end;
+					color: #FAD6B0;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #FAD6B0;
+					.btn {
+						width: 98rpx;
+						line-height: 47rpx;
+						text-align: center;
+					}
+					.btn-reject {
+						border: 1px solid #FAD6B0;
+						border-radius: 5rpx;
+						color: #FAD6B0;
+					}
+					.btn-pass {
+						background: linear-gradient(-74deg, #CE9C6D, #FFECD6);
+						border-image: linear-gradient(115deg, #FEEBD5, #FFFFFF, #E1AD7D) 1 1;
+						box-shadow: 3rpx 4rpx 5rpx 0rpx rgba(151, 118, 74, 0.5);
+						border-radius: 5rpx;
+						color: #874B19;
+						margin-left: 10rpx;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 268 - 0
pages/user/promotion.vue

@@ -0,0 +1,268 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<image src="../../static/img/promation.png" mode="" class="bg"></image>
+			<view class="money-box">
+				<view class="money">
+					{{ all }}
+					<text>人</text>
+				</view>
+				<view class="text">我的推广人数</view>
+			</view>
+		</view>
+		<view class="navbar flex">
+			<view class="nav-item">
+				<view class="num">5</view>
+				<view class="font">奖励层数</view>
+			</view>
+			<view class="xian"></view>
+			<view class="nav-item">
+				<view class="num">120</view>
+				<view class="font">成交人数</view>
+			</view>
+		</view>
+		<view class="swiper-box" :style="{ height: maxheight + 'px' }">
+			<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+				<!-- 空白页 -->
+				<empty v-if="loaded === true && list.length === 0"></empty>
+
+				<!-- 订单列表 -->
+				<view class="order-item flex" v-for="(item, index) in list" :key="index">
+					<view class="title-box flex_item">
+						<view class="title-avatar"><image :src="item.avatar"></image></view>
+						<view class="list_tpl">
+							<view class="title">
+								<text>{{ item.email || item.phone }}</text>
+							</view>
+							<view class="time">
+								<text>{{ item.time }}</text>
+							</view>
+						</view>
+					</view>
+				</view>
+				<uni-load-more :status="loadingType"></uni-load-more>
+			</scroll-view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { mapState, mapMutations } from 'vuex';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	components: {
+		empty,
+		uniLoadMore
+	},
+	onReady() {
+		//初始化获取页面宽度
+		uni.createSelectorQuery()
+			.select('.content')
+			.fields(
+				{
+					size: true
+				},
+				data => {
+					console.log(data);
+					console.log(Math.floor((data.width / 750) * 300));
+					//保存头部高度
+					this.maxheight = data.height - Math.floor((data.width / 750) * 570);
+					console.log(this.maxheight);
+				}
+			)
+			.exec();
+	},
+	data() {
+		return {
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			all: '100',
+			list: '',
+			loadingType: 'more'
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		// this.loadData();
+	},
+	methods: {
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #000;
+	height: 100%;
+}
+.content-money {
+	padding-bottom: 30rpx;
+	background: $page-color-base;
+	position: relative;
+	.bg {
+		position: absolute;
+		width: 100%;
+	}
+	.moneyTx {
+		position: absolute;
+		top: 150rpx;
+		right: 0rpx;
+		width: 150rpx;
+		padding: 10rpx 30rpx;
+		border: 2px solid #ffffff;
+		border-top-left-radius: 99rpx;
+		border-bottom-left-radius: 99rpx;
+		color: #ffffff;
+		line-height: 1;
+		font-size: $font-base;
+	}
+	.buttom-box {
+		background-color: #ffffff;
+		text-align: center;
+		margin: 0 30rpx;
+		padding: 20rpx 0;
+		border-radius: $border-radius-sm;
+		margin-top: -60rpx;
+		.buttom {
+			font-size: $font-lg;
+			flex-grow: 1;
+		}
+		.interval {
+			width: 2px;
+			height: 60rpx;
+			background-color: #eeeeee;
+		}
+		.icon {
+			height: 50rpx;
+			width: 48rpx;
+			margin: 0 auto;
+			.icon-img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+}
+.money-box {
+	// background-color: $base-color;
+	padding-top: var(--status-bar-height);
+	height: 368rpx;
+	color: #fad6b0;
+	text-align: center;
+	position: relative;
+	.text {
+		font-size: $font-sm;
+	}
+	.money {
+		padding-top: 147rpx;
+		font-size: 47px;
+		font-family: PingFang SC;
+		font-weight: bold;
+		text {
+			font-size: 24px;
+		}
+	}
+}
+
+.navbar {
+	width: 702rpx;
+	height: auto;
+	padding: 20rpx 0;
+	background: linear-gradient(90deg, #393326, #27221d);
+	border: 2rpx solid #f5d2ad;
+	border-radius: 10rpx;
+	position: relative;
+	z-index: 10;
+	margin: 0 auto;
+	.xian {
+		width: 2rpx;
+		height: 54rpx;
+		background: #eeeeee;
+	}
+	.nav-item {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #fff;
+		position: relative;
+		width: 50%;
+		.num {
+			font-size: 32rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fad6b0;
+		}
+		.font {
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+		}
+	}
+}
+//列表
+
+.swiper-box {
+	padding-top: 10rpx;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+
+		.title-box {
+			width: 100%;
+
+			.title-avatar {
+				width: 100rpx;
+				height: 100rpx;
+				margin-right: 25rpx;
+				border-radius: 100%;
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 100%;
+				}
+			}
+
+			.list_tpl {
+				width: 85%;
+
+				.title {
+					font-size: $font-lg;
+					color: $font-color-base;
+					overflow: hidden; //超出的文本隐藏
+					text-overflow: ellipsis; //溢出用省略号显示
+					white-space: nowrap;
+				}
+
+				.time {
+					font-size: $font-base;
+					color: $font-color-light;
+				}
+			}
+		}
+
+		.money {
+			color: #db1935;
+			font-size: $font-lg;
+		}
+	}
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #000;
+	}
+}
+</style>

+ 328 - 0
pages/user/team.vue

@@ -0,0 +1,328 @@
+<template>
+	<view class="content">
+		<!-- 头部 -->
+
+		<view class="container">
+			<view class="jiedianbackground"><image src="../../static/img/jiedian.png" mode=""></image></view>
+			<view class="number-box">
+				<view class="number">
+					<text>100</text>
+					人
+				</view>
+				<view class="renshu">我的团队人数</view>
+			</view>
+		</view>
+		<view class="message">
+			<!-- <view class="back" @click="navBack()" v-if="parentList.length > 0">
+				<image src="../../static/img/zhengyi10.png" mode=""></image>
+				返回
+			</view> -->
+			<view class="relation-box">
+				<view class="relation">
+					<view class="headbox">
+						<view class="head">
+							<view class="photo"><image v-if="avatar" :src="avatar || '/static/error/missing-face.png'"></image></view>
+						</view>
+						<!-- <view class="head-title">
+							<image src="../../static/error/missing-face.png" mode=""></image>
+						</view> -->
+					</view>
+					<view class="information">
+						<view class="name clamp">{{ name }}</view>
+						<view class="cell clamp">{{ phone }}</view>
+					</view>
+				</view>
+				<view class="sanchaji"><image src="../../static/img/sanchaji.png" mode=""></image></view>
+				<view class="subordinate flex">
+					<view class="subordinate-box" v-for="(item, index) in childList">
+						<view class="head"><image :src="item.avter || '/static/error/missing-face.png'" mode=""></image></view>
+						<view class="name clamp">{{ item.name }}</view>
+						<view class="phone clamp">{{ item.phone }}</view>
+					</view>
+					<template v-if="childList.length < 5">
+						<view class="subordinate-box" v-for="item in (5-childList.length)">
+							<view class="head"></view>
+							<view class="name clamp"></view>
+							<view class="phone clamp"></view>
+						</view>
+					</template>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+import { getjiedian, getReferralList, addJiedian } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+export default {
+	components: {
+		uniPopup
+	},
+	data() {
+		return {
+			name: '', //当前节点姓名
+			phone: '', //当前节点手机号
+			avatar: '', //当前节点头像
+			id: '',
+			childList: [{
+				name:'11',
+				phone:'13300000000'
+			},{
+				name:'12',
+				phone:'13300000001'
+			},{
+				name:'13',
+				phone:'13300000003'
+			},{
+				name:'14',
+				phone:'13300000004'
+			},
+			] //当前节点的下级
+		};
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	onLoad() {
+		this.name = this.userInfo.nickname;
+		this.phone = this.userInfo.phone;
+		this.avatar = this.userInfo.avatar;
+		this.id = this.userInfo.uid;
+		this.loadData();
+	},
+
+	methods: {
+		//返回
+
+		loadData() {
+			const obj = this;
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	padding: 0;
+	margin: 0;
+	height: 100%;
+	background-color: #000;
+}
+
+.container {
+	width: 750rpx;
+	height: 400rpx;
+	position: relative;
+
+	.jiedianbackground {
+		position: absolute;
+		width: 750rpx;
+		height: 400rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.number-box {
+		width: 750rpx;
+		height: 400rpx;
+		position: absolute;
+		display: flex;
+		justify-content: center;
+		flex-direction: column;
+		align-items: center;
+
+		.number {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #fad6b0;
+
+			text {
+				font-size: 72rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				line-height: 86rpx;
+			}
+		}
+
+		.renshu {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #fad6b0;
+		}
+	}
+}
+
+.message {
+	padding: 0 30rpx;
+
+	.relation-box {
+		margin-top: 100rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+
+		.relation {
+			position: relative;
+			display: flex;
+			align-items: center;
+
+			.headbox {
+				position: absolute;
+				// width: 154rpx;
+				// height: 154rpx;
+
+				.head {
+					width: 154rpx;
+					height: 154rpx;
+					background: #fff;
+					box-shadow: 5rpx 0rpx 5rpx 0rpx rgba(110, 171, 78, 0.26);
+					border-radius: 50%;
+					overflow: hidden;
+
+					.photo {
+						width: 154rpx;
+						height: 154rpx;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+				}
+
+				.head-title {
+					margin: -30rpx 30rpx 0 30rpx;
+					width: 94rpx;
+					height: 32rpx;
+
+					image {
+						width: 100%;
+						height: 100%;
+					}
+				}
+
+				// .head-name{
+				// 	max-width: 100%;
+				// 	font-size: 32rpx;
+				// 	font-weight: bold;
+				// 	color: #333333;
+				// }
+				// .head-phone{
+				// 	font-size: 26rpx;
+				// 	font-weight: 500;
+				// 	color: #999999;
+				// }
+			}
+
+			.information {
+				margin-left: 77rpx;
+				display: flex;
+				padding: 20rpx 10rpx;
+				flex-direction: column;
+				width: 297rpx;
+				height: 137rpx;
+				background: linear-gradient(90deg, #393326, #27221d);
+				border: 4rpx solid #fad6b0;
+				border-radius: 10rpx;
+
+				.name {
+					text-align: left;
+					margin-left: 70rpx;
+					font-size: 32rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #fad6b0;
+				}
+
+				.cell {
+					text-align: left;
+					margin-left: 70rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #fad6b0;
+				}
+			}
+		}
+
+		.sanchaji {
+			margin: 30rpx 0;
+			width: 90%;
+			height: 91rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.subordinate {
+			width: 750rpx;
+			display: flex;
+			justify-content: flex-start;
+			align-items: flex-start;
+			.subordinate-box {
+				flex: 1;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				.head {
+					border-radius: 50%;
+					background: #fff;
+					width: 120rpx;
+					height: 120rpx;
+					image {
+						width: 100%;
+						height: 100%;
+					}
+				}
+				.name {
+					max-width: 120rpx;
+					margin-top: 10rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #FFFFFF;
+				}
+				.phone {
+					max-width: 120rpx;
+					margin-top: 10rpx;
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+			}
+		}
+	}
+
+	.back {
+		float: right;
+		margin-top: 40rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		image {
+			width: 24rpx;
+			height: 23rpx;
+		}
+
+		width: 104rpx;
+		height: 39rpx;
+		border: 2rpx solid #6eab4e;
+		border-radius: 7rpx;
+		font-size: 24rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #6eab4e;
+	}
+}
+</style>

+ 122 - 0
pages/user/upgrade.vue

@@ -0,0 +1,122 @@
+<template>
+	<view class="content">
+		<view class="user-info flex">
+			<image src="" mode="" class="user-img"></image>
+			<view class="user-name">
+				假猪套天下第一
+			</view>
+			<view class="tit">
+				尚未升级黑钻会员
+			</view>
+		</view>
+		<view class="up-box">
+			<view class="up">
+				<image src="../../static/img/upone.png" mode="" class="bg"></image>
+				<view class="up-price">
+					<text class="inconn">¥</text><text>10000</text>
+				</view>
+				<image src="../../static/img/uonow.png" mode="" class="uplevel" @click="navto('/pages/index/info')"></image>
+			</view>
+			<view class="up">
+				<image src="../../static/img/uptow.png" mode="" class="bg"></image>
+				<view class="up-price">
+					<text class="inconn">¥</text><text>60000</text>
+				</view>
+				<image src="../../static/img/uonow.png" mode="" class="uplevel" @click="navto('/pages/index/info')"></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			navto(url) {
+				uni.navigateTo({
+					url
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.user-info {
+		flex-direction: column;
+		align-items: center;
+		text-align: center;
+		padding-top: 20rpx;
+		.user-img {
+			width: 120rpx;
+			height: 120rpx;
+			border-radius: 50%;
+			background-color: #eee;
+		}
+		.user-name {
+			margin-top: 20rpx;
+			width: 240rpx;
+			font-size: 32rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #FFFFFF;
+			
+		}
+		.tit {
+			padding-top: 8rpx;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #999999;
+		}
+	}
+	.up-box {
+		padding: 30rpx 0 100rpx 0;
+		.up {
+			width: 690rpx;
+			height: 892rpx;
+			position: relative;
+			margin: 0 auto 34rpx;
+			.bg {
+				width: 690rpx;
+				height: 892rpx;
+				position: absolute;
+			}
+			.up-price {
+				font-size: 116rpx;
+				display: inline-block;
+				font-family: Source Han Sans CN;
+				font-weight: 800;
+				color: #C63535;
+				position: absolute;
+				top: 250rpx;
+				right: 0;
+				left: 0;
+				margin: auto;
+				display: flex;
+				justify-content: center;
+				.inconn {
+					font-size: 36rpx;
+					font-family: Source Han Sans CN;
+					font-weight: bold;
+					color: #C63535;
+					padding-top: 25rpx;
+				}
+			}
+			.uplevel {
+				width: 307rpx;
+				height: 80rpx;
+				position: absolute;
+				bottom: 118rpx;
+				right: 0;
+				left: 0;
+				margin: auto;
+			}
+		}
+		
+	}
+</style>

+ 156 - 12
pages/user/user.vue

@@ -1,33 +1,89 @@
 <template>
 	<view class="container">
 		<view class="user-info-box">
-			<view class="detail flex" @click="navTo('/pages/set/userinfo')">
-				<view class="portrait-box"><image class="portrait" src=" /static/error/missing-face.png"></image></view>
+			<view class="detail flex">
+				<view class="portrait-box"><image class="portrait" src=" ../../static/error/missing-face.png"></image></view>
 				<view class="info-box">
 					<view class="username">游客</view>
 					<view class="font-size-sm">13800000000</view>
 				</view>
 			</view>
-			<view class="config iconfont"><text class="setting iconsetting" @click="navTo('/pages/set/set')"></text></view>
+			<view class="config iconfont"><text class="setting iconsetting" @click="navTo('/pages/set/userinfo')"></text></view>
 		</view>
 		<view class="vip-box"><image src="../../static/img/vip.png" mode=""></image></view>
 
 		<view class="tt">
-			<view class="tt-box" @click="nav('/pages/assets/myPing')">
+			<view class="tt-box" @click="navTo('/pages/user/promotion')">
 				<image src="../../static/img/tuiguang.png" class="tt-icon1" mode=""></image>
 				<view class="tt-txt">我的推广</view>
 				<image src="../../static/img/jiantou.png" class="next-icon" mode=""></image>
 			</view>
+			<view class="tt-box" @click="navTo('/pages/user/team')">
+				<image src="../../static/img/team.png" class="tt-icon1" mode=""></image>
+				<view class="tt-txt">我的团队</view>
+				<image src="../../static/img/jiantou.png" class="next-icon" mode=""></image>
+			</view>
+			<view class="tt-box" @click="navTo('/pages/user/shareQrCode')">
+				<image src="../../static/img/share.png" class="tt-icon1" mode=""></image>
+				<view class="tt-txt">分享好友</view>
+				<image src="../../static/img/jiantou.png" class="next-icon" mode=""></image>
+			</view>
+			<view class="tt-box" @click="open()">
+				<image src="../../static/img/kefu.png" class="tt-icon1" mode=""></image>
+				<view class="tt-txt">联系客服</view>
+				<image src="../../static/img/jiantou.png" class="next-icon" mode=""></image>
+			</view>
 		</view>
+		<uni-popup ref="popup" type="center">
+			<view class="popup-box">
+				<view class="img"><image src="../../static/img/img009.png" mode=""></image></view>
+				<view class="mian">
+					<view class="delivery">
+						<view class="title">已经为您定制专属客服</view>
+						<image src="../../static/img/img010.png" mode=""></image>
+					</view>
+					<view class="nocancel">客服电话: {{ text }}</view>
+					<view class="comfirm-box">
+						<view class="cancel" @click="cancel">取消</view>
+						<view class="comfirm" @click="comfirm(text)">拨打电话</view>
+					</view>
+				</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
 <script>
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+import uniCopy from '@/utils/uni-copy.js';
 export default {
 	data() {
-		return {};
+		return {
+			text:'123456789'
+		};
 	},
-	methods: {}
+	methods: {
+		navTo(url) {
+			// if (!this.hasLogin) {
+			// 	// 保存地址
+			// 	saveUrl();
+			// 	// 登录拦截
+			// 	interceptor();
+			// } else {
+			uni.navigateTo({
+				url
+			});
+			// }
+		},
+		open() {
+			console.log('点击出现弹窗');
+			this.$refs.popup.open();
+		},
+		// 客服弹窗 - 取消
+		cancel() {
+			this.$refs.popup.close();
+		}
+	}
 };
 </script>
 
@@ -87,13 +143,14 @@ page,
 	background-color: #000;
 
 	.tt-box {
+		padding: 20rpx;
 		height: 100rpx;
 		display: flex;
 		align-items: center;
-		border-bottom: 1px solid #f0f0f0;
+		border-bottom: 1px solid #838383;
 		.tt-icon1 {
 			width: 42rpx;
-			height: 42rpx;
+			height: 37rpx;
 		}
 		.tt-icon2 {
 			width: 49rpx;
@@ -113,11 +170,12 @@ page,
 		}
 
 		.tt-txt {
-			margin-left: 36rpx;
-			font-size: 32rpx;
+			font-size: 28rpx;
 			font-family: PingFang SC;
 			font-weight: 500;
-			color: #333333;
+			color: #ffffff;
+			margin-left: 36rpx;
+			color: #ffffff;
 			flex: 1;
 		}
 
@@ -128,7 +186,93 @@ page,
 	}
 
 	.border-b {
-		border-bottom: 1px solid #f1f1f1;
+		border-bottom: 1px solid #f0f0f0;
+	}
+}
+.popup-box {
+	width: 522rpx;
+	height: 605rpx;
+	background-color: #ffffff;
+	border-radius: 20rpx;
+	position: relative;
+	.img {
+		position: relative;
+		top: -56rpx;
+		left: 0;
+		width: 522rpx;
+		height: 132rpx;
+		display: flex;
+		justify-content: center;
+		image {
+			border-radius: 20rpx 20rpx 0 0;
+			width: 450rpx;
+			height: 132rpx;
+		}
+	}
+
+	.mian {
+		margin-top: -44rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		// padding: 32rpx 32rpx;
+		background-color: #ffffff;
+		border-radius: 0 0 20rpx 20rpx;
+		text-align: center;
+
+		.delivery {
+			font-size: 40rpx;
+			color: #333333;
+			display: flex;
+			align-items: center;
+			flex-direction: column;
+			.title {
+			}
+			image {
+				margin-top: 48rpx;
+				width: 172rpx;
+				height: 160rpx;
+			}
+		}
+
+		.nocancel {
+			font-size: 32rpx;
+			color: #333333;
+			margin-top: 14rpx;
+		}
+
+		.comfirm-box {
+			margin-top: 52rpx;
+			display: flex;
+			// margin-bottom: 32rpx;
+
+			// justify-content: space-around;
+			.cancel {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				border: 1px solid #dcc786;
+				border-radius: 38rpx;
+
+				font-size: 32rpx;
+				color: #605128;
+			}
+
+			.comfirm {
+				margin-left: 32rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
+				border-radius: 38px;
+				font-size: 32rpx;
+				color: #605128;
+			}
+		}
 	}
 }
 </style>

BIN
static/icon/icon-code.png


BIN
static/icon/icon-phone.png


BIN
static/icon/icon-yzm.png


BIN
static/icon/logo.png


BIN
static/img/img009.png


BIN
static/img/img010.png


BIN
static/img/jiedian.png


BIN
static/img/promation.png


BIN
static/img/sanchaji.png


BIN
static/img/success.png


BIN
static/img/uonow.png


BIN
static/img/upone.png


BIN
static/img/uptow.png


BIN
static/img/zhengyi10.png