Kaynağa Gözat

8-9 img&icon

2312970463@qq.com 3 yıl önce
ebeveyn
işleme
df05413ea5
61 değiştirilmiş dosya ile 3305 ekleme ve 1351 silme
  1. 19 0
      api/user.js
  2. 2 2
      components/returnButton.vue
  3. 2 2
      components/seckill/seckill.vue
  4. 39 23
      pages.json
  5. 23 23
      pages/index/index.vue
  6. 288 235
      pages/money/account.vue
  7. 495 263
      pages/money/recharge.vue
  8. 347 317
      pages/money/wallet.vue
  9. 0 1
      pages/product/common/productContent.vue
  10. 1 1
      pages/product/common/topSwiper.vue
  11. 175 0
      pages/product/construction.vue
  12. 73 0
      pages/product/product.vue
  13. 77 81
      pages/public/login.vue
  14. 2 2
      pages/public/register.vue
  15. 1 1
      pages/set/userinfo.vue
  16. 139 19
      pages/store/apply.vue
  17. 8 2
      pages/store/storeList.vue
  18. 165 0
      pages/user/applyList.vue
  19. 181 0
      pages/user/applyMember.vue
  20. 28 30
      pages/user/award.vue
  21. 460 0
      pages/user/extension.vue
  22. 220 0
      pages/user/minMember.vue
  23. 184 28
      pages/user/user.vue
  24. 376 321
      pages/user/withdrawal.vue
  25. BIN
      static/icon/btncz.png
  26. BIN
      static/icon/c3.png
  27. BIN
      static/icon/c5.png
  28. BIN
      static/icon/c7.png
  29. BIN
      static/icon/c8.png
  30. BIN
      static/icon/i1.png
  31. BIN
      static/icon/i2.png
  32. BIN
      static/icon/i3.png
  33. BIN
      static/icon/i4.png
  34. BIN
      static/icon/i6.png
  35. BIN
      static/icon/img02.png
  36. BIN
      static/icon/img09.png
  37. BIN
      static/icon/img11.png
  38. BIN
      static/icon/img12.png
  39. BIN
      static/icon/img13.png
  40. BIN
      static/icon/t1.png
  41. BIN
      static/icon/t2.png
  42. BIN
      static/icon/t3.png
  43. BIN
      static/icon/u1.png
  44. BIN
      static/icon/u2.png
  45. BIN
      static/icon/u3.png
  46. BIN
      static/icon/u4.png
  47. BIN
      static/img/base-sckill.png
  48. BIN
      static/img/tgbg.png
  49. BIN
      static/img/upto.png
  50. BIN
      static/img/user-bg.png
  51. BIN
      static/img/vip-bg.png
  52. BIN
      static/tabBar/dingdan.png
  53. BIN
      static/tabBar/home.png
  54. BIN
      static/tabBar/tab-cart-current.png
  55. BIN
      static/tabBar/tab-cart.png
  56. BIN
      static/tabBar/tab-cate-current.png
  57. BIN
      static/tabBar/tab-cate.png
  58. BIN
      static/tabBar/tab-home-current.png
  59. BIN
      static/tabBar/tab-home.png
  60. BIN
      static/tabBar/tab-my-current.png
  61. BIN
      static/tabBar/tab-my.png

+ 19 - 0
api/user.js

@@ -118,4 +118,23 @@ export function edit(data) {
 		method: 'post',
 		data
 	});
+}
+
+// 推广的人数
+export function getSpreadPeople(data){
+	return request({
+		url:'/api/spread/people',
+		method:'post',
+		data
+	})
+}
+
+//推广佣金/提现总和 
+//3=佣金,4=提现
+export function getSpreadCount(data,type) {
+	return request({
+		url:'/api/spread/count/'+type,
+		method:'get',
+		data
+	})
 }

+ 2 - 2
components/returnButton.vue

@@ -1,11 +1,11 @@
 <template>
 	<view class="content">
 		<view class="retun-Box" @click="navTo('/pages/order/order?state=0')">
-			<image class="return-img" src=".././static/tabBar/dingdan.png"></image>
+			<!-- <image class="return-img" src=".././static/tabBar/dingdan.png"></image> -->
 			<view class="return-text">订单</view>
 		</view>
 		<view class="retun-Box" @click="GoHome">
-			<image class="return-img" src=".././static/tabBar/home.png" ></image>
+			<!-- <image class="return-img" src=".././static/tabBar/home.png" ></image> -->
 			<view class="return-text">首页</view>
 		</view>
 	</view>

+ 2 - 2
components/seckill/seckill.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="seckill-section m-t" v-if="show">
 		<view class="s-header">
-			<image src="" mode="" class="sk-img"></image>
+			<image src="/static/icon/t1.png" mode="" class="sk-img"></image>
 			<view class="tit-box"><text class="tit">限时秒杀</text></view>
 			<view class="tip-box">
 				<text class="tip" v-if="status == 1">{{ showTime }}点场结束</text>
@@ -171,7 +171,7 @@ export default {
 		.sk-img {
 			width: 36rpx;
 			height: 36rpx;
-			background-color: red;
+			// background-color: red;
 			border-radius: 50%;
 			margin-right: 9rpx;
 		}

+ 39 - 23
pages.json

@@ -140,6 +140,17 @@
 				}
 			}
 		},
+		{
+			"path": "pages/product/construction",
+			"style": {
+				"navigationBarTitleText": "施工产品",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
 		{
 			"path": "pages/product/seckill",
 			"style": {
@@ -242,29 +253,6 @@
 			"style": {
 				// #ifndef MP-WEIXIN
 				"navigationStyle": "custom",
-				// "app-plus": {
-				// 	"bounce": "none",
-				// 	"titleNView": {
-				// 		"type": "transparent",
-				// 		"buttons": [{
-				// 				"fontSrc": "/static/yticon.ttf",
-				// 				"text": "\ue60f",
-				// 				"fontSize": "24",
-				// 				"color": "#303133",
-				// 				"width": "46px",
-				// 				"background": "rgba(0,0,0,0)"
-				// 			},
-				// 			{
-				// 				"fontSrc": "/static/yticon.ttf",
-				// 				"text": "\ue744",
-				// 				"fontSize": "28",
-				// 				"color": "#303133",
-				// 				"background": "rgba(0,0,0,0)",
-				// 				"redDot": true
-				// 			}
-				// 		]
-				// 	}
-				// },
 				// #endif
 				"navigationBarTitleText": "个人中心"
 			}
@@ -309,6 +297,34 @@
 				"navigationBarTitleText": "积分明细"
 			}
 		},
+		{
+			"path": "pages/user/extension",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "我的推广"
+			}
+		},
+		{
+			"path": "pages/user/applyMember",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "申请会员"
+			}
+		},
+		{
+			"path": "pages/user/applyList",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "申请列表"
+			}
+		},
+		{
+			"path": "pages/user/minMember",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "我的会员"
+			}
+		},
 		{
 			"path": "pages/store/storeList",
 			"style": {

+ 23 - 23
pages/index/index.vue

@@ -32,19 +32,19 @@
 				<image src="/static/icon/c3.png"></image>
 				<text>全部分类</text>
 			</view>
-			<navigator url="/pages/user/storeList">
+			<navigator url="/pages/store/storeList">
 				<view class="cate-item">
 					<image src="/static/icon/c5.png"></image>
 					<text>线下门店</text>
 				</view>
 			</navigator>
-			<navigator url="/pages/product/seckill">
+			<navigator url="/pages/product/construction">
 				<view class="cate-item">
 					<image src="/static/icon/c7.png"></image>
 					<text>施工产品</text>
 				</view>
 			</navigator>
-			<navigator url="/pages/index/sign">
+			<navigator url="/pages/user/shareQrCode">
 				<view class="cate-item">
 					<image src="/static/icon/c8.png"></image>
 					<text>分享有礼</text>
@@ -56,7 +56,7 @@
 		<!-- 附近门店 -->
 		<view class="store-wrapper">
 			<view class="title-wrapper flex">
-				<image src="" mode=""></image>
+				<image src="/static/icon/t2.png" mode=""></image>
 				<view class="">附近门店</view>
 				<view class="title-b">门店好物随心购</view>
 			</view>
@@ -78,7 +78,7 @@
 		<!-- 好货推荐 -->
 		<view class="store-wrapper">
 			<view class="title-wrapper flex">
-				<image src="" mode=""></image>
+				<image src="/static/icon/t3.png" mode=""></image>
 				<view class="">好货推荐</view>
 				<view class="title-b">优选商品低价入手</view>
 			</view>
@@ -253,24 +253,24 @@ export default {
 			}
 		},
 		// 初次加载页面高度时修改页面高度
-		bastList(newValue, oldValue) {
-			let obj = this;
-			let bHeight = Math.ceil(newValue.length / 2);
-			obj.$nextTick(function() {
-				uni.createSelectorQuery()
-					.select('#list-box')
-					.fields(
-						{
-							size: true
-						},
-						function(data) {
-							obj.pageProportion = data.width / 750;
-							obj.swiperHeight = Math.ceil(obj.pageProportion * 520 * bHeight);
-						}
-					)
-					.exec();
-			});
-		}
+		// bastList(newValue, oldValue) {
+		// 	let obj = this;
+		// 	let bHeight = Math.ceil(newValue.length / 2);
+		// 	obj.$nextTick(function() {
+		// 		uni.createSelectorQuery()
+		// 			.select('#list-box')
+		// 			.fields(
+		// 				{
+		// 					size: true
+		// 				},
+		// 				function(data) {
+		// 					obj.pageProportion = data.width / 750;
+		// 					obj.swiperHeight = Math.ceil(obj.pageProportion * 520 * bHeight);
+		// 				}
+		// 			)
+		// 			.exec();
+		// 	});
+		// }
 	},
 	data() {
 		return {

+ 288 - 235
pages/money/account.vue

@@ -1,236 +1,289 @@
-<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" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<view class="row b-b">
-					<text class="tit">姓名</text>
-					<input class="input" v-model="tabItem.orderList.name" type="text" placeholder="提款人姓名" placeholder-class="placeholder" />
-				</view>
-				<view class="row b-b">
-					<text class="tit">{{ tabIndex == 0 ? '账号' : '银行卡号' }}</text>
-					<input class="input" v-model="tabItem.orderList.code" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
-				</view>
-				<view class="row b-b" v-if="tabIndex == 1">
-					<text class="tit">所属银行</text>
-					<input class="input" v-model="tabItem.orderList.bankName" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
-				</view>
-			</swiper-item>
-		</swiper>
-
-		<button class="add-btn up" @click="confirm">提交申请</button>
-	</view>
-</template>
-
-<script>
-import { aliInfo, bankInfo, setAliInfo, setBankInfo } from '@/api/wallet.js';
-export default {
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '支付宝',
-					loadingType: 'more',
-					orderList: {
-						name: '',
-						code: '',
-						id:''
-					}
-				},
-				{
-					state: 1,
-					text: '银行卡',
-					loadingType: 'more',
-					orderList: {
-						name: '',
-						code: '',
-						bankName: '',
-						id:''
-					}
-				}
-			]
-		};
-	},
-
-	onLoad(options) {
-		this.tabCurrentIndex = +options.state || 0;
-		this.loadAli();
-		this.loadBank();
-	},
-
-	methods: {
-		//加载数据
-		loadAli(source) {
-			aliInfo({}).then(({data}) => {
-				let order = this.navList[0].orderList;
-				this.$set(order,'name',data.fullname)
-				this.$set(order,'code',data.alino)
-				this.$set(order,'id',data.id)
-			});
-		},
-		loadBank() {
-			bankInfo({}).then(({data}) => {
-				let order = this.navList[1].orderList;
-				this.$set(order,'name',data.fullname);
-				this.$set(order,'code',data.bankno);
-				this.$set(order,'bankName',data.bank);
-				this.$set(order,'id',data.id)
-			});
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		},
-		// 提交保存
-		confirm() {
-			let obj = this;
-			let arr = obj.navList[obj.tabCurrentIndex].orderList;
-			if (obj.tabCurrentIndex == 1) {
-				obj.setBankInfo({
-					fullname: arr.name,
-					bank: arr.bankName,
-					bankno: arr.code,
-					id:arr.id
-				});
-			}
-			if (obj.tabCurrentIndex == 0) {
-				obj.setAliInfo({
-					fullname: arr.name,
-					alino: arr.code,
-					id:arr.id
-				});
-			}
-		},
-		/* 保存银行卡详细 */
-		setBankInfo(obj) {
-			setBankInfo(obj)
-				.then(e => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					this.$api.prePage().dataUp()
-					setTimeout(() => {
-						uni.navigateBack()
-					},1500)
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 修改支付宝信息
-		setAliInfo(obj) {
-			setAliInfo(obj)
-				.then(e => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					this.$api.prePage().dataUp()
-					setTimeout(() => {
-						uni.navigateBack()
-					},1500)
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-	}
-};
-</script>
-
-<style lang="scss">
-.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;
-	}
-}
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.swiper-box {
-	height: 750rpx;
-}
-
-.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;
-			}
-		}
-	}
-}
-
-.add-btn {
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
+<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" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<view class="row b-b">
+					<text class="tit">姓名</text>
+					<input class="input" v-model="tabItem.orderList.name" type="text" placeholder="提款人姓名" placeholder-class="placeholder" />
+				</view>
+				<view class="row b-b">
+					<text class="tit">{{ tabIndex == 0 ? '账号' : '银行卡号' }}</text>
+					<input class="input" v-model="tabItem.orderList.code" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
+				</view>
+				<view class="row b-b" v-if="tabIndex == 1">
+					<text class="tit">所属银行</text>
+					<input class="input" v-model="tabItem.orderList.bankName" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
+				</view>
+			</swiper-item>
+		</swiper>
+
+		<button class="add-btn up" @click="confirm">提交申请</button>
+	</view>
+</template>
+
+<script>
+import { aliInfo, bankInfo, setAliInfo, setBankInfo } from '@/api/wallet.js';
+export default {
+	data() {
+		return {
+			tabCurrentIndex: 0,
+			navList: [
+				{
+					state: 0,
+					text: '支付宝',
+					loadingType: 'more',
+					orderList: {
+						name: '',
+						code: '',
+						id: ''
+					}
+				},
+				{
+					state: 1,
+					text: '银行卡',
+					loadingType: 'more',
+					orderList: {
+						name: '',
+						code: '',
+						bankName: '',
+						id: ''
+					}
+				}
+			]
+		};
+	},
+
+	onLoad(options) {
+		this.tabCurrentIndex = +options.state || 0;
+		// this.loadAli();
+		// this.loadBank();
+	},
+
+	methods: {
+		//加载数据
+		loadAli(source) {
+			aliInfo({}).then(({ data }) => {
+				let order = this.navList[0].orderList;
+				this.$set(order, 'name', data.fullname);
+				this.$set(order, 'code', data.alino);
+				this.$set(order, 'id', data.id);
+			});
+		},
+		loadBank() {
+			bankInfo({}).then(({ data }) => {
+				let order = this.navList[1].orderList;
+				this.$set(order, 'name', data.fullname);
+				this.$set(order, 'code', data.bankno);
+				this.$set(order, 'bankName', data.bank);
+				this.$set(order, 'id', data.id);
+			});
+		},
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		},
+		// 提交保存
+		confirm() {
+			let obj = this;
+			let arr = obj.navList[obj.tabCurrentIndex].orderList;
+			let pages = getCurrentPages(); //获取所有页面栈实例列表
+			console.log(pages);
+			let nowPage = pages[pages.length - 1]; //当前页页面实例
+			let prevPage = pages[pages.length - 2]; //上一页页面实例
+			console.log(prevPage);
+			// prevPage.$vm.sh = 100;   //修改上一页data里面的sh参数值为100
+			if (obj.tabCurrentIndex == 1) {
+				if (!arr.name) {
+					return this.$api.msg('请输入提款人姓名');
+				}
+				if (!arr.bankName) {
+					return this.$api.msg('请输入所属银行');
+				}
+				if (!arr.code) {
+					return this.$api.msg('请输入银行卡号');
+				}
+				let data = {
+					fullname: arr.name,
+					bank: arr.bankName,
+					bankno: arr.code
+				};
+				// #ifdef H5
+				prevPage.$vm.bankData = data;
+				// #endif
+				// #ifdef MP
+				prevPage.setData({
+					bankData: data
+				});
+				// #endif
+				// obj.setBankInfo({
+				// 	fullname: arr.name,
+				// 	bank: arr.bankName,
+				// 	bankno: arr.code,
+				// 	id:arr.id
+				// });
+				uni.navigateBack({
+					delta: 1
+				});
+			}
+			if (obj.tabCurrentIndex == 0) {
+				if (!arr.name) {
+					return this.$api.msg('请输入提款人姓名');
+				}
+				if (!arr.code) {
+					return this.$api.msg('请输入支付宝账号');
+				}
+				let data = {
+					fullname: arr.name,
+					alino: arr.code
+				};
+				// #ifdef H5
+				prevPage.$vm.aliData = data;
+				// #endif
+
+				// #ifdef MP
+				prevPage.setData({
+					bankData: data
+				});
+				// #endif
+				// obj.setAliInfo({
+				// 	fullname: arr.name,
+				// 	alino: arr.code,
+				// 	id:arr.id
+				// });
+				uni.navigateBack({
+					delta: 1
+				});
+			}
+		},
+		/* 保存银行卡详细 */
+		setBankInfo(obj) {
+			setBankInfo(obj)
+				.then(e => {
+					uni.showToast({
+						title: '修改成功',
+						duration: 2000,
+						position: 'top'
+					});
+					this.$api.prePage().dataUp();
+					setTimeout(() => {
+						uni.navigateBack();
+					}, 1500);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		// 修改支付宝信息
+		setAliInfo(obj) {
+			setAliInfo(obj)
+				.then(e => {
+					uni.showToast({
+						title: '修改成功',
+						duration: 2000,
+						position: 'top'
+					});
+					this.$api.prePage().dataUp();
+					setTimeout(() => {
+						uni.navigateBack();
+					}, 1500);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.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;
+	}
+}
+page,
+.content {
+	background: $page-color-base;
+	height: 100%;
+}
+
+.swiper-box {
+	height: 750rpx;
+}
+
+.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;
+			}
+		}
+	}
+}
+
+.add-btn {
+	&.up {
+		background-color: $base-color;
+		color: #fff;
+	}
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 0 auto;
+	margin-top: 30rpx;
+	font-size: $font-lg;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
 </style>

+ 495 - 263
pages/money/recharge.vue

@@ -1,264 +1,496 @@
-<template>
-	<view class="content">
-		<view class="row-box">
-			<view class="title">充值金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="placeholder" />
-			</view>
-		</view>
-
-		<view class="list">
-			<radio-group @change="tabRadio">
-				<!-- #ifdef APP-PLUS -->
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title"><text>支付宝充值</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 iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>微信充值</text></view>
-							<view class="node"><text>真实姓名(代勇明)</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color=" #5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label>
-				<!-- #endif -->
-			</radio-group>
-		</view>
-		<button class="add-btn up" :class="{ 'active-bg': payLoding }" @click="!payLoding ? confirm() : ''">确认充值</button>
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-// #ifdef H5
-import { rechargeWechat } from '@/api/wallet.js';
-// #endif
-// #ifdef MP
-import { rechargeRoutine } from '@/api/wallet.js';
-// #endif
-import { mapState } from 'vuex';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	data() {
-		return {
-			type: 'weixin',
-			money: '', //充值金额
-			payLoding: false //是否加载中
-		};
-	},
-	onLoad(options) {},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj'])
-		// #endif
-	},
-	methods: {
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e;
-		},
-		// 提交
-		confirm() {
-			let obj = this;
-			obj.payLoding = true;
-			// #ifdef H5
-			rechargeWechat({ price: this.money, from: this.type })
-				.then(e => {
-					let da = e.data.data;
-					obj.weichatObj.chooseWXPay({
-						timestamp: da.timestamp,
-						nonceStr: da.nonceStr,
-						package: da.package,
-						signType: da.signType,
-						paySign: da.paySign,
-						success: function(res) {
-							uni.showToast({
-								title: '充值成功',
-								duration: 2000,
-								position: 'top'
-							});
-						}
-					});
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					obj.payLoding = false;
-					console.log(e);
-				});
-			// #endif
-			// #ifdef MP
-			rechargeRoutine({ price: this.money})
-				.then(e => {
-					let da = e.data;
-						wx.requestPayment({
-								timeStamp: da.timestamp,
-								nonceStr: da.nonceStr,
-								package: da.package,
-								signType: da.signType,
-								paySign: da.paySign,
-								success: function(res) {
-									uni.redirectTo({
-										url: '/pages/money/paySuccess'
-									});
-								},
-								
-							})
-					
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					obj.payLoding = false;
-					console.log(e);
-				});
-			// #endif
-		},
-		//获取订单列表
-		loadData(source) {
-			console.log(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;
-			}
-			navItem.loadingType = 'loading';
-			setTimeout(() => {
-				let orderList = [];
-				orderList.forEach(item => {
-					navItem.orderList.push(item);
-				});
-				//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
-				this.$set(navItem, 'loaded', true);
-				//判断是否还有数据, 有改为 more, 没有改为noMore
-				navItem.loadingType = 'more';
-			}, 600);
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			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;
-		}
-
-		.buttom {
-			color: $font-color;
-			font-size: $font-base;
-		}
-	}
-}
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-
-.active-bg {
-	background-color: $color-gray !important;
-}
+<template>
+	<view class="content">
+		<view class="now">
+			<view>当前余额:</view>
+			<view class="now-money">¥{{new_money}}</view>
+		</view>
+		<view class="main-jg"></view>
+		<view class="add-wrapper">
+			<view class="add-box">
+				<view class="add-log">¥</view>
+				<input type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="place" @keyup="clearNoNum()" />
+			</view>
+			<view class="jg" style="height: 1px; background-color: #E6E6E6;"></view>
+			<view class="add-tags">
+				<view class="tag" v-for="(item, index) in addTags" :key="item" @click="tagClick(index)" :class="{ action: currentIndex === index && money == addTags[index] }">
+					<text>{{ item }}</text>
+					元
+				</view>
+			</view>
+		</view>
+		<view class="main-jg"></view>
+		<view class="btn-wrapper">
+			<view class="icon iconfont iconweixin1"><view>微信充值</view></view>
+			<view class="btn" @click="btnClick" :class="{'actiont': isSect}"><image src="../../static/icon/btncz.png" mode="" :class="{'action':!isSect}"></image></view>
+		</view>
+		<!-- <view class="row-box">
+			<view class="title">充值金额</view>
+			<view class="row">
+				<text class="tit">¥</text>
+				<input class="input" type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="placeholder" />
+			</view>
+		</view> -->
+		<view class="list">
+			<radio-group @change="tabRadio">
+				<!-- #ifdef APP-PLUS -->
+				<!-- <label>
+					<view class="box">
+						<view class="icon iconfont iconzhifubao"></view>
+						<view class="title-box">
+							<view class="title"><text>支付宝充值</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 iconweixin1"></view>
+						<view class="title-box">
+							<view class="title"><text>微信充值</text></view>
+							<view class="node"><text>真实姓名(代勇明)</text></view>
+						</view>
+						<view class="right"><radio value="weixin" color=" #5dbc7c" :checked="type == 'weixin'" /></view>
+					</view>
+				</label>
+				<!-- #endif -->
+			</radio-group>
+		</view>
+		<button class="add-btn up" :class="{ 'active-bg': payLoding }" @click="!payLoding ? confirm() : ''">立即充值</button>
+		
+	</view>
+</template>
+
+<script>
+import { getMoneyStyle } from '@/utils/rocessor.js';
+// #ifdef H5
+import { rechargeWechat ,userBalance} from '@/api/wallet.js';
+// #endif
+// #ifdef MP
+import { rechargeRoutine ,userBalance} from '@/api/wallet.js';
+// #endif
+import { mapState } from 'vuex';
+import { orderData, getUserInfo } from '@/api/user.js';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	data() {
+		return {
+			type: 'weixin',
+			money: '', //充值金额
+			payLoding: false, //是否加载中
+			addTags: [300, 200, 150, 100, 50],
+			currentIndex: 0,
+			addMoney: 0,
+			isSect: false ,//是否选择微信充值
+			new_money: 0,
+		};
+	},
+	onLoad(options) {
+		this.userBalance()
+	},
+	computed: {
+		// #ifdef H5
+		...mapState(['weichatObj'])
+		// #endif
+	},
+	methods: {
+		// 跳转
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
+		},
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e;
+		},
+		// 提交
+		confirm() {
+			if(this.money == 0){
+				return this.$api.msg('请输入充值金额');
+			}
+			if(!this.isSect) {
+				return this.$api.msg('请选择支付方式');
+			}
+			let obj = this;
+			obj.payLoding = true;
+			// #ifdef H5
+			rechargeWechat({
+				price: this.money,
+				from: this.type
+			})
+				.then(e => {
+					let da = e.data.data;
+					obj.weichatObj.chooseWXPay({
+						timestamp: da.timestamp,
+						nonceStr: da.nonceStr,
+						package: da.package,
+						signType: da.signType,
+						paySign: da.paySign,
+						success: function(res) {
+							uni.showToast({
+								title: '充值成功',
+								duration: 2000,
+								position: 'top'
+							});
+						}
+					});
+					obj.payLoding = false;
+				})
+				.catch(e => {
+					obj.payLoding = false;
+					console.log(e);
+				});
+			// #endif
+			// #ifdef MP
+			rechargeRoutine({
+				price: this.money
+			})
+				.then(e => {
+					let da = e.data;
+					wx.requestPayment({
+						timeStamp: da.timestamp,
+						nonceStr: da.nonceStr,
+						package: da.package,
+						signType: da.signType,
+						paySign: da.paySign,
+						success: function(res) {
+							uni.redirectTo({
+								url: '/pages/money/paySuccess'
+							});
+						}
+					});
+
+					obj.payLoding = false;
+				})
+				.catch(e => {
+					obj.payLoding = false;
+					console.log(e);
+				});
+			// #endif
+		},
+		//获取订单列表
+		loadData(source) {
+			console.log(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;
+			}
+			navItem.loadingType = 'loading';
+			setTimeout(() => {
+				let orderList = [];
+				orderList.forEach(item => {
+					navItem.orderList.push(item);
+				});
+				//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
+				this.$set(navItem, 'loaded', true);
+				//判断是否还有数据, 有改为 more, 没有改为noMore
+				navItem.loadingType = 'more';
+			}, 600);
+		},
+		tagClick(index) {
+			this.currentIndex = index;
+			this.money = this.addTags[index];
+		},
+		clearNoNum() {
+			this.money = this.money.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
+			switch (this.money) {
+				case '300':
+					this.currentIndex = 0;
+					break;
+				case '200':
+					this.currentIndex = 1;
+					break;
+				case '150':
+					this.currentIndex = 2;
+					break;
+				case '100':
+					this.currentIndex = 3;
+					break;
+				case '50':
+					this.currentIndex = 4;
+					break;
+			}
+		},
+		btnClick() {
+			this.isSect = !this.isSect
+		},
+		userBalance() {
+			userBalance().then( res => {
+				this.new_money = res.data.now_money
+				console.log(res)
+			})
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	height: 100%;
+	background-color: #fff;
+}
+
+.add-btn {
+	&.modified {
+		color: $base-color;
+	}
+
+	&.up {
+		background-color: $base-color;
+		color: #fff;
+	}
+
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 604rpx;
+	height: 90rpx;
+	margin: 0 auto;
+	margin-top: 30rpx;
+	font-size: $font-lg;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.row-box {
+	margin-top: 30rpx;
+	padding: 20rpx 30rpx;
+	background: #fff;
+
+	.title {
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
+	}
+
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		height: 80rpx;
+
+		.tit {
+			flex-shrink: 0;
+			width: 40rpx;
+			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;
+		}
+
+		.buttom {
+			color: $font-color;
+			font-size: $font-base;
+		}
+	}
+}
+
+.list {
+	padding-left: 30rpx;
+	margin-top: 30rpx;
+	background-color: #ffffff;
+
+	.box {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		height: 120rpx;
+		border-bottom: 1px solid $border-color-light;
+
+		.icon {
+			font-size: 48rpx;
+			padding-right: 20rpx;
+		}
+
+		.iconweixin1 {
+			color: #18bf16;
+		}
+
+		.iconzhifubao {
+			color: #08aaec;
+		}
+
+		.title-box {
+			flex-grow: 1;
+			text-align: left;
+
+			.title {
+				font-size: $font-base + 2rpx;
+				color: $font-color-base;
+			}
+
+			.node {
+				font-size: $font-sm;
+				color: $font-color-light;
+			}
+		}
+	}
+}
+
+/deep/ .uni-radio-input {
+	width: 45rpx;
+	height: 45rpx;
+}
+
+.active-bg {
+	background-color: $color-gray !important;
+}
+
+.now {
+	width: 100%;
+	height: 86rpx;
+	padding: 0 26rpx 0 47rpx;
+	display: flex;
+	justify-content: space-between;
+	line-height: 86rpx;
+	background-color: #fff;
+	// margin-bottom: 21rpx;
+
+	view {
+		font-size: 28rpx;
+		font-weight: 500;
+		color: #333333;
+	}
+
+	.now-money {
+		font-size: 32rpx;
+		font-weight: bold;
+		color: #ff4c4c;
+	}
+}
+
+.add-wrapper {
+	width: 750rpx;
+	height: 338rpx;
+	padding-left: 30rpx;
+	background: #ffffff;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	// margin-bottom: 22rpx;
+	.add-box {
+		width: 100%;
+		height: 103rpx;
+		display: flex;
+		flex-direction: row;
+		justify-content: space-between;
+		padding: 0 39rpx 0 10rpx;
+		align-items: center;
+
+		.add-log {
+			font-size: 37rpx;
+			font-weight: bold;
+		}
+
+		input {
+			width: 218rpx;
+			height: 30rpx;
+			font-size: 32rpx;
+			font-weight: 500;
+			color: #000;
+			line-height: 40px;
+			text-align: right;
+
+			.place {
+				color: #bfbfbf;
+			}
+		}
+	}
+
+	.jg {
+		width: 100%;
+	}
+
+	.add-tags {
+		height: 234rpx;
+		padding-top: 47rpx;
+		padding-bottom: 17rpx;
+		display: flex;
+		flex-direction: row;
+		flex-wrap: wrap;
+
+		// justify-content: space-between;
+		.tag {
+			width: 210rpx;
+			height: 70rpx;
+			background-color: #f0f0f0;
+			border-radius: 4rpx;
+			margin: 0 30rpx 30rpx 0;
+			text-align: center;
+			line-height: 70rpx;
+			font-size: 22rpx;
+
+			text {
+				font-size: 32rpx;
+				font-weight: 500;
+			}
+		}
+
+		.action {
+			color: #fff;
+			background-color: #ff4c4c;
+		}
+	}
+}
+.btn-wrapper {
+	padding: 49rpx 32rpx 0 40rpx;
+	height: 183rpx;
+	display: flex;
+	justify-content: space-between;
+	background-color: #fff;
+	.iconweixin1 {
+		color: #18bf16;
+		font-size: 48rpx;
+		display: flex;
+		view {
+			// display: inline-block;
+			height: 48rpx;
+			text-align: 48rpx;
+			padding-left: 20rpx;
+			// padding-top: 10rpx;
+			color: #000000;
+			font-size: 30rpx;
+		}
+	}
+	.btn {
+		width: 36rpx;
+		height: 36rpx;
+		border: 4rpx #901b21 solid;
+		border-radius: 8rpx 8rpx;
+		image {
+			// display: none;
+			width: 100%;
+			height: 100%;
+		}
+		.action {
+			display: none;
+		}
+	}
+	.actiont {
+		border:none;
+	}
+}
+.main-jg {
+	width: 100%;
+	height: 21rpx;
+	background-color: #f8f6f6;
+}
 </style>

+ 347 - 317
pages/money/wallet.vue

@@ -1,317 +1,347 @@
-<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('/pages/money/recharge')">充值</view>
-			<view class="flex buttom-box">
-				<view class="buttom" @click="navto('/pages/money/recharge')">
-					<view class="icon"><image class="icon-img" src="/static/icon/i5.png" mode="aspectFit"></image></view>
-					<text>充值</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom" @click="navto('/pages/money/withdrawal')">
-					<view class="icon"><image class="icon-img" src="/static/icon/i1.png" mode="aspectFit"></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 class="list-scroll-content" 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">
-							<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 } from '@/api/wallet.js';
-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 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-		// 获取用户余额
-		userBalance({}).then(({ data }) => {
-			this.money = data.now_money;
-		});
-	},
-	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;
-			}
-			// 修改当前对象状态为加载中
-			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: #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;
-	}
-}
-</style>
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="money-box">
+				<view class="money"><text class="money-icon">¥</text>{{ userInfo.now_money | getMoneyStyle }}</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)" v-if="item.text!=='全部'">{{ 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 class="list-scroll-content" 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">
+							<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 class="jg"></view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+		<view class="add-btn" @click="addmoney">立刻充值</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex';
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+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: 2,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 1,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [
+					],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				},
+				
+			],
+			money: ''
+		};
+	},
+	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;
+			}
+			// 修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+
+			spreadCommission(
+				{
+					page: navItem.page,
+					limit: navItem.limit
+				},
+				state
+			)
+				.then(({ data }) => {
+					console.log(data);
+					// if (data.count > 0) {
+					// 	navItem.orderList = navItem.orderList.concat(data.list);
+					// 	console.log(navItem.orderList);
+					// 	navItem.page++;
+					// }
+					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;
+		},
+		addmoney() {
+			uni.navigateTo({
+				url: '/pages/money/recharge'
+			})
+		}
+	}
+};
+</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: 400rpx;
+	color: #ffffff;
+	text-align: center;
+	.text {
+		padding-top: 147rpx;
+		font-size: $font-sm;
+	}
+	.money {
+		padding-top: 175rpx;
+		// margin: auto 0;
+		font-size: 56rpx;
+		font-weight: bold;
+		color: #FFFFFF;
+		.money-icon {
+			font-size: 38rpx;
+			font-weight: bold;
+			color: #FFFFFF;
+		}
+	}
+}
+
+.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: #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 {
+	padding-top: 10rpx;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+		position: relative;
+		// border-bottom: 1rpx black solid;
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+		.money {
+			// color: #fd5b23;
+			color: #901B21;
+			font-size: $font-lg;
+		}
+		.jg {
+			width: 701rpx;
+			height: 2rpx;
+			background: #F0F4F8;
+			margin: 0 auto;
+			position: absolute;
+			bottom: 0;
+		}
+	}
+}
+.list-scroll-content {
+	height: 100%;
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #ffffff;
+	}
+}
+.add-btn {
+	position: fixed;
+	bottom: 51rpx;
+	right: 39rpx;
+	width: 674rpx;
+	height: 88rpx;
+	background: $base-color;
+	border-radius: 44rpx;
+	color: #fff;
+	text-align: center;
+	line-height: 88rpx;
+	font-size: 34rpx;
+}
+</style>

+ 0 - 1
pages/product/common/productContent.vue

@@ -10,7 +10,6 @@
 			<text class="price-tip">¥</text>
 			<view class="price">
 				{{ goodsObjact.price }}
-				<!-- <text class="text">/份</text> -->
 				<text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
 			</view>
 		</view>

+ 1 - 1
pages/product/common/topSwiper.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="carousel">
-		<swiper indicator-dots :circular="true" duration="400" @change="swiperChange">
+		<swiper  :circular="true" duration="400" @change="swiperChange">
 			<swiper-item class="swiper-item" v-for="(item, index) in imgList" :key="index">
 				<view class="image-wrapper"><image :src="item" class="loaded" mode="scaleToFill"></image></view>
 			</swiper-item>

+ 175 - 0
pages/product/construction.vue

@@ -0,0 +1,175 @@
+<template>
+	<view class="store-list">
+		<scroll-view scroll-y="true" class="list" @scrolltolower="loadData()">
+			<empty v-if="loaded && list.length == 0"></empty>
+			<view class="store flex" v-for="item in list">
+				<image src="" mode="" class="store-img"></image>
+				<view class="store-info">
+					<view class="store-name clamp">鑫旺零售台州店鑫旺零售台州店鑫旺零售台州店鑫旺零售台州店鑫旺零售台州店</view>
+					<!-- <view class="store-detail">台州市椒江区市府大道120号</view> -->
+					<view class="info clamp">鑫旺零售台州店鑫旺零售台州店</view>
+					<view class="price-box">
+						<view class="new-price">
+							¥160.00
+							<text class="old-price"> ¥220.00</text>
+						</view>
+					</view>
+					<view class="qb-btn">立即购买</view>
+				</view>
+			</view>
+			<uni-load-more :status="loadingType" v-if="list != 0"></uni-load-more>
+		</scroll-view>
+	</view>
+</template>
+
+<script>
+import empty from '@/components/empty';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+export default {
+	components: {
+		uniLoadMore,
+		empty
+	},
+	data() {
+		return {
+			list: [1, 2, 3],
+			storeList: [],
+			loadingType: 'more',
+			page: 1,
+			limit: 10,
+			height: '', //滚动区域高度
+			loaded: false
+		};
+	},
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.list').boundingClientRect();
+				query.exec(function(res) {
+					console.log(res, 'ddddddddddddd');
+					_this.height = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	onLoad() {
+		this.loadData();
+	},
+	methods: {
+		//获取门店list
+		loadData() {
+			let obj = this;
+			if (obj.loadingType == 'loading') {
+				return;
+			}
+			if (obj.loadingType == 'noMore') {
+				return;
+			}
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.store-list {
+	padding-top: 20rpx;
+}
+.store {
+	margin: 0 auto 20rpx;
+	// width: 710rpx;
+	// height: 210rpx;
+	// background: #ffffff;
+	// box-shadow: 0px 0px 10rpx 0px rgba(0, 0, 0, 0.1);
+	// border-radius: 10rpx;
+	padding: 40rpx 20rpx;
+	justify-content: flex-start;
+
+	width: 710rpx;
+	height: 280rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 8rpx;
+	.store-img {
+		flex-shrink: 0;
+		background-color: red;
+		width: 190rpx;
+		height: 200rpx;
+		border-radius: 10rpx;
+	}
+	.store-info {
+		width: 481rpx;
+		height: 100%;
+		padding-left: 19rpx;
+		position: relative;
+		.store-name {
+			width: 461rpx;
+			padding-top: 10rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+		.store-detail {
+			padding-top: 10rpx;
+			font-size: 22rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+		.info {
+			padding-top: 20rpx;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FE6A42;
+		}
+		.qb-btn {
+			width: 160rpx;
+			height: 60rpx;
+			line-height: 60rpx;
+			line-height: 60rpx;
+			text-align: center;
+			background: linear-gradient(180deg, #fd4646, #ff3535);
+			box-shadow: 0px 2rpx 20rpx 0px rgba(253, 67, 67, 0.5);
+			border-radius: 30rpx;
+			position: absolute;
+			right: 0;
+			bottom: 0;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			text-align: center;
+		}
+		.price-box {
+			padding-left: 20rpx;
+			display: flex;
+			align-items: flex-end;
+			height: 42rpx;
+			position: absolute;
+			left: 0;
+			bottom: 0;
+			.new-price {
+				font-size: 32rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ff0000;
+				.old-price {
+					display: inline-block;
+					padding-left: 8rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					text-decoration: line-through;
+					color: #999999;
+				}
+			}
+			
+		}
+	}
+}
+</style>

+ 73 - 0
pages/product/product.vue

@@ -2,6 +2,29 @@
 	<view class="container">
 		<!-- 轮播图 -->
 		<top-swiper :imgList="imgList"></top-swiper>
+		<view class="sckill-top">
+			<view class="top-left">
+				<view class="left-top">限时秒杀价</view>
+				<view class="left-btm">
+					¥
+					<text class="now-pri">{{ goodsObjact.price }}</text>
+					<text class="old-pri">¥{{ goodsObjact.ot_price }}</text>
+				</view>
+			</view>
+			<view class="top-right">
+				<view class="right-top">距离本场结束还剩</view>
+				<uni-countdown
+					class="timeBox"
+					color="#901b21"
+					background-color="#fff"
+					splitor-color="#fff"
+					:show-day="true"
+					:hour="seckillObj.stopTimeH"
+					:minute="seckillObj.stopTimeM"
+					:second="seckillObj.stopTimeS"
+				></uni-countdown>
+			</view>
+		</view>
 		<!-- 标题 -->
 		<product-content :goodsObjact="goodsObjact"></product-content>
 		<!-- 拼货时间及优惠 -->
@@ -703,4 +726,54 @@ page {
 	justify-content: space-between;
 	align-items: center;
 }
+.sckill-top {
+	width: 750rpx;
+	height: 165rpx;
+	background-image: url(../../static/img/base-sckill.png);
+	background-size: 100% 100%;
+	position: relative;
+	top: -40rpx;
+	margin-bottom: -40rpx;
+	display: flex;
+	justify-content: space-between;
+	.top-left {
+		line-height: 1;
+		.left-top {
+			padding: 35rpx 0 23rpx 22rpx;
+			font-size: 44rpx;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 1;
+		}
+		.left-btm {
+			line-height: 1;
+			font-size: 30rpx;
+			font-weight: 500;
+			padding-left: 25rpx;
+			// text-decoration: line-through;
+			color: #ffffff;
+			.now-pri {
+				display: inline-block;
+				padding-right: 8rpx;
+				font-size: 44rpx;
+				font-weight: 800;
+				color: #ffffff;
+			}
+			.old-pri {
+				text-decoration: line-through;
+			}
+		}
+	}
+	.top-right {
+		padding: 67rpx 40rpx 18rpx 0;
+		.right-top {
+			text-align: center;
+			font-size: 22rpx;
+			font-weight: 400;
+			color: #ffffff;
+			line-height: 1;
+			padding-bottom: 8rpx;
+		}
+	}
+}
 </style>

+ 77 - 81
pages/public/login.vue

@@ -1,8 +1,6 @@
 <template>
 	<view class="container">
-		<view class="container_text">
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
-		</view>
+		<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">
@@ -22,33 +20,33 @@
 				<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 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>
+				<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';
+import { login } from '@/api/login.js';
+import { getUserInfo } from '@/api/user.js';
 // #ifdef APP-PLUS
 // applelogin接口需要开发编写,基础项目中可能没有
 import { applelogin } from '@/api/set.js';
@@ -64,8 +62,8 @@ export default {
 			username: '',
 			passward: '',
 			// #ifdef APP-PLUS
-			is_ios: false ,//判断是否为ios手机
-			is_apple_login:false,//是否有ios授权登录功能
+			is_ios: false, //判断是否为ios手机
+			is_apple_login: false //是否有ios授权登录功能
 			// #endif
 		};
 	},
@@ -79,11 +77,11 @@ export default {
 		}
 		uni.getSystemInfo({
 			success(e) {
-				if(+e.system.split('.')[0]>=13){
-					obj.is_apple_login=true;
+				if (+e.system.split('.')[0] >= 13) {
+					obj.is_apple_login = true;
 				}
 			}
-		})
+		});
 		// #endif
 	},
 	methods: {
@@ -104,7 +102,7 @@ export default {
 					uni.getUserInfo({
 						provider: type,
 						success(es) {
-							if(type==='weixin'){
+							if (type === 'weixin') {
 								loginWx(es.userInfo)
 									.then(e => {
 										uni.setStorageSync('token', e.data.token);
@@ -127,13 +125,13 @@ export default {
 										});
 									});
 							}
-							if(type==='apple'){
+							if (type === 'apple') {
 								console.log(es.userInfo);
 								applelogin({
-									account: es.userInfo.openId,
+									account: es.userInfo.openId
 								})
 									.then(function(e) {
-										console.log(e,'token')
+										console.log(e, 'token');
 										uni.setStorageSync('token', e.data.token);
 										getUserInfo({}).then(e => {
 											obj.login();
@@ -144,13 +142,11 @@ export default {
 												url: '/pages/index/index'
 											});
 										});
-										
 									})
 									.catch(function(e) {
 										console.log(e);
 									});
 							}
-							
 						},
 						fail(es) {
 							uni.showModal({
@@ -201,7 +197,7 @@ export default {
 						obj.login();
 						// 保存返回用户数据
 						obj.setUserInfo(e.data);
-						let ur = uni.getStorageSync('present')|| '/pages/index/index';
+						let ur = uni.getStorageSync('present') || '/pages/index/index';
 						//成功跳转首页
 						uni.switchTab({
 							url: ur,
@@ -210,7 +206,7 @@ export default {
 									url: ur,
 									fail(e) {
 										uni.navigateTo({
-											url: '/pages/index/index',
+											url: '/pages/index/index'
 										});
 									}
 								});
@@ -237,51 +233,51 @@ export default {
 </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;
-		}
+/* #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;
 	}
-	
-	/* #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;
-		}
+	.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%;
 }

+ 2 - 2
pages/public/register.vue

@@ -21,13 +21,13 @@
 				<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_input flex">
 				<view class="login_img"><image src="/static/icon/img06.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>
 			<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>

+ 1 - 1
pages/set/userinfo.vue

@@ -257,7 +257,7 @@
   		.submit{
   			margin: 40rpx auto;
   			width: 560rpx;
-  			background-color: #901b21;
+  			background-color: #ff4c4b;
   			color: #FFFFFF;
   			text-align: center;
   			padding:26rpx 0rpx;

+ 139 - 19
pages/store/apply.vue

@@ -1,8 +1,17 @@
 <template>
 	<view class="wrapper">
 		<template v-if="isStep == 1">
-			<view class="" style="height: 135rpx;"></view>
-			<view class="top"></view>
+			<view class="top-box" style="height: 135rpx;">
+				<image src="../../static/img/vip-bg.png" mode=""></image>
+			</view>
+			<view class="top">
+				<view class="top-tit">
+					鑫旺新零售VIP店长
+				</view>
+				<view class="top-btm">
+					<text class="hx"></text><text>累计业绩达到12W可申请成为店长</text><text class="hx"></text>
+				</view>
+			</view>
 			<view class="item"><view class="item-top">特权一</view></view>
 			<view class="item"><view class="item-top">特权一</view></view>
 			<view class="item"><view class="item-top">特权一</view></view>
@@ -13,19 +22,20 @@
 				<view class="tab-item">
 					<view class="itemx">
 						<view class="item-tit">姓名:</view>
-						<input type="text" v-model="name" />
+						<input type="text" v-model="name" placeholder="请输入您的姓名"/>
 					</view>
 					<view class="itemx">
 						<view class="item-tit">推荐人编号:</view>
-						<input type="text" v-model="name" />
+						<input type="text" v-model="speed_id" placeholder="请输入推荐人编号"/>
 					</view>
 					<view class="itemx">
 						<view class="item-tit">联系方式:</view>
-						<input type="text" v-model="name" />
+						<input type="text" v-model="phone" placeholder="请输入您的手机号"/>
 					</view>
 					<view class="itemx">
 						<view class="item-tit">验证码:</view>
-						<input type="text" v-model="name" />
+						<input type="text" v-model="code" placeholder="请输入验证码"/>
+						<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 					</view>
 				</view>
 			</view>
@@ -33,12 +43,12 @@
 				身份证正反面
 				<view class="imgs">
 					<view class="imgs-item">
-						<image :src="sfzz" mode="" v-if="sfzz" @click.stop="upImg(1)"></image>
-						<image src="../../static/img/add.png" mode="" v-if="!sfzz" @click.stop="upImg(1)"></image>
+						<image :src="sfzz" mode="" v-if="sfzz" @click.stop="upImg('sfzz')"></image>
+						<image src="../../static/img/add.png" mode="" v-if="!sfzz" @click.stop="upImg('sfzz')"></image>
 					</view>
 					<view class="imgs-item">
-						<image :src="sfzf" mode="" v-if="sfzf" @click.stop="upImg(2)"></image>
-						<image src="../../static/img/add.png" mode="" v-if="!sfzf" @click.stop="upImg(2)"></image>
+						<image :src="sfzf" mode="" v-if="sfzf" @click.stop="upImg('sfzf')"></image>
+						<image src="../../static/img/add.png" mode="" v-if="!sfzf" @click.stop="upImg('sfzf')"></image>
 					</view>
 				</view>
 			</view>
@@ -55,15 +65,24 @@
 					</view>
 				</view>
 			</view>
+			<view class="btn-tc">
+				
+			</view>
+			<view class="sub-btn">
+				提交申请
+			</view>
 		</template>
 	</view>
 </template>
 
 <script>
+import { register, verify } from '@/api/login.js';
 import { upload } from '@/api/user.js';
 export default {
 	data() {
 		return {
+			time: '', //保存倒计时对象
+			countDown: 0,//倒计时
 			isStep: 1,
 			name: '',
 			speed_id: '',
@@ -73,24 +92,58 @@ export default {
 			sfzf: '' //身份证反面
 		};
 	},
+	watch:{
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
+			}
+		}
+	},
 	methods: {
 		changeStep() {
 			this.isStep = 2;
 		},
-		upImg(index) {
+		upImg(item) {
 			let obj = this;
 			upload({
 				filename: ''
 			}).then(res => {
 				console.log(res[0].url);
-				if (index == 1) {
-					obj.sfzz = res[0].url;
-				}
-				if( index == 2) {
-					obj.sfzf = res[0].url
-				}
-			});
-		}
+				obj[item] = res[0].url
+			}).catch( err => {
+				console.log(err)
+			})
+		},
+		//发送验证码
+		verification() {
+			let obj = this;
+			if (this.phone == '') {
+				this.$api.msg('请输入电话号码');
+				return;
+			}
+			if (this.phone.length < 11) {
+				this.$api.msg('请输入正确的手机号');
+				return;
+			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				verify({
+					phone: obj.phone,
+					type: 'register'
+				})
+					.then(({ data }) => {})
+					.catch(err => {
+						console.log(err);
+					});
+			}
+		},
 	}
 };
 </script>
@@ -100,11 +153,41 @@ export default {
 	height: 100%;
 }
 .top {
+	position: relative;
+	z-index: 2;
 	margin: 0 auto 49rpx;
 	width: 674rpx;
 	height: 231rpx;
 	background: linear-gradient(-23deg, #ffe7be, #fed591);
 	border-radius: 10rpx;
+	.top-tit {
+		padding-top: 80rpx;
+		text-align: center;
+		font-size: 49rpx;
+		font-family: Source Han Sans CN;
+		font-weight: 500;
+		color: #6A4714;
+	}
+	.top-btm {
+		margin-top: 35rpx;
+		font-size: 19rpx;
+		font-family: Source Han Sans CN;
+		font-weight: 400;
+		color: #6A4714;
+		text-align: center;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		text {
+			display: inline-block;
+			padding: 0 4rpx;
+		}
+		.hx {
+			width: 66rpx;
+			height: 1rpx;
+			background: #81504A;
+		}
+	}
 }
 .item {
 	margin: 44rpx auto;
@@ -148,6 +231,16 @@ export default {
 		display: flex;
 		// width: 690px;
 		border: 1px #f4f4f4 solid;
+		.code {
+			width: 150rpx;
+			flex-shrink: 0;
+			text-align: center;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FF4C4C;
+			line-height: 100rpx;
+		}
 		.item-tit {
 			height: 100rpx;
 			line-height: 100rpx;
@@ -196,4 +289,31 @@ export default {
 		}
 	}
 }
+.sub-btn {
+	position: fixed;
+	bottom: 0;
+	width: 750rpx;
+	height: 98rpx;
+	background: linear-gradient(180deg, #FD4646, #FF3535);
+	font-size: 36rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #FFFFFF;
+	line-height: 98rpx;
+	text-align: center;
+}
+.btn-tc {
+	height: 98rpx;
+}
+.top-box {
+	position: relative;
+	z-index: 1;
+	image {
+		width: 750rpx;
+		height: 236rpx;
+		position: absolute;
+		top: 0;
+		
+	}
+}
 </style>

+ 8 - 2
pages/store/storeList.vue

@@ -2,10 +2,10 @@
 	<view class="store-list">
 		<scroll-view scroll-y="true" class="list" @scrolltolower="loadData()">
 			<empty v-if="loaded && list.length == 0"></empty>
-			<view class="store flex" v-for="item in list">
+			<view class="store flex" v-for="item in list" @click="navTo('/pages/store/storeDetail')">
 				<image src="" mode="" class="store-img"></image>
 				<view class="store-info">
-					<view class="store-name">鑫旺零售台州店</view>
+					<view class="store-name clamp">鑫旺零售台州店鑫旺零售台州店鑫旺零售台州店</view>
 					<view class="store-detail">台州市椒江区市府大道120号</view>
 					<view class="store-tip">门店</view>
 					<view class="store-des">
@@ -68,6 +68,11 @@
 				}
 				
 				
+			},
+			navTo(url) {
+				uni.navigateTo({
+					url: url
+				})
 			}
 		}
 	}
@@ -99,6 +104,7 @@
 			padding-left: 19rpx;
 			position: relative;
 			.store-name {
+				max-width: 400rpx;
 				font-size: 30rpx;
 				font-family: PingFang SC;
 				font-weight: bold;

+ 165 - 0
pages/user/applyList.vue

@@ -0,0 +1,165 @@
+<template>
+	<view class="content">
+		<view style="height: 20rpx;"></view>
+		<scroll-view scroll-y="true" class="list-wrapper" :style="{'height':height}" @scrolltolower="loadData()">
+			<empty v-if="loaded && list.length == 0"></empty>
+			<view class="apply-item flex" v-for="item in list">
+				<view class="item-left flex">
+					<image src="" mode="" class="item-img"></image>
+					<view class="item-info flex">
+						<view class="name">
+							假猪套
+						</view>
+						<view class="phone">
+							13245678911
+						</view>
+					</view>
+				</view>
+				<view class="item-btn flex">
+					<view class="err-btn">
+						拒绝
+					</view>
+					<view class="pas-btn">
+						通过
+					</view>
+				</view>
+				<!-- <view class="item-right">
+					已拒绝
+				</view> -->
+			</view>
+			<uni-load-more :status="loadingType" v-if="list !=0"></uni-load-more>
+		</scroll-view>
+	</view>
+</template>
+
+<script>
+	import empty from '@/components/empty';
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	export default {
+		components: {
+			empty,
+			uniLoadMore
+		},
+		data(){
+			return {
+				list: [1,2,3],
+				loaded: false,
+				loadingType: 'more',
+				page: 1,
+				limit: 15,
+				height: '',//滚动区域高度
+			}
+		},
+		onReady(res) {
+			var _this = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.list-wrapper').boundingClientRect();
+					query.exec(function(res) {
+						console.log(res, 'ddddddddddddd');
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		onLoad () {
+			this.loadData()
+		},
+		methods: {
+			loadData() {
+				let obj = this
+				if(obj.loadingType == 'loading') {
+					return
+				}
+				if(obj.loadingType == 'noMore') {
+					return 
+				}
+				
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.list-wrapper {
+		// padding: 20rpx 20rpx 0;
+		background-color: #f8f6f6;
+	}
+	.apply-item {
+		
+		background-color: #fff;
+		height: 130rpx;
+		border-bottom: 1px solid #F0F0F0;
+		padding: 0 35rpx 0 20rpx;
+		&:last-child {
+			border: none;
+		}
+		.item-left {
+			.item-img {
+				height: 80rpx;
+				width: 80rpx;
+				border-radius: 80rpx;
+				background-color: red;
+			}
+			.item-info {
+				height: 80rpx;
+				flex-direction: column;
+				padding-left: 20rpx;
+				justify-content: space-around;
+				align-items: flex-start;
+				line-height: 1;
+				.name {
+					font-size: 30rpx;
+					font-family: PingFangSC;
+					font-weight: 500;
+					color: #3F454B;
+				}
+				.phone {
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #999999;
+				}
+			}
+		}
+		.item-btn {
+			.err-btn {
+				width: 98rpx;
+				height: 47rpx;
+				border: 1px solid #000000;
+				border-radius: 5rpx;
+				line-height: 47rpx;
+				text-align: center;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
+			}
+			.pas-btn {
+				width: 98rpx;
+				height: 47rpx;
+				background: linear-gradient(-35deg, #F8DD4F, #FBEB77);
+				border-radius: 5rpx;
+				line-height: 47rpx;
+				text-align: center;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
+				margin-left: 10rpx;
+			}
+		}
+		.item-right {
+			line-height: 129rpx;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #999999;
+		}
+		
+	}
+	
+</style>

+ 181 - 0
pages/user/applyMember.vue

@@ -0,0 +1,181 @@
+<template>
+	<view class="content">
+		<view class="tab-wrapper">
+			<view class="tab-item">
+				<view class="itemx">
+					<view class="item-tit">姓名:</view>
+					<input type="text" v-model="name" placeholder="请输入您的姓名"/>
+				</view>
+				<view class="itemx">
+					<view class="item-tit">推荐人编号:</view>
+					<input type="text" v-model="speed_id" placeholder="请输入推荐人编号"/>
+				</view>
+				<view class="itemx">
+					<view class="item-tit">联系方式:</view>
+					<input type="text" v-model="phone" placeholder="请输入您的手机号"/>
+				</view>
+				<view class="itemx">
+					<view class="item-tit">验证码:</view>
+					<input type="text" v-model="code" placeholder="请输入验证码"/>
+					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+				</view>
+			</view>
+		</view>
+		<view class="up-wrapper">
+			身份证正反面
+			<view class="imgs">
+				<view class="imgs-item">
+					<image :src="sfzz" mode="" v-if="sfzz" @click.stop="upImg('sfzz')"></image>
+					<image src="../../static/img/add.png" mode="" v-if="!sfzz" @click.stop="upImg('sfzz')"></image>
+				</view>
+				<view class="imgs-item">
+					<image :src="sfzf" mode="" v-if="sfzf" @click.stop="upImg('sfzf')"></image>
+					<image src="../../static/img/add.png" mode="" v-if="!sfzf" @click.stop="upImg('sfzf')"></image>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { register, verify } from '@/api/login.js';
+	import { upload } from '@/api/user.js';
+	export default {
+		data() {
+			return {
+				time: '', //保存倒计时对象
+				countDown: 0,//倒计时
+				isStep: 1,
+				name: '',
+				speed_id: '',
+				phone: '',
+				code: '',
+				sfzz: '', //身份证正面
+				sfzf: '' //身份证反面
+			}
+		},
+		watch:{
+			countDown(i) {
+				if (i == 0) {
+					clearInterval(this.time);
+				}
+			}
+		},
+		methods: {
+			//发送验证码
+			verification() {
+				let obj = this;
+				if (this.phone == '') {
+					this.$api.msg('请输入电话号码');
+					return;
+				}
+				if (this.phone.length < 11) {
+					this.$api.msg('请输入正确的手机号');
+					return;
+				}
+				// 判断是否在倒计时
+				if (obj.countDown > 0) {
+					return false;
+				} else {
+					obj.countDown = 60;
+					obj.time = setInterval(() => {
+						obj.countDown--;
+					}, 1000);
+					//调用验证码接口
+					verify({
+						phone: obj.phone,
+						type: 'register'
+					})
+						.then(({ data }) => {})
+						.catch(err => {
+							console.log(err);
+						});
+				}
+			},
+			//上传图片
+			upImg(item) {
+				let obj = this;
+				upload({
+					filename: ''
+				}).then(res => {
+					console.log(res[0].url);
+					obj[item] = res[0].url
+				}).catch( err => {
+					console.log(err)
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.tab-wrapper {
+		padding: 20rpx 30rpx;
+		background-color: #f2f3f5;
+		.itemx {
+			margin: 0 auto;
+			width: 100%;
+			background-color: #fff !important;
+			height: 100rpx;
+			display: flex;
+			// width: 690px;
+			border: 1px #f4f4f4 solid;
+			.code {
+				width: 150rpx;
+				flex-shrink: 0;
+				text-align: center;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #FF4C4C;
+				line-height: 100rpx;
+			}
+			.item-tit {
+				height: 100rpx;
+				line-height: 100rpx;
+				padding-left: 30rpx;
+				width: 250rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+				flex-shrink: 0;
+			}
+			input {
+				width: 440rpx;
+				padding-right: 20rpx;
+				height: 100rpx;
+				line-height: 100rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
+			}
+		}
+	}
+	.up-wrapper {
+		margin: auto;
+		padding: 38rpx 21rpx;
+		width: 690rpx;
+		// height: 250rpx;
+		background: #ffffff;
+		border-radius: 10rpx;
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #333333;
+		.imgs {
+			padding: 27rpx 70rpx;
+			display: flex;
+			justify-content: space-around;
+			.imgs-item {
+				height: 160rpx;
+				width: 160rpx;
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+		}
+	}
+</style>

+ 28 - 30
pages/user/award.vue

@@ -2,20 +2,7 @@
 	<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 class="money"><text>¥</text>{{ money | getMoneyStyle }}</view>	
 			</view>
 		</view>
 		<view class="navbar">
@@ -26,7 +13,6 @@
 				<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">
@@ -44,7 +30,8 @@
 					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
-		</swiper>
+		</swiper>
+		<view class="moneyTx" @click="navto('./withdrawal')">提现</view>
 	</view>
 </template>
 
@@ -183,19 +170,6 @@ page {
 .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;
@@ -234,7 +208,14 @@ page {
 		font-size: $font-sm;
 	}
 	.money {
-		font-size: 56rpx;
+		padding-top: 150rpx;
+		font-size: 56rpx;
+		text {
+			display: inline-block;
+			font-size: 32rpx;
+			position: relative;
+			top: -5rpx;
+		}
 	}
 }
 
@@ -301,5 +282,22 @@ page {
 	.empty-content {
 		background-color: #ffffff;
 	}
+}
+.moneyTx {
+	width: 674rpx;
+	height: 88rpx;
+	line-height: 88rpx;
+	background: #FF4C4C;
+	border-radius: 44rpx;
+	font-size: 36rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #FFFFFF;
+	position: fixed;
+	bottom: 51rpx;
+	right: 0;
+	left: 0;
+	text-align: center;
+	margin: 0 auto;
 }
 </style>

+ 460 - 0
pages/user/extension.vue

@@ -0,0 +1,460 @@
+ <template>
+ 	<view class="content">
+ 		<view class="content-money">
+ 			<view class="money-box">
+ 				<view class="goback-box" @click="toBack">
+ 					<image class="goback" src="https://37shop.liuniu946.com/front/img/fanhui.png" mode=""></image>
+ 				</view>
+ 				<view class="header">我的推广</view>
+ 				<image class="tuiguang_bg" src="../../static/img/tgbg.png"></image>
+ 			 <!--  <view class="money_img"><image :src="list.avatar || img"></image></view> -->
+ 			 <view class="money-frame">
+ 				 <!-- <view class="money_name">我的推广</view> -->
+ 				 <view class="money_num">
+ 					{{userInfo.spread_count || '0'}}
+ 					<text class="money_ren">人</text>
+ 				</view>
+ 			 </view>
+ 			</view>
+ 			<view class="flex buttom-box">
+ 				<view class="buttom"  @click="tabClick(0)">
+ 					<view class="money">{{total || 0}}</view>
+ 					<text class="text" :class="{ current: tabCurrentIndex === 0 }">一级推广</text>
+ 				</view>
+ 				<view class="buttom"  @click="tabClick(1)">
+ 					<view class="money">{{totalLevel || 0}}</view>
+ 					<text class="text" :class="{ current: tabCurrentIndex === 1 }">二级推广</text>
+ 				</view>
+ 			</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">
+				<view class="tg-wrapper">
+					<view class="tg-box">
+						<view class="tg-item">
+							<view class="tg-tit">
+								会员
+							</view>
+							<view class="tg-val">
+								10人
+							</view>
+						</view>
+						<view class="tg-jg"></view>
+						<view class="tg-item">
+							<view class="tg-tit">
+								店长
+							</view>
+							<view class="tg-val">
+								10人
+							</view>
+						</view>
+						<view class="tg-jg"></view>
+						<view class="tg-item">
+							<view class="tg-tit">
+								代理
+							</view>
+							<view class="tg-val">
+								10人
+							</view>
+						</view>
+					</view>
+				</view>
+ 				<scroll-view class="list-scroll-content" 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">
+ 									<text>{{ item.nickname }}</text>
+ 								</view>
+ 								<view class="time">
+ 									<text>{{ item.spread_time }}</text>
+ 								</view>
+ 							</view>
+ 						</view>
+ 					</view>
+ 					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+ 				</scroll-view>
+ 			</swiper-item>
+ 		</swiper>
+ 	</view>
+ </template>
+ <script>
+ import { getExtensionData,getUserInfo ,getSpreadPeople} from '@/api/user.js';
+ import { mapState, mapMutations } from 'vuex';
+ 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) * 470) - 44;
+ 					// 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 //每次信息条数
+ 				}
+ 			],
+ 			all:'',
+ 			list:'',
+ 			total:'',
+ 			totalLevel:'',
+ 			img:'http://kaifa.crmeb.net/uploads/attach/2019/08/20190807/723adbdd4e49a0f9394dfc700ab5dba3.png',
+			userInfo: {}
+ 		};
+ 	},
+ 	onLoad(options) {},
+ 	onShow() {
+ 		this.loadData();
+		this.loadAll()
+ 	},
+ 	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';
+ 			getSpreadPeople(
+ 				{
+ 					page: navItem.page,
+ 					limit: navItem.limit,
+ 					keyword:'',
+					// sort: 'ASC/DESC',
+					// level: index,
+ 					// sort:'uid desc'
+					// sort: 'pay_price ASC'
+ 					grade:state
+ 				},
+ 			)
+ 				.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'
+ 			})
+ 		},
+		loadAll(){
+			getUserInfo().then(res => {
+				this.userInfo = res.data
+				console.log(res,'6666666666666666666')
+			});
+		}
+ 	}
+ };
+ </script>
+ 
+ <style lang="scss">
+ page {
+ 	background: #ffffff;
+ 	height: 100%;
+ }
+ .content-money {
+ 	// padding-bottom: 30rpx;
+ 	background: $page-color-base;
+ 	.buttom-box {
+ 		position: relative;
+ 		background-color: #ffffff;
+ 		text-align: center;
+ 		padding: 30rpx 0;
+ 		.buttom {
+ 			flex-grow: 1;
+ 		}
+ 		.money{
+ 			
+ 			font-size: 32rpx;
+ 			font-weight: bold;
+ 			color: #921a23;
+ 		}
+ 		.text {
+ 			padding-bottom: 26rpx;
+ 			font-size: 28rpx;
+ 			font-weight: 500;
+ 			color: #666666;
+ 			&.current {
+ 				border-bottom: 2px solid #921a23;
+ 			}
+ 		}
+ 		.icon {
+ 			height: 50rpx;
+ 			width: 48rpx;
+ 			margin: 0 auto;
+ 			.icon-img {
+ 				width: 100%;
+ 				height: 100%;
+ 			}
+ 		}
+ 	}
+ }
+ .money-box {
+ 	// background: $base-color;
+ 	height: 380rpx;
+ 	color: #ffffff;
+ 	text-align: center;
+ 	font-size: 35rpx;
+ 	position: relative;
+ 	// padding-top: 60rpx;
+ 	.header{
+ 		position: absolute;
+ 		left: 0;
+ 		top: 0;
+ 		width: 100%;
+ 		height: 80rpx;
+ 		font-size: 36rpx;
+ 		font-weight: bold;
+ 		z-index: 99;
+ 		display: flex;
+ 		justify-content: center;
+ 		align-items: center;
+ 	}
+ 	.goback-box{
+ 		position: absolute;
+ 		left: 29rpx;
+ 		top: 0;
+ 		height: 80rpx;
+ 		display: flex;
+ 		align-items: center;
+ 	}
+ 	.goback{
+ 		z-index: 100;
+ 		width: 34rpx;
+ 		height: 34rpx;
+ 	}
+ 	.tuiguang_bg {
+ 		width: 100%;
+ 		height: 400rpx;
+ 		position: relative;
+ 	}
+ 	.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: 120rpx;
+ 		// left: 30rpx;
+ 		// height: 460rpx;
+ 		// display: flex;
+ 		// align-items: flex-start;
+ 		// flex-direction: column;
+ 		// justify-content: center;
+ 	}
+ 	.money_name{
+ 		width: 100%;
+ 		text-align: center;
+ 		font-size: 32rpx;
+ 		font-family: PingFang SC;
+ 		font-weight: bold;
+ 		color: #FFFFFF;
+ 		
+ 	}
+ 	.money_num {
+ 		font-size: 72rpx;
+ 		font-family: PingFang SC;
+ 		font-weight: bold;
+ 		color: #FFFFFF;
+ 		.money_ren {
+ 			font-size: 36rpx;
+ 		}
+ 	}
+ }
+ 
+ // 列表
+ 
+ .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;
+ 				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 {
+ 					margin-top: 15rpx;
+ 					font-size: 22rpx;
+ 					color: $font-color-light;
+ 				}
+ 			}
+ 		}
+ 		.money {
+ 			color: #DB1935;
+ 			font-size: $font-lg;
+ 		}
+ 	}
+ }
+ .list-scroll-content {
+ 	height: 100%;
+ }
+ .content {
+ 	height: 100%;
+ 	.empty-content {
+ 		background-color: #ffffff;
+ 	}
+ }
+ .tg-wrapper {
+	width: 100%;
+	background-color: #f7f7f7;
+	
+	padding: 20rpx 0;
+	.tg-box {
+		display: flex;
+		justify-content: center;
+		width: 690rpx;
+		height: 143rpx;
+		background-color: #fff;
+		margin: 0 auto;
+		align-items: center;
+		.tg-item {
+			width: 33%;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			.tg-tit {
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+				
+			}
+			.tg-val {
+				padding-top: 15rpx;
+				font-size: 34rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+				
+			}
+		}
+		.tg-jg {
+			width: 1rpx;
+			height: 51rpx;
+			background: #DDDDDD;
+		}
+	}
+ }
+ </style>
+ 

+ 220 - 0
pages/user/minMember.vue

@@ -0,0 +1,220 @@
+<template>
+	<view class="content">
+		<view class="top">
+			<image src="" mode=""></image>
+			<view class="top-val">
+				{{allMun || 0}}<text>人</text>
+			</view>
+		</view>
+		<scroll-view scroll-y="true" :style="{'height': height}" class="list"  @scrolltolower="loadData()">
+			 <!-- <empty v-if="list.length == 0" ></empty> -->
+			<view class="apply-item flex" v-for="item in list">
+				<view class="item-left flex">
+					<image src="" mode="" class="item-img"></image>
+					<view class="item-info flex">
+						<view class="name">
+							假猪套
+						</view>
+						<view class="phone">
+							13245678911
+						</view>
+					</view>
+				</view>
+			</view>
+			<uni-load-more :status="loadingType"></uni-load-more>
+			<view class="btn-jg"></view>
+		</scroll-view>
+		<!-- <view class="btn-jg"></view> -->
+		<view class="btn-wrapper">
+			<navigator url="./applyList">
+				<view class="btm-btn">
+					申请列表
+				</view>
+			</navigator>
+		</view>
+	</view>
+</template>
+
+<script>
+	import empty from '@/components/empty';
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	export default {
+		components: {
+			empty,
+			uniLoadMore
+		},
+		data() {
+			return {
+				height: '',
+				list: [],
+				loaded: false,
+				loadingType: 'more',
+				page: 1,
+				limit: 10,
+				allMun: 0,
+			}
+		},
+		onReady(res) {
+			var _this = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.list').boundingClientRect();
+					query.exec(function(res) {
+						console.log(res, 'ddddddddddddd');
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		onLoad() {
+			this.loadData()
+		},
+		methods: {
+			loadData() {
+				let obj = this
+				if(obj.loadingType == 'loading') {
+					return
+				}
+				if(obj.loadingType == 'noMore') {
+					return 
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.top {
+		width: 750rpx;
+		height: 400rpx;
+		position: relative;
+		image {
+			width: 100%;
+			height: 100%;
+			background-color: #bfa;
+			position: absolute;
+			top: 0;
+		}
+		.top-val {
+			width: 100%;
+			height: 100%;
+			line-height:400rpx;
+			text-align: center;
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #FF4C4C;
+			position: absolute;
+			top: 0;
+			text {
+				font-size: 36rpx;
+			}
+		}
+		
+	}
+	.btn-wrapper {
+		width: 100%;
+		height: 116rpx;
+		z-index: 99;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		margin: auto;
+		background-color: #fff;
+		.btm-btn {
+			margin: 0 auto;
+			width: 674rpx;
+			height: 88rpx;
+			background: #FF4C4C;
+			border-radius: 44rpx;
+			text-align: center;
+			line-height: 88rpx;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+		}
+	}
+	
+	.btn-jg {
+		height: 116rpx;
+	}
+	.list {
+		.apply-item {
+			background-color: #fff;
+			height: 130rpx;
+			border-bottom: 1px solid #F0F0F0;
+			padding: 0 35rpx 0 20rpx;
+			&:last-child {
+				border: none;
+			}
+			.item-left {
+				.item-img {
+					height: 80rpx;
+					width: 80rpx;
+					border-radius: 80rpx;
+					background-color: red;
+				}
+				.item-info {
+					height: 80rpx;
+					flex-direction: column;
+					padding-left: 20rpx;
+					justify-content: space-around;
+					align-items: flex-start;
+					line-height: 1;
+					.name {
+						font-size: 30rpx;
+						font-family: PingFangSC;
+						font-weight: 500;
+						color: #3F454B;
+					}
+					.phone {
+						font-size: 22rpx;
+						font-family: PingFang SC;
+						font-weight: 400;
+						color: #999999;
+					}
+				}
+			}
+			.item-btn {
+				.err-btn {
+					width: 98rpx;
+					height: 47rpx;
+					border: 1px solid #000000;
+					border-radius: 5rpx;
+					line-height: 47rpx;
+					text-align: center;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.pas-btn {
+					width: 98rpx;
+					height: 47rpx;
+					background: linear-gradient(-35deg, #F8DD4F, #FBEB77);
+					border-radius: 5rpx;
+					line-height: 47rpx;
+					text-align: center;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					margin-left: 10rpx;
+				}
+			}
+			.item-right {
+				line-height: 129rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 400;
+				color: #999999;
+			}
+			
+		}
+	}
+</style>

+ 184 - 28
pages/user/user.vue

@@ -3,11 +3,13 @@
 		<view class="vheigh"></view>
 		<scroll-view class="content-box" scroll-y="true">
 			<view class="user-section">
-				<view class="bg"></view>
+				<view class="bg">
+					<image src="/static/img/user-bg.png" mode=""></image>
+				</view>
 				<view class="user-info-box ">
-					<view class="detail flex">
-						<view class="portrait-box"><image class="portrait" :src="userInfo.avatar || '/static/error/missing-face.png'"></image></view>
-						<view class="info-box">
+					<view class="detail flex" >
+						<view class="portrait-box" @click="navTo('/pages/set/userinfo')"><image class="portrait" :src="userInfo.avatar || '/static/error/missing-face.png'"></image></view>
+						<view class="info-box" >
 							<view class="username">{{ userInfo.nickname || '游客' }}</view>
 							<!-- <view class="font-size-sm" v-if="userInfo.spread_uid">邀请码:{{ userInfo.spread_uid }}</view> -->
 							<view class="user-lv">
@@ -79,7 +81,9 @@
 			</view>
 			<!-- 升级店长 -->
 			<navigator url="/pages/store/apply">
-				<view class="up-box" @click=""></view>
+				<view class="up-box">
+					<image src="/static/img/upto.png" mode=""></image>
+				</view>
 			</navigator>
 			<view>
 				<!-- <view class="tj-sction">
@@ -108,40 +112,42 @@
 							<view class="icon icon-b"><image class="icon-img" src="/static/icon/u1.png" mode="aspectFit"></image></view>
 							<text>我的钱包</text>
 						</view>
-						<view class="order-item" @click="navTo('/pages/user/award')" hover-class="common-hover" :hover-stay-time="50">
+						<view class="order-item" @click="navTo('/pages/user/minMember')" hover-class="common-hover" :hover-stay-time="50">
 							<view class="icon icon-b"><image class="icon-img" src="/static/icon/u3.png" mode="aspectFit"></image></view>
 							<text>我的会员</text>
 						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=4')" hover-class="common-hover" :hover-stay-time="50">
+						<view class="order-item" @click="navTo('/pages/user/shareQrCode')" hover-class="common-hover" :hover-stay-time="50">
 							<view class="icon icon-b"><image class="icon-img" src="/static/icon/u4.png" mode="aspectFit"></image></view>
 							<text>邀请好友</text>
 						</view>
 					</view>
 				</view>
-
-				<!-- 浏览历史 -->
 				<view class="history-section icon">
-					<!-- <view class="sec-header">
-						<text class="iconfont iconfavor"></text>
-						<text>浏览历史</text>
-					</view> -->
-					<!-- <scroll-view scroll-x class="h-list">
-						<image
-							class="h-list-image"
-							@click="navTo('/pages/product/product')"
-							src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553105186633&di=c121a29beece4e14269948d990f9e720&imgtype=0&src=http%3A%2F%2Fimg004.hc360.cn%2Fm8%2FM04%2FDE%2FDE%2FwKhQplZ-QteEBvsbAAAAADUkobU751.jpg"
-							mode="aspectFill"
-						></image>
-					</scroll-view> -->
 					<uni-list>
-						<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>
-						<uni-list-item title="联系客服" @click="navTo('/pages/set/address')" thumb="/static/icon/img05.png"></uni-list-item>
+						<uni-list-item title="我的实体店" @click="navTo('/pages/money/wallet')" thumb="/static/icon/img13.png"></uni-list-item>
+						<uni-list-item title="我的推广" @click="navTo('/pages/user/extension')" thumb="/static/icon/img11.png"></uni-list-item>
+						<uni-list-item title="收货地址" @click="navTo('/pages/set/address')" thumb="/static/icon/img12.png"></uni-list-item>
+						<uni-list-item title="联系客服" @click="showPopup" thumb="/static/icon/img02.png"></uni-list-item>
 						<!-- <uni-list-item title="邀请好友" @click="navTo('/pages/user/shareQrCode')" thumb="/static/icon/img10.png"></uni-list-item> -->
 						<uni-list-item title="关于我们" @click="navTo('/pages/shareQrCode/index')" thumb="/static/icon/img09.png"></uni-list-item>
 					</uni-list>
 				</view>
+				<uni-popup ref="popup" type="center">
+					<view class="popup-box">
+						<view class="img"><image src="https://37shop.liuniu946.com/front/img/img009.png" mode=""></image></view>
+						<view class="mian">
+							<view class="delivery">
+								<view class="title">已经为您定制专属客服</view>
+								<image src="https://37shop.liuniu946.com/front/img/img010.png" mode=""></image>
+							</view>
+							<view class="nocancel">客服VX:{{ 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>
 		</scroll-view>
 	</view>
@@ -152,6 +158,7 @@ import uniList from '@/components/uni-list/uni-list.vue';
 import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
 import { orderData, getUserInfo } from '@/api/user.js';
 import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+// import uniCopy from '@/js_sdk/xb-copy/uni-copy.js';
 let startY = 0,
 	moveY = 0,
 	pageAtTop = true;
@@ -166,7 +173,8 @@ export default {
 			coverTransition: '0s',
 			moving: false,
 			userDowm: 0, //卡片升级专属高度
-			userMaxDowm: 0 //卡片最高高度
+			userMaxDowm: 0, //卡片最高高度
+			text: 'hello word'
 		};
 	},
 	onShow() {
@@ -216,6 +224,60 @@ export default {
 		...mapState('user', ['userInfo', 'orderInfo','hasLogin'])
 	},
 	methods: {
+		uniCopy(content) {
+			/**
+			 * 小程序端 和 app端的复制逻辑
+			 */
+			//#ifndef H5
+			uni.setClipboardData({
+				data: content,
+				success: function() {
+					console.log('success');
+					return true
+				}
+			});
+			//#endif
+			
+			/**
+			 * H5端的复制逻辑
+			 */
+			// #ifdef H5
+			if (!document.queryCommandSupported('copy')) { //为了兼容有些浏览器 queryCommandSupported 的判断
+				// 不支持
+				return false
+			}
+			let textarea = document.createElement("textarea")
+			textarea.value = content
+			textarea.readOnly = "readOnly"
+			document.body.appendChild(textarea)
+			textarea.select() // 选择对象
+			textarea.setSelectionRange(0, content.length) //核心
+			let result = document.execCommand("copy") // 执行浏览器复制命令
+			textarea.remove()
+			return result
+			// #endif
+		},
+		showPopup() {
+			this.$refs.popup.open();
+		},
+		cancel() {
+			this.$refs.popup.close();
+		},
+		comfirm(text) {
+			console.log(text);
+			const result = this.uniCopy(text);
+			if (result === false) {
+				uni.showToast({
+					title: '不支持'
+				});
+			} else {
+				uni.showToast({
+					title: '复制成功',
+					icon: 'none'
+				});
+			}
+			this.$refs.popup.close();
+		},
 		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
 		// 加载初始数据
 		loadBaseData() {
@@ -344,7 +406,11 @@ page {
 		width: 100%;
 		height: 100%;
 		// z-index: 1;
-		background-color: $base-color;
+		// background-color: $base-color;
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 }
 .user-info-box {
@@ -413,7 +479,6 @@ page {
 		image {
 			width: 30rpx;
 			height: 30rpx;
-			background-color: red;
 		}
 		.title {
 			padding-left: 9rpx;
@@ -610,6 +675,11 @@ page {
 	height: 90rpx;
 	background: linear-gradient(73deg, #FFFFFF 0%, #FFFBEB 0%, #FFF1DA 0%, #FED591 100%);
 	border-radius: 20rpx;
+	image {
+		width: 100%;
+		height: 100%;
+		border-radius: 20rpx;
+	}
 }
 .item-box-b {
 	width: 710rpx;
@@ -623,4 +693,90 @@ page {
 	right: 0;
 	margin: 0 auto -150rpx;
 }
+.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>

+ 376 - 321
pages/user/withdrawal.vue

@@ -1,321 +1,376 @@
-<template>
-	<view class="content">
-		<uni-notice-bar single="true" text="每月25号到月底可提现上月结算余额"></uni-notice-bar>
-		<view class="content-money">
-			<view class="flex ">
-				<view class="buttom">
-					<view class="icon">{{ money | getMoneyStyle }}</view>
-					<text class="text">可提现佣金</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom">
-					<view class=" icon">{{ freeze | getMoneyStyle }}</view>
-					<text class="text">待审核提现佣金</text>
-				</view>
-			</view>
-		</view>
-		<view class="row-box">
-			<view class="title">提现金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
-				<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>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
-import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	components: {
-		uniNoticeBar
-	},
-	data() {
-		return {
-			type: 'weixin', //提现方式
-			money: '0.00', //可提现金额
-			freeze: '0.0', //冻结金额
-			withdrawal: '', //提现金额
-			minPrice: '', //最少提现金额
-			aliData: {},
-			bankData: {},
-			// #ifdef H5
-			weichatBsrowser: false
-			// #endif
-		};
-	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		//加载提现信息
-		this.loadData();
-		// 加载提款账号信息
-		this.loadAli();
-		this.loadBank();
-	},
-	methods: {
-		// 更新数据
-		dataUp() {
-			this.loadAli();
-			this.loadBank();
-		},
-		//加载数据
-		async loadAli(source) {
-			aliInfo({}).then(e => {
-				this.aliData = e.data;
-			});
-		},
-		// 加载银行卡信息
-		async loadBank() {
-			bankInfo({}).then(e => {
-				this.bankData = e.data;
-			});
-		},
-		// 加载余额信息
-		async loadData() {
-			extractBank({}).then(({ data }) => {
-				this.money = data.commissionCount;
-				this.minPrice = data.minPrice;
-				this.freeze = data.incommissionCount;
-			});
-		},
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				money: this.withdrawal, //金额
-				money_type: 0 //0佣金1余额
-			};
-
-			if (this.withdrawal < this.minPrice) {
-			uni.showToast({
-				title: '提现金额不可少于'+this.minPrice,
-				duration: 2000,
-				mask: false,
-				icon: 'none',
-			})
-				return;
-			}
-			if (this.type == 'alipay') {
-				data.name = this.aliData.fullname;
-				data.alipay_code = this.aliData.alino;
-			}
-			if (this.type == 'bank') {
-				data.name = this.bankData.fullname;
-				data.bankname = this.bankData.bank;
-				data.cardnum = this.bankData.bankno;
-			}
-
-			extractCash(data)
-				.then(e => {
-					uni.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
-				.catch(e => {
-					console.log();
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.content-money {
-	padding: 30rpx 0;
-	background: #ffffff;
-}
-.flex {
-	background-color: #ffffff;
-	text-align: center;
-	margin: 0 30rpx;
-	border-radius: $border-radius-sm;
-	.buttom {
-		font-size: $font-lg;
-		width: 50%;
-	}
-	.interval {
-		width: 2px;
-		height: 60rpx;
-		background-color: #eeeeee;
-	}
-	.icon {
-		background-size: 100%;
-		font-size: 42rpx;
-		color: $font-color-dark;
-		font-weight: bold;
-		background-repeat: no-repeat;
-		background-position: center;
-	}
-	.text {
-		color: $font-color-light;
-	}
-}
-
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			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;
-		}
-
-		.buttom {
-			color: $font-color-spec;
-			font-size: $font-base;
-		}
-	}
-}
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-			.icon-img {
-				height: 50rpx;
-				width: 50rpx;
-			}
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-</style>
+<template>
+	<view class="content">
+		<view class="row-box">
+			<view class="could">
+				<text class="">
+					可提现金额
+				</text>
+				<text class="num">
+					¥{{ money | getMoneyStyle }}
+				</text>
+			</view>
+			<view class="jg"></view>
+			<view class="sq">
+				<text class="">
+					申请提现金额
+				</text>
+				<text class="num">
+					¥{{ withdrawal | getMoneyStyle }}
+				</text>
+			</view>
+			<view class="jg"></view>
+			<view class="row">
+				<text class="tit">¥</text>
+				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = money">全部提现</view>
+			</view>
+		</view>
+		<!-- #ifndef MP-WEIXIN -->
+		<view class="list" v-if="!weichatBsrowser">
+			<view style="padding-top: 28rpx; font-size: 32rpx; font-weight: 600;color: #4d4d4d;">
+				提现到
+			</view>
+			<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="#ff4c4c" :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="#ff4c4c" :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="#ff4c4c" :checked="type == 'bank'" /></view>
+					</view>
+				</label>
+			</radio-group>
+		</view>
+		<!-- #endif -->
+		<button class="add-btn up" @click="confirm">提交申请</button>
+		<button class="add-btn up" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button>
+	</view>
+</template>
+
+<script>
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
+import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
+import { spreadInfo } from '@/api/user.js'
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	components: {
+		uniNoticeBar
+	},
+	data() {
+		return {
+			type: 'weixin', //提现方式
+			money: '0.00', //可提现金额
+			freeze: '0.0', //冻结金额
+			withdrawal: '', //提现金额
+			minPrice: '', //最少提现金额
+			aliData: {},
+			bankData: {},
+			// #ifdef H5
+			weichatBsrowser: false
+			// #endif
+			
+		};
+	},
+	onLoad(options) {
+		// #ifdef H5
+		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+		// #endif
+		//加载提现信息
+		this.loadData();
+		// 加载提款账号信息
+		// this.loadAli();
+		// this.loadBank();
+	},
+	methods: {
+		// 更新数据
+		dataUp(){
+			this.loadAli();
+			this.loadBank();
+		},
+		//加载数据
+		async loadAli(source) {
+			aliInfo({}).then(e => {
+				this.aliData = e.data;
+			});
+		},
+		// 加载银行卡信息
+		async loadBank() {
+			bankInfo({}).then(e => {
+				this.bankData = e.data;
+			});
+		},
+		// 加载余额信息
+		async loadData() {
+			// spreadInfo().then( ({data}) => {
+			// 	console.log(data,"spreadInfo++++++++++++++++++")
+			// 	this.money = data.brokerage_price//可提现余额
+			// 	this.minPrice = data.user_extract_min//最小提现
+			// 	this.freeze = data.lock_brokerage//冻结金额
+			// })
+			extractBank({}).then(({ data }) => {
+				this.money = data.commissionCount;//可提现余额
+				this.minPrice = data.minPrice;//最小提现
+				// this.freeze =data.inmoneyCount//提现中的余额
+			});
+		},
+		// 跳转
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
+		},
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e.detail.value;
+		},
+		// 提交
+		confirm() {
+			console.log(this.withdrawal,this.money)
+			if(+this.withdrawal == 0) {
+				return this.$api.msg('请输入提现金额')
+			}
+			if(+this.withdrawal < +this.minPrice){
+				return this.$api.msg('提现金额不足最低提现金额')
+			}
+			if(+this.withdrawal > +this.money){
+				return this.$api.msg('可提现佣金不足')
+			}
+			let data = {
+				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
+				money: this.withdrawal, //金额
+				money_type: 1//0佣金1余额
+			}
+			if (this.type=='alipay') {
+				data.name = this.aliData.fullname;
+				data.alipay_code = this.aliData.alino;
+				if(!data.name){
+					return this.$api.msg('请完善账户名称')
+				}
+				if(!data.alipay_code){
+					return this.$api.msg('请完善支付宝账号')
+				}
+			}
+			if (this.type=='bank') {
+				data.name = this.bankData.fullname;
+				data.bankname = this.bankData.bank;
+				data.cardnum = this.bankData.bankno;
+				if(!data.name) {
+					return this.$api.msg('请完善银行卡信息')
+				}
+				if(!data.bankname) {
+					return this.$api.msg('请完善银行卡信息')
+				}
+				if(!data.cardnum) {
+					return this.$api.msg('请完善银行卡信息')
+				}
+			}
+			
+			
+			extractCash(data)
+				.then(e => {
+					uni.showToast({
+						title: '提交成功',
+						duration: 2000,
+						position: 'top'
+					});
+				})
+				.catch(e => {
+					console.log();
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	height: 100%;
+}
+.content-money {
+	padding: 30rpx 0;
+	background: #ffffff;
+}
+.flex {
+	background-color: #ffffff;
+	text-align: center;
+	margin: 0 30rpx;
+	border-radius: $border-radius-sm;
+	justify-content: space-between;
+	flex-direction: row;
+	.buttom {
+		font-size: $font-lg;
+		width: 50%;
+	}
+	.interval {
+		width: 2px;
+		height: 60rpx;
+		background-color: #eeeeee;
+	}
+	.icon {
+		background-size: 100%;
+		font-size: 42rpx;
+		color: $font-color-dark;
+		font-weight: bold;
+		background-repeat: no-repeat;
+		background-position: center;
+	}
+	.text {
+		color: $font-color-light;
+	}
+}
+
+.row-box {
+	// margin-top: 30rpx;
+	padding: 20rpx 30rpx;
+	background: #fff;
+	.title {
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
+	}
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		height: 80rpx;
+		.tit {
+			flex-shrink: 0;
+			width: 40rpx;
+			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;
+		}
+
+		.buttom {
+			// color: $font-color-spec;
+			color: #f34358;
+			font-size: $font-base;
+		}
+	}
+}
+.add-btn {
+	&.modified {
+		color: $base-color;
+	}
+	&.up {
+		background-color: $base-color;
+		color: #fff;
+	}
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 0 auto;
+	margin-top: 30rpx;
+	font-size: $font-lg;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.list {
+	padding-left: 30rpx;
+	margin-top: 30rpx;
+	background-color: #ffffff;
+	.box {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		padding:0 21rpx ;
+		height: 120rpx;
+		border-bottom: 1px solid $border-color-light;
+		.icon {
+			font-size: 48rpx;
+			padding-right: 20rpx;
+			.icon-img {
+				height: 50rpx;
+				width: 50rpx;
+			}
+		}
+		.iconweixin1 {
+			color: #18bf16;
+		}
+		.iconzhifubao {
+			color: #08aaec;
+		}
+		.title-box {
+			flex-grow: 1;
+			text-align: left;
+			.title {
+				font-size: $font-base + 2rpx;
+				color: $font-color-base;
+			}
+			.node {
+				font-size: $font-sm;
+				color: $font-color-light;
+			}
+		}
+	}
+}
+/deep/ .uni-radio-input {
+	width: 45rpx;
+	height: 45rpx;
+}
+
+.could, .sq {
+	height: 110rpx;
+	font-size: 32rpx;
+	font-weight: 600;
+	color: #333333;
+	line-height: 110rpx;
+	display: flex;
+	justify-content: space-between;
+	.num {
+		font-size: 40rpx;
+		font-weight: bold;
+		color: #333333;
+		// line-height: 46px;
+	}
+}
+.jg {
+	width: 100%;
+	height: 1px;
+	background-color: #E6E6E6;
+}
+</style>

BIN
static/icon/btncz.png


BIN
static/icon/c3.png


BIN
static/icon/c5.png


BIN
static/icon/c7.png


BIN
static/icon/c8.png


BIN
static/icon/i1.png


BIN
static/icon/i2.png


BIN
static/icon/i3.png


BIN
static/icon/i4.png


BIN
static/icon/i6.png


BIN
static/icon/img02.png


BIN
static/icon/img09.png


BIN
static/icon/img11.png


BIN
static/icon/img12.png


BIN
static/icon/img13.png


BIN
static/icon/t1.png


BIN
static/icon/t2.png


BIN
static/icon/t3.png


BIN
static/icon/u1.png


BIN
static/icon/u2.png


BIN
static/icon/u3.png


BIN
static/icon/u4.png


BIN
static/img/base-sckill.png


BIN
static/img/tgbg.png


BIN
static/img/upto.png


BIN
static/img/user-bg.png


BIN
static/img/vip-bg.png


BIN
static/tabBar/dingdan.png


BIN
static/tabBar/home.png


BIN
static/tabBar/tab-cart-current.png


BIN
static/tabBar/tab-cart.png


BIN
static/tabBar/tab-cate-current.png


BIN
static/tabBar/tab-cate.png


BIN
static/tabBar/tab-home-current.png


BIN
static/tabBar/tab-home.png


BIN
static/tabBar/tab-my-current.png


BIN
static/tabBar/tab-my.png