hwq 3 年之前
父節點
當前提交
f772355b43
共有 68 個文件被更改,包括 1378 次插入394 次删除
  1. 17 2
      api/user.js
  2. 24 7
      pages.json
  3. 1 13
      pages/category/business.vue
  4. 2 9
      pages/index/index.vue
  5. 1 1
      pages/index/sign.vue
  6. 178 0
      pages/index/sign1.vue
  7. 0 47
      pages/money/withdrawal.vue
  8. 2 2
      pages/order/createOrder.vue
  9. 76 2
      pages/product/product.vue
  10. 0 2
      pages/redirect/redirect.vue
  11. 1 1
      pages/set/phone.vue
  12. 167 0
      pages/set/user.vue
  13. 411 306
      pages/user/award.vue
  14. 496 0
      pages/user/team.vue
  15. 1 1
      pages/user/user.vue
  16. 二進制
      static/icon/fanhui.png
  17. 二進制
      static/img/money-bg.png
  18. 二進制
      static/img/money-ok.png
  19. 二進制
      static/img/yongjin-bg.png
  20. 二進制
      unpackage/dist/build/h5/3-11-3.rar
  21. 1 1
      unpackage/dist/build/h5/index.html
  22. 二進制
      unpackage/dist/build/h5/static/img/jiedian01.png
  23. 二進制
      unpackage/dist/build/h5/static/img/jiedianBg.870a87c5.png
  24. 二進制
      unpackage/dist/build/h5/static/img/jiedianBg.png
  25. 二進制
      unpackage/dist/build/h5/static/img/money-bg.77916655.png
  26. 二進制
      unpackage/dist/build/h5/static/img/money-bg.png
  27. 二進制
      unpackage/dist/build/h5/static/img/money-ok.f0e83996.png
  28. 二進制
      unpackage/dist/build/h5/static/img/money-ok.png
  29. 0 0
      unpackage/dist/build/h5/static/js/index.38e54b04.js
  30. 0 0
      unpackage/dist/build/h5/static/js/index.b2f278b6.js
  31. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-bargain-index.8cd54a76.js
  32. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-goods_bargain-index.a8424281.js
  33. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-goods_bargain_details-index.a7bf2b7c.js
  34. 0 0
      unpackage/dist/build/h5/static/js/pages-cart-cart.8b9e66b3.js
  35. 0 0
      unpackage/dist/build/h5/static/js/pages-category-business.e4f26d95.js
  36. 0 0
      unpackage/dist/build/h5/static/js/pages-category-business.f403dbed.js
  37. 0 0
      unpackage/dist/build/h5/static/js/pages-index-index.194d144f.js
  38. 0 0
      unpackage/dist/build/h5/static/js/pages-index-index.b81238b0.js
  39. 0 0
      unpackage/dist/build/h5/static/js/pages-index-sign.49d2af01.js
  40. 0 0
      unpackage/dist/build/h5/static/js/pages-index-sign.90379d69.js
  41. 0 0
      unpackage/dist/build/h5/static/js/pages-index-sign1.dacc625a.js
  42. 0 0
      unpackage/dist/build/h5/static/js/pages-money-pay.2e6c6f95.js
  43. 0 0
      unpackage/dist/build/h5/static/js/pages-money-pay.8c460c81.js
  44. 0 0
      unpackage/dist/build/h5/static/js/pages-money-withdmoenys.01e27dd4.js
  45. 0 0
      unpackage/dist/build/h5/static/js/pages-order-createOrder.00df48f8.js
  46. 0 0
      unpackage/dist/build/h5/static/js/pages-order-createOrder.957868aa.js
  47. 0 0
      unpackage/dist/build/h5/static/js/pages-product-product.d2fc6fa6.js
  48. 0 0
      unpackage/dist/build/h5/static/js/pages-product-product.f985adef.js
  49. 0 0
      unpackage/dist/build/h5/static/js/pages-public-login.46057b18.js
  50. 0 0
      unpackage/dist/build/h5/static/js/pages-public-login.98fb1fcb.js
  51. 0 0
      unpackage/dist/build/h5/static/js/pages-redirect-redirect.282349fb.js
  52. 0 0
      unpackage/dist/build/h5/static/js/pages-redirect-redirect.4ae5e005.js
  53. 0 0
      unpackage/dist/build/h5/static/js/pages-set-address.550f1dca.js
  54. 0 0
      unpackage/dist/build/h5/static/js/pages-set-address.8c19bb8c.js
  55. 0 0
      unpackage/dist/build/h5/static/js/pages-set-addressManage.03213806.js
  56. 0 0
      unpackage/dist/build/h5/static/js/pages-set-addressManage.d6984d88.js
  57. 0 0
      unpackage/dist/build/h5/static/js/pages-set-phone.5ff45121.js
  58. 0 0
      unpackage/dist/build/h5/static/js/pages-set-phone.b1b285cf.js
  59. 0 0
      unpackage/dist/build/h5/static/js/pages-set-user.66ce4399.js
  60. 0 0
      unpackage/dist/build/h5/static/js/pages-user-favorites.d0e1cc66.js
  61. 0 0
      unpackage/dist/build/h5/static/js/pages-user-jiedian.295842ab.js
  62. 0 0
      unpackage/dist/build/h5/static/js/pages-user-jiedian.c5aa85eb.js
  63. 0 0
      unpackage/dist/build/h5/static/js/pages-user-jiedianDetails.64a58933.js
  64. 0 0
      unpackage/dist/build/h5/static/js/pages-user-jiedianDetails.c3f435d3.js
  65. 0 0
      unpackage/dist/build/h5/static/js/pages-user-shareQrCode.08b39e15.js
  66. 0 0
      unpackage/dist/build/h5/static/js/pages-user-team.183aa074.js
  67. 0 0
      unpackage/dist/build/h5/static/js/pages-user-user.d9efc3e5.js
  68. 0 0
      unpackage/dist/build/h5/static/js/pages-user-user.df6d270e.js

+ 17 - 2
api/user.js

@@ -19,14 +19,29 @@ export function lookOneself(data){
 	})
 }
 
+//绑定上级
+export function spread(data) {
+	return request({
+		url:'/api/user/spread',
+		method: 'post',
+		data
+	})
+}
 
-
+//我的推广
+export function myspread(data) {
+	return request({
+		url: '/api/spread/people',
+		method: 'POST',
+		data
+	});
+}
 
 // 订单统计信息
 export function orderData(data) {
 	return request({
 		url: '/api/order/data',
-		method: 'get',
+		method: 'get',
 		data
 	});
 }

+ 24 - 7
pages.json

@@ -21,7 +21,17 @@
 					}
 				}
 			}
-		}, {
+		},
+		{
+			"path": "pages/index/sign1",
+			"style": {
+				"navigationBarTitleText": "每日签到",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		{
 			"path": "pages/public/register",
 			"style": {
 				"navigationBarTitleText": "注册",
@@ -80,12 +90,13 @@
 		{
 			"path": "pages/user/jiedian",
 			"style": {
-				"navigationBarTitleText": "我的节点",
-				"app-plus": {
-					"titleNView": {
-						"type": false
-					}
-				}
+				"navigationBarTitleText": "我的节点"
+			}
+		},
+		{
+			"path": "pages/user/team",
+			"style": {
+				"navigationBarTitleText": "我的推广"
 			}
 		},
 		{
@@ -253,6 +264,12 @@
 				"navigationBarTitleText": "绑定手机号"
 			}
 		},
+		{
+			"path": "pages/set/user",
+			"style": {
+				"navigationBarTitleText": "绑定上级"
+			}
+		},
 		{
 			"path": "pages/set/password",
 			"style": {

+ 1 - 13
pages/category/business.vue

@@ -1,19 +1,7 @@
 <template>
 	<view class="center">
 		<view class="kong">
-			<view class="search flex">
-				<image src="../../static/index/index09.png" class="address"></image>
-				<!-- <view class="shop-name clamp" @click.stop="canChange == 0?nav('/pages/shoping/list'):''">{{ storeInfo.name }}</view> -->
-				<view class="shop-name clamp">椒江区</view>
-				<image class="shop-jt" src="../../static/index/index07.png" mode=""></image>
-				<view class="input-box flex" @click.stop="clickSearch">
-					<view class=" input-content flex">
-						<view class="iconfont iconsearch"></view>
-						<view class="input"><input type="text" disabled value="输入关键字搜索" /></view>
-					</view>
-				</view>
-			</view>
-			<!-- <u-empty mode="data" text="敬请期待"></u-empty> -->
+			<u-empty mode="data" text="敬请期待"></u-empty>
 		</view>
 		<u-tabbar activeColor="#EE0979" v-model="current" :list="tabbar" :mid-button="true"></u-tabbar>
 	</view>

+ 2 - 9
pages/index/index.vue

@@ -121,7 +121,7 @@
 import { lookSubpoints, lookOneself } from '../../api/user.js';
 import seckill from '../../components/seckill/seckill.vue';
 import { loadIndexs } from '@/api/index.js';
-import { getUserInfo } from '@/api/user.js';
+import { getUserInfo, spread } from '@/api/user.js';
 import { setCoupons } from '@/api/functionalUnit.js';
 import { getBargainList } from '@/api/product.js';
 import { interceptor } from '@/utils/loginUtils';
@@ -152,7 +152,6 @@ export default {
 			shoplist: [], //商店列表
 			page: 1,
 			limit: 5,
-			actTime: new Date()
 		};
 	},
 	computed: {
@@ -161,12 +160,6 @@ export default {
 	},
 	onLoad: function(option) {
 		this.getaddress();
-		// #ifndef MP
-		if (option.spread) {
-			// 存储其他邀请人
-			uni.setStorageSync('spread', option.spread);
-		}
-		// #endif
 		// #ifdef MP
 		if (option.scene) {
 			// 存储小程序邀请人
@@ -412,7 +405,7 @@ export default {
 		navToDetailPage(item) {
 			let id = item.id;
 			uni.navigateTo({
-				url: '/pages/product/product?id=' + id
+				url: '/pages/product/product?id=' + id + '&isVip=1'
 			});
 		},
 

+ 1 - 1
pages/index/sign.vue

@@ -14,7 +14,7 @@
 			</view>
 			<view class="title-tip"><text>共获得{{sum_integral}}积分,总签到{{allSign}}天</text></view>
 		</view>
-		<calendar class="sign-date-box" :checks="signList" checksClass="" :checkTextShow="true" checksIcon="/static/img/img07.png"></calendar>
+		<!-- <calendar class="sign-date-box" :checks="signList" checksClass="" :checkTextShow="true" checksIcon="/static/img/img07.png"></calendar> -->
 	</view>
 </template>
 

+ 178 - 0
pages/index/sign1.vue

@@ -0,0 +1,178 @@
+<template>
+	<view center>
+		<view class="title">天天领现金</view>
+		<view class="main after" v-if="signTrue">
+			<image class="main-bg" src="../../static/img/money-ok.png" mode=""></image>
+			<view class="num">
+				{{day_integral}}
+			</view>
+		</view>
+		<view class="main before" v-if="!signTrue">
+			<image class="main-bg" src="../../static/img/money-bg.png" mode=""></image>
+			<view class="btn" @click="integral()">立即领取</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-num">{{ sum_integral }}</view>
+				<view class="info-font">获得金额</view>
+			</view>
+			<view class="info-item">
+				<view class="info-num">{{ allSign }}</view>
+				<view class="info-font">领取天数</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import calendar from '../../components/ss-calendar/ss-calendar.vue';
+import { signList, integral, signUser } from '@/api/functionalUnit.js';
+export default {
+	components: {
+		calendar
+	},
+	data() {
+		return {
+			money: '', //保存当前月份
+			year: '', //保存当前年份
+			day: '', //保存当前日期
+			signList: [], //签到日子列表
+			actionDay: 0, //连续签到天数
+			allSign: 0, //累计签到
+			sum_integral: 0, //累计获得积分
+			day_integral: '', //今天签到的钱
+			signTrue: false
+		};
+	},
+	onLoad() {
+		this.signUser();
+		this.getData();
+	},
+	methods: {
+		// 获取当前时间
+		getData(current) {
+			const date = current ? new Date(current) : new Date();
+			this.year = date.getFullYear(); //保存当前年份
+			this.month = date.getMonth() + 1; //保存当前月份
+			this.day = date.getDate(); //保存当前日期
+		},
+		//获取签到用户信息
+		signUser() {
+			signUser({ all: 1 }).then(({ data }) => {
+				this.actionDay = data.sign_num; //连续签到天数
+				this.allSign = data.sum_sgin_day; //累计签到天数
+				this.sum_integral = data.sum_integral; //累计总积分
+			});
+		},
+		// 签到
+		integral() {
+			console.log(111);
+			integral({})
+				.then(e => {
+					console.log(e);
+					this.day_integral = e.data.integral, //今天获取的金额
+						// 改为已签到
+					this.signTrue = true;
+					this.actionDay++;
+					// 保存签到成功
+					this.signList.push(this.day);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.center {
+	height: auto;
+	min-height: 100%;
+	background: #ffdfd4;
+}
+.title {
+	padding-top: 66rpx;
+	text-align: center;
+	font-size: 94rpx;
+	font-family: SourceHanSansCN;
+	font-weight: bold;
+	color: #c85138;
+}
+.after {
+	padding-top: 230rpx;
+}
+.before {
+	padding-top: 590rpx;
+}
+.main {
+	width: 750rpx;
+	height: 926rpx;
+	position: relative;
+	.main-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 926rpx;
+	}
+	.num {
+		line-height: 1;
+		text-align: center;
+		font-size: 122rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #EB2749;
+		opacity: 0.9;
+	}
+	.btn {
+		position: relative;
+		margin: 0 auto;
+		z-index: 10;
+		width: 420rpx;
+		height: 76rpx;
+		background: linear-gradient(180deg, #fce9a8 0%, #fecd75 100%);
+		box-shadow: 0px 16rpx 16rpx 0px rgba(159, 20, 63, 0.3), 0px 2rpx 6rpx 0px #fef5d3;
+		border-radius: 38rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #cb0908;
+		line-height: 76rpx;
+		text-align: center;
+	}
+}
+.info-box {
+	margin: 24rpx auto 0;
+	padding: 22rpx 0;
+	width: 640rpx;
+	height: 160rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 20rpx;
+	.info-item {
+		width: 50%;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		border-right: 1px solid #efefef;
+		line-height: 1;
+		.info-num {
+			font-size: 50rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+		.info-font {
+			margin-top: 20rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			opacity: 0.6;
+		}
+	}
+}
+</style>

+ 0 - 47
pages/money/withdrawal.vue

@@ -1,6 +1,5 @@
 <template>
 	<view class="content">
-		<uni-notice-bar single="true" text="每月25号到月底可提现上月结算余额"></uni-notice-bar>
 		<view class="content-money">
 			<view class="flex ">
 				<view class="buttom">
@@ -22,53 +21,7 @@
 				<view class="buttom" @click="withdrawal = money">全部提现</view>
 			</view>
 		</view>
-		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" v-if="!weichatBsrowser">
-			<radio-group @change="tabRadio">
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>提现至微信</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="aliData.fullname">提现至支付宝</text>
-								<text v-else>请创建支付宝账号</text>
-							</view>
-							<view class="node">
-								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
-								<text v-else>请创建银行账号</text>
-							</view>
-							<view class="node">
-								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="bank" color="#5dbc7c" :checked="type == 'bank'" /></view>
-					</view>
-				</label>
-			</radio-group>
-		</view>
-		<!-- #endif -->
 		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button>
 	</view>
 </template>
 

+ 2 - 2
pages/order/createOrder.vue

@@ -93,10 +93,10 @@
 				<text class="cell-tit clamp">优惠金额</text>
 				<text class="cell-tip red">-¥35</text>
 			</view> -->
-			<view class="yt-list-cell b-b">
+			<!-- <view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">积分抵扣{{ '(当前积分:' + integralAll + ')' }}</text>
 				<view class="cell-tip"><radio @click="checkedPoints = !checkedPoints" color=" #5dbc7c" :checked="checkedPoints" /></view>
-			</view>
+			</view> -->
 			<view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">运费</text>
 				<text class="cell-tip">{{ Postage }}</text>

+ 76 - 2
pages/product/product.vue

@@ -147,7 +147,8 @@ export default {
 				i: '', //分
 				s: '' //秒
 			},
-			userInfo: ''
+			userInfo: '',
+			isVip: '0',
 		};
 	},
 	filters: {
@@ -172,6 +173,10 @@ export default {
 			// 存储邀请人
 			uni.setStorageSync('spread', options.spread);
 		}
+		if (options.isVip) {
+			obj.isVip = options.isVip
+		}
+		console.log(obj.isVip,'vip')
 		saveUrl();
 		this.goodsDetail();
 		// 注册邀请信息
@@ -183,7 +188,7 @@ export default {
 		// #endif
 	},
 	computed: {
-		...mapState(['weichatObj', 'baseURL', 'urlFile'])
+		...mapState(['weichatObj', 'baseURL', 'urlFile']),
 	},
 	// 分享
 	onShareAppMessage(options) {
@@ -349,6 +354,39 @@ export default {
 		// 立即购买
 		buy() {
 			let obj = this;
+			console.log(obj.userInfo);
+			if(obj.userInfo.lock_spread_user == null){
+				if(obj.userInfo.unlock_spread_user == null){
+					uni.showModal({
+						title: '提示',
+						content: '您未绑定或锁定邀请人,无法购买会员礼包,是否前往绑定关系',
+						success: function (res) {
+							if (res.confirm) {
+								console.log('用户点击确定');
+								uni.navigateTo({
+									url:'/pages/set/user'
+								})
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+					return
+				}else {
+					uni.showModal({
+						title: '提示',
+						content: '已锁定邀请人:'+ obj.userInfo.unlock_spread_user.phone +'购买商品后将绑定关系',
+						success: function (res) {
+							if (res.confirm) {
+								obj.buy1();
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+					return
+				}
+			}
 			// 创建传值对象
 			let data = {
 				cartNum: obj.goodsNumber, //商品数量
@@ -384,6 +422,42 @@ export default {
 					console.log(e);
 				});
 		},
+		buy1(){
+			let obj = this;
+			let data = {
+				cartNum: obj.goodsNumber, //商品数量
+				new: 1,
+				productId: obj.goodsid, //商品编号
+				uniqueId: obj.uniqueId
+			};
+			
+			if (obj.type == 2) {
+				data.new = 0;
+			}
+			cartAdd(data)
+				.then(function(e) {
+					let da = e.data;
+					if (obj.type == 1) {
+						// 跳转到支付页
+						uni.navigateTo({
+							url: '/pages/order/createOrder?id=' + da.cartId
+						});
+					}
+					if (obj.type == 2) {
+						uni.showToast({
+							title: '成功加入购物车',
+							type: 'top',
+							duration: 2000,
+							icon: 'none'
+						});
+						obj.goodsDetail();
+					}
+					obj.toggleSpec();
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
 		// 阻止触发上级事件
 		stopPrevent() {}
 	}

+ 0 - 2
pages/redirect/redirect.vue

@@ -32,10 +32,8 @@ export default {
 			let obj = this;
 			let url = window.location.href;
 			let code = url.match(/code=([0-9]|[a-z]|[A-Z])*/g)[0].replace('code=', '');
-			let spread = uni.getStorageSync('spread')||'';
 			wechatAuth({
 				code: code,
-				spread:spread,
 			}).then(({ data }) => {
 				obj.wchatAuth(data);
 			}).catch((e) => {

+ 1 - 1
pages/set/phone.vue

@@ -57,7 +57,7 @@ export default {
 				this.$api.msg('请输入电话号码');
 				return;
 			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.account)) {
 				this.$api.msg('请输入正确的手机号');
 				return;
 			}

+ 167 - 0
pages/set/user.vue

@@ -0,0 +1,167 @@
+<template>
+	<view class="container">
+		<view class="row b-b">
+			<text class="tit">手机号</text>
+			<input class="input" v-model="account" type="text" placeholder="请填写手机号" placeholder-class="placeholder" />
+		</view>
+		<view>
+			<!-- <view class="row b-b">
+				<text class="tit">验证码</text>
+				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
+				<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+			</view> -->
+			<button class="add-btn" :class="{ 'bg-gray': loding }" @click="loding ? '' : confirm()">提交</button>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex';
+import { spread, userinfo } from '@/api/user.js';
+export default {
+	data() {
+		return {
+			time: '', //保存倒计时对象
+			countDown: 0, //倒计时
+			account: '', //手机号
+			captcha: '', //验证码
+			password: '', //新密码
+			loding: false //是否载入中
+		};
+	},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
+			}
+		}
+	},
+	computed: {
+		...mapState(['userInfo'])
+	},
+	onLoad() {
+		if (this.userInfo.phone == null) {
+			this.account = '';
+		} else {
+			this.account = this.userInfo.phone;
+			this.show = false;
+		}
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		//发送验证码
+		verification() {
+			let obj = this;
+			if (this.account == '') {
+				this.$api.msg('请输入电话号码');
+				return;
+			}
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.account)) {
+				this.$api.msg('请输入正确的手机号');
+				return;
+			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				verify({
+					phone: obj.account,
+					type: 'BDING_CODE'
+				})
+					.then(({ data }) => {})
+					.catch(err => {
+						console.log(err);
+					});
+			}
+		},
+		confirm(e) {
+			let obj = this;
+			obj.loding = true;
+			spread({
+				phone: obj.account,
+			})
+				.then(({ data }) => {
+					obj.$api.msg('绑定成功!');
+					userinfo({})
+						.then(({ data }) => {
+							this.setUserInfo(data);
+						})
+						.catch(e => {
+							console.log(e);
+						});
+					setTimeout(function() {
+						obj.loding = false;
+						uni.navigateBack({
+							
+						})
+					}, 1000);
+				})
+				.catch(err => {
+					obj.loding = false;
+					console.log(err);
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: $page-color-base;
+}
+.row {
+	display: flex;
+	align-items: center;
+	position: relative;
+	padding: 0 30rpx;
+	height: 110rpx;
+	background: #fff;
+
+	.tit {
+		flex-shrink: 0;
+		width: 120rpx;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.input {
+		flex: 1;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.iconlocation {
+		font-size: 36rpx;
+		color: $font-color-light;
+	}
+}
+.add-btn {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 60rpx auto;
+	font-size: $font-lg;
+	color: #fff;
+	background-color: $base-color;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.bg-gray {
+	background-color: $color-gray;
+}
+.code {
+	color: #5dbc7c;
+	font-size: 23rpx;
+	border-left: 1px solid #eeeeee;
+	width: 150rpx;
+	flex-shrink: 0;
+	text-align: center;
+}
+</style>

+ 411 - 306
pages/user/award.vue

@@ -1,307 +1,412 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="money-box">
-				<view class="text">可提现佣金(元)</view>
-				<view class="money">{{ 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-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, extractBank } 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 {
-	filters: {
-		getMoneyStyle
-	},
-	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,
-			navList: [
-				{
-					state: 0,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页面
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页面
-					limit: 10 //每次信息条数
-				},
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-		//获取用户余额
-		extractBank({}).then(({ data }) => {
-			this.money = data.commissionCount;
-			// this.minPrice = data.minPrice;
-			// this.freeze = data.incommissionCount;
-		});
-	},
-	methods: {
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		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: #ffffff;
-	height: 100%;
-}
-.content-money {
-	padding-bottom: 30rpx;
-	background: $page-color-base;
-	.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: #ffffff;
-	text-align: center;
-	.text {
-		padding-top: 147rpx;
-		font-size: $font-sm;
-	}
-	.money {
-		font-size: 56rpx;
-	}
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	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 {
-	padding-top: 10rpx;
-	.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 {
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<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/yongjin-bg.png" mode=""></image></view>
+			<view class="money-box">
+				<view class="money">{{ userInfo.brokerage_price }}</view>
+				<view>我的佣金</view>
+			</view>
+			<view class="money-btn" @click="navto('/pages/money/withdrawal')">
+				佣金提现
+				<text>></text>
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">300</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">300</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>
+						<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">
+								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
+								<view v-if="item.status == 0" class="status">待发放</view>
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { getMoneyStyle } from '@/utils/rocessor.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 {
+	filters: {
+		getMoneyStyle
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	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: ''
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		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';
+
+			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++;
+					}
+					if (navItem.limit == data.length) {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						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%;
+}
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
+.content-money {
+	position: relative;
+	height: 480rpx;
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 480rpx;
+		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: 9;
+			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;
+		}
+	}
+}
+.info-box {
+	width: 670rpx;
+	height: 186rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 20rpx;
+	margin: -100rpx auto 0;
+	position: relative;
+	z-index: 2;
+	.info-item {
+		width: 50%;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		line-height: 1;
+		.info-font {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #999999;
+		}
+		.info-num {
+			margin-top: 30rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #181818;
+		}
+	}
+	.shu {
+		width: 2rpx;
+		height: 74rpx;
+		background: #dcdfe6;
+	}
+}
+.money-box {
+	position: relative;
+	z-index: 2;
+	padding-top: 90rpx;
+	color: #ffffff;
+	text-align: center;
+	.money {
+		font-size: 72rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+	.text {
+		font-size: 30rpx;
+	}
+}
+.money-btn {
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding-right: 50rpx;
+	text-align: right;
+	font-size: 30rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #FFFFFF;
+	text {
+		display: inline-block;
+		padding-left: 10rpx;
+	}
+}
+
+.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: #999999;
+		position: relative;
+		&.current {
+			color: #000;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 44px;
+				height: 0;
+				border-bottom: 2px solid #fe5b38;
+			}
+		}
+	}
+}
+//列表
+.swiper-box {
+	.order-item:last-child {
+		margin-bottom: 60rpx;
+	}
+	.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;
+			text-align: right;
+			.status {
+				color: $font-color-light;
+				color: $font-color-light - 2rpx;
+			}
+		}
+	}
+}
+.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>

+ 496 - 0
pages/user/team.vue

@@ -0,0 +1,496 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<view class="money-box">
+				<view class="money-frame">
+					<view class="money_num">
+						<text class="money_ren">共</text>
+						{{ all || '0' }}
+						<text class="money_ren">人</text>
+					</view>
+				</view>
+			</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 class="list-scroll-content" :style="{ height: maxheight }" scroll-y @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item flex">
+						<view class="title-box flex_item">
+							<view class="title-avatar"><image :src="item.avatar"></image></view>
+							<view class="list_tpl">
+								<view class="title">
+									<view class="title-name clamp">{{ item.nickname }}</view>
+								</view>
+								<view class="time">
+									<text>{{ item.time }}</text>
+								</view>
+							</view>
+							<view class="money">
+								<text>{{ item.self_achievement == null ? '未购买' : item.self_achievement + '元' }}</text>
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+<script>
+import { myspread } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+export default {
+	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 //每次信息条数
+				}
+			],
+			all: '',
+			list: '',
+		};
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+	},
+	methods: {
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		},
+		//获取收入支出信息
+		async loadData(source) {
+			//这里是将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			if (navItem.loadingType === 'noMore') {
+				//防止重复加载
+				return;
+			}
+			// 修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+			myspread({
+				page: navItem.page,
+				limit: navItem.limit
+			})
+				.then(({ data }) => {
+					console.log(data);
+					this.total = data.total;
+					this.totalLevel = data.totalLevel;
+					this.all = this.total + this.totalLevel;
+					if (data.list.length > 0) {
+						this.list = data.list;
+						navItem.orderList = navItem.orderList.concat(data.list);
+						navItem.page++;
+					}
+					this.$nextTick(function() {
+						if (navItem.limit == data.list.length) {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'noMore';
+						}
+					});
+					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;
+		},
+		// 点击返回 我的页面
+		toBack() {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f8f8f8;
+	height: 100%;
+}
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+	background: #5dbc7c;
+}
+.content-money {
+	background: #5dbc7c;
+	padding-bottom: 30rpx;
+	.buttom-box {
+		position: relative;
+		background-color: #ffffff;
+		text-align: center;
+		margin: 0 30rpx;
+		padding: 30rpx 0;
+		border-radius: $border-radius-sm;
+		margin-top: -80rpx;
+
+		.buttom {
+			font-size: $font-lg;
+			flex-grow: 1;
+
+			.money {
+				font-weight: bold;
+				font-size: 32rpx;
+				color: #ff0000;
+			}
+		}
+
+		.text {
+			color: #666666;
+		}
+
+		.interval {
+			width: 2rpx;
+			height: 60rpx;
+			background-color: #eeeeee;
+		}
+
+		.icon {
+			height: 50rpx;
+			width: 48rpx;
+			margin: 0 auto;
+
+			.icon-img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+}
+
+.money-box {
+	height: 484rpx;
+	color: #ffffff;
+	text-align: center;
+	font-size: 35rpx;
+	position: relative;
+	.header {
+		position: absolute;
+		left: 0;
+		top: 0;
+		width: 100%;
+		height: 80rpx;
+		font-size: 32rpx;
+		font-weight: 700;
+		z-index: 99;
+		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;
+	}
+	.right {
+		position: absolute;
+		top: 140rpx;
+		right: 40rpx;
+		text-align: right;
+		line-height: 1;
+		.right-num {
+			font-size: 50rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+
+			color: #ffffff;
+		}
+		.right-font {
+			margin-top: 10rpx;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #ffffff;
+		}
+		.time {
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 35px;
+		}
+	}
+	.user {
+		position: absolute;
+		top: 140rpx;
+		left: 34rpx;
+		display: flex;
+		justify-content: flex-start;
+		align-items: center;
+		z-index: 10;
+		.avtor {
+			width: 102rpx;
+			height: 102rpx;
+			border-radius: 50%;
+			position: relative;
+			.portrait {
+				width: 100%;
+				height: 100%;
+				border-radius: 50%;
+			}
+			.he {
+				position: absolute;
+				height: 30rpx;
+				bottom: -4rpx;
+				left: 0;
+				.image {
+					width: 102rpx;
+					height: 30rpx;
+				}
+			}
+		}
+		.name {
+			margin-left: 30rpx;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			display: flex;
+			justify-content: start;
+			.name-left {
+				width: 220rpx;
+			}
+			.name-right {
+				margin-left: 20rpx;
+				width: 50rpx;
+				height: 60rpx;
+				position: relative;
+				image {
+					width: 100%;
+					height: 100%;
+				}
+				.level {
+					position: absolute;
+					top: 35%;
+					left: 50%;
+					margin-left: -12rpx;
+					font-size: 20rpx;
+				}
+			}
+		}
+		.id {
+			margin-left: 30rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+		}
+	}
+
+	.money_img {
+		width: 100%;
+		height: 120rpx;
+		text-align: center;
+		padding-top: 50rpx;
+		padding-bottom: 135rpx;
+
+		image {
+			width: 120rpx;
+			height: 120rpx;
+			border: 4rpx solid #fd5f6f;
+			border-radius: 50%;
+		}
+	}
+
+	.money-frame {
+		position: absolute;
+		top: 0;
+		width: 100%;
+		padding-top: 200rpx;
+	}
+	.money_num {
+		font-size: 72rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+
+		.money_ren {
+			font-size: 36rpx;
+		}
+	}
+}
+
+.order-item {
+	padding: 20rpx 30rpx;
+	line-height: 1.5;
+
+	.title-box {
+		width: 100%;
+
+		.title-avatar {
+			flex-shrink: 0;
+			width: 100rpx;
+			height: 100rpx;
+			margin-right: 25rpx;
+			border-radius: 100%;
+			image {
+				width: 100%;
+				height: 100%;
+				border-radius: 100%;
+			}
+		}
+
+		.list_tpl {
+			width: 85%;
+
+			.title {
+				display: flex;
+				justify-content: flex-start;
+				font-size: $font-lg;
+				color: $font-color-base;
+				overflow: hidden; //超出的文本隐藏
+				text-overflow: ellipsis; //溢出用省略号显示
+				white-space: nowrap;
+				line-height: 1;
+				text-align: center;
+				.title-name {
+					max-width: 40%;
+				}
+				.dl {
+					margin-left: 10rpx;
+					width: 93rpx;
+					height: 32rpx;
+					border-radius: 16rpx;
+					image {
+						width: 93rpx;
+						height: 32rpx;
+						border-radius: 16rpx;
+					}
+				}
+				.class {
+					display: inline-block;
+					margin-left: 10rpx;
+					padding: 6rpx;
+					text-align: center;
+					border: 1px solid #2e58ff;
+					border-radius: 16rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #2e58ff;
+				}
+			}
+
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+	}
+
+	.money {
+		width: 50%;
+		text-align: right;
+		color: #db1935;
+		font-size: $font-lg;
+	}
+}
+.yeji {
+	position: relative;
+	margin: -72rpx auto 0;
+	width: 690rpx;
+	height: 143rpx;
+	background: #ffffff;
+	box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	display: flex;
+	align-items: center;
+
+	.yeji-a {
+		width: 50%;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+
+		.yeji-top {
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+
+		.yeji-buttom {
+			font-size: 42rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+	}
+
+	.border {
+		width: 1rpx;
+		height: 51rpx;
+		background: #dddddd;
+	}
+}
+</style>

+ 1 - 1
pages/user/user.vue

@@ -154,7 +154,7 @@
 						></image>
 					</scroll-view> -->
 					<uni-list>
-						<uni-list-item title="我的节点" @click="navTo('/pages/user/jiedian')" thumb="/static/icon/img10.png"></uni-list-item>
+						<uni-list-item title="我的推广" @click="navTo('/pages/user/team')" thumb="/static/icon/img10.png"></uni-list-item>
 						<uni-list-item title="我的钱包" @click="navTo('/pages/money/wallet')" thumb="/static/icon/img11.png"></uni-list-item>
 						<uni-list-item title="我的卡卷" @click="navTo('/pages/user/coupon')" thumb="/static/icon/img12.png"></uni-list-item>
 						<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/icon/img02.png"></uni-list-item>

二進制
static/icon/fanhui.png


二進制
static/img/money-bg.png


二進制
static/img/money-ok.png


二進制
static/img/yongjin-bg.png


二進制
unpackage/dist/build/h5/3-10-1.rar → unpackage/dist/build/h5/3-11-3.rar


+ 1 - 1
unpackage/dist/build/h5/index.html

@@ -1,2 +1,2 @@
 <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>响亮商城</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
-            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/index/static/index.a5c69d49.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/index/static/js/chunk-vendors.0c0314dc.js></script><script src=/index/static/js/index.38e54b04.js></script></body></html>
+            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/index/static/index.a5c69d49.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/index/static/js/chunk-vendors.0c0314dc.js></script><script src=/index/static/js/index.b2f278b6.js></script></body></html>

二進制
unpackage/dist/build/h5/static/img/jiedian01.png


二進制
unpackage/dist/build/h5/static/img/jiedianBg.870a87c5.png


二進制
unpackage/dist/build/h5/static/img/jiedianBg.png


二進制
unpackage/dist/build/h5/static/img/money-bg.77916655.png


二進制
unpackage/dist/build/h5/static/img/money-bg.png


二進制
unpackage/dist/build/h5/static/img/money-ok.f0e83996.png


二進制
unpackage/dist/build/h5/static/img/money-ok.png


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/index.38e54b04.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/index.b2f278b6.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-bargain-index.8cd54a76.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-goods_bargain-index.a8424281.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-goods_bargain_details-index.a7bf2b7c.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-cart-cart.8b9e66b3.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-category-business.e4f26d95.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-category-business.f403dbed.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-index.194d144f.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-index.b81238b0.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-sign.49d2af01.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-sign.90379d69.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-sign1.dacc625a.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-pay.2e6c6f95.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-pay.8c460c81.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-withdmoenys.01e27dd4.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-order-createOrder.00df48f8.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-order-createOrder.957868aa.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-product-product.d2fc6fa6.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-product-product.f985adef.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-public-login.46057b18.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-public-login.98fb1fcb.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-redirect-redirect.282349fb.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-redirect-redirect.4ae5e005.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-address.550f1dca.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-address.8c19bb8c.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-addressManage.03213806.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-addressManage.d6984d88.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-phone.5ff45121.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-phone.b1b285cf.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-set-user.66ce4399.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-favorites.d0e1cc66.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-jiedian.295842ab.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-jiedian.c5aa85eb.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-jiedianDetails.64a58933.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-jiedianDetails.c3f435d3.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-shareQrCode.08b39e15.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-team.183aa074.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-user.d9efc3e5.js


文件差異過大導致無法顯示
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-user-user.df6d270e.js


部分文件因文件數量過多而無法顯示