lhl 3 年之前
父节点
当前提交
e55c77a6ec
共有 100 个文件被更改,包括 3856 次插入1954 次删除
  1. 17 0
      api/index.js
  2. 9 0
      api/user.js
  3. 3 3
      manifest.json
  4. 28 1
      pages.json
  5. 24 16
      pages/index/index.vue
  6. 46 7
      pages/index/yuyuechang.vue
  7. 160 0
      pages/money/moneyPwd.vue
  8. 1340 1183
      pages/order/order.vue
  9. 867 0
      pages/product/showpro.vue
  10. 7 7
      pages/public/register.vue
  11. 3 3
      pages/user/myggz.vue
  12. 450 403
      pages/user/mygwjf.vue
  13. 459 0
      pages/user/mytg.vue
  14. 3 3
      pages/user/mythq.vue
  15. 1 1
      pages/user/myxfjf.vue
  16. 26 9
      pages/user/user.vue
  17. 376 281
      pages/user/xfjfzz.vue
  18. 二进制
      static/icon/g9.png
  19. 二进制
      static/icon/mytg.png
  20. 34 34
      store/index.js
  21. 二进制
      unpackage/cache/apk/__UNI__474F381_cm.apk
  22. 1 1
      unpackage/cache/apk/apkurl
  23. 0 0
      unpackage/cache/apk/cmManifestCache.json
  24. 1 1
      unpackage/cache/certdata
  25. 0 0
      unpackage/cache/wgt/__UNI__474F381/__uniappopenlocation.js
  26. 0 0
      unpackage/cache/wgt/__UNI__474F381/app-config-service.js
  27. 0 0
      unpackage/cache/wgt/__UNI__474F381/app-service.js
  28. 0 0
      unpackage/cache/wgt/__UNI__474F381/app-view.js
  29. 0 0
      unpackage/cache/wgt/__UNI__474F381/manifest.json
  30. 二进制
      unpackage/cache/wgt/__UNI__474F381/static/icon/g9.png
  31. 二进制
      unpackage/cache/wgt/__UNI__474F381/static/icon/mytg.png
  32. 0 0
      unpackage/cache/wgt/__UNI__474F381/view.css
  33. 0 0
      unpackage/cache/wgt/__UNI__474F381/view.umd.min.js
  34. 0 0
      unpackage/dist/build/app-plus/__uniappopenlocation.js
  35. 0 0
      unpackage/dist/build/app-plus/app-config-service.js
  36. 0 0
      unpackage/dist/build/app-plus/app-service.js
  37. 0 0
      unpackage/dist/build/app-plus/app-view.js
  38. 0 0
      unpackage/dist/build/app-plus/manifest.json
  39. 二进制
      unpackage/dist/build/app-plus/static/icon/g9.png
  40. 二进制
      unpackage/dist/build/app-plus/static/icon/mytg.png
  41. 0 0
      unpackage/dist/build/app-plus/view.css
  42. 0 0
      unpackage/dist/build/app-plus/view.umd.min.js
  43. 1 1
      unpackage/dist/build/h5/index.html
  44. 二进制
      unpackage/dist/build/h5/static/icon/down.png
  45. 二进制
      unpackage/dist/build/h5/static/icon/dsjh.png
  46. 二进制
      unpackage/dist/build/h5/static/icon/duihuan.png
  47. 二进制
      unpackage/dist/build/h5/static/icon/fanhui.png
  48. 二进制
      unpackage/dist/build/h5/static/icon/g9.png
  49. 二进制
      unpackage/dist/build/h5/static/icon/gou.png
  50. 二进制
      unpackage/dist/build/h5/static/icon/huzhuan.png
  51. 二进制
      unpackage/dist/build/h5/static/icon/index-gou.png
  52. 二进制
      unpackage/dist/build/h5/static/icon/logo.png
  53. 二进制
      unpackage/dist/build/h5/static/icon/red-gift.png
  54. 二进制
      unpackage/dist/build/h5/static/icon/red-tit.png
  55. 二进制
      unpackage/dist/build/h5/static/icon/sc-ico.png
  56. 二进制
      unpackage/dist/build/h5/static/icon/search-h.png
  57. 二进制
      unpackage/dist/build/h5/static/icon/tixian.png
  58. 二进制
      unpackage/dist/build/h5/static/icon/uset.png
  59. 二进制
      unpackage/dist/build/h5/static/img/Hang.24f347f3.png
  60. 二进制
      unpackage/dist/build/h5/static/img/Hang.png
  61. 二进制
      unpackage/dist/build/h5/static/img/afternoonicon.png
  62. 二进制
      unpackage/dist/build/h5/static/img/afternooninco.png
  63. 二进制
      unpackage/dist/build/h5/static/img/autotrophy.png
  64. 二进制
      unpackage/dist/build/h5/static/img/back.png
  65. 二进制
      unpackage/dist/build/h5/static/img/busy.png
  66. 二进制
      unpackage/dist/build/h5/static/img/duihuan.ab538c58.png
  67. 0 0
      unpackage/dist/build/h5/static/img/eveningicon.png
  68. 二进制
      unpackage/dist/build/h5/static/img/goodtitle.76a8d4d6.png
  69. 二进制
      unpackage/dist/build/h5/static/img/hall-bg.3ea75ec4.png
  70. 二进制
      unpackage/dist/build/h5/static/img/hall-bg.55ed6253.png
  71. 二进制
      unpackage/dist/build/h5/static/img/hall-bg.png
  72. 二进制
      unpackage/dist/build/h5/static/img/hell-main.0d5b9ae4.png
  73. 二进制
      unpackage/dist/build/h5/static/img/hell-main.80d55f64.png
  74. 二进制
      unpackage/dist/build/h5/static/img/hell-main.png
  75. 二进制
      unpackage/dist/build/h5/static/img/hinco.png
  76. 二进制
      unpackage/dist/build/h5/static/img/hinfo-bg.5c7cd32b.png
  77. 二进制
      unpackage/dist/build/h5/static/img/hinfo-bg.e82aa48d.png
  78. 二进制
      unpackage/dist/build/h5/static/img/hinfo-bg.png
  79. 二进制
      unpackage/dist/build/h5/static/img/huzhuan.b15117ef.png
  80. 二进制
      unpackage/dist/build/h5/static/img/index-inco1.png
  81. 二进制
      unpackage/dist/build/h5/static/img/index-inco2.png
  82. 二进制
      unpackage/dist/build/h5/static/img/index-inco3.png
  83. 二进制
      unpackage/dist/build/h5/static/img/index-inco4.png
  84. 二进制
      unpackage/dist/build/h5/static/img/index-inco5.png
  85. 二进制
      unpackage/dist/build/h5/static/img/index-inco6.png
  86. 二进制
      unpackage/dist/build/h5/static/img/index-inco7.png
  87. 二进制
      unpackage/dist/build/h5/static/img/index-inco8.png
  88. 二进制
      unpackage/dist/build/h5/static/img/index-product.295b0458.png
  89. 二进制
      unpackage/dist/build/h5/static/img/index-product.png
  90. 二进制
      unpackage/dist/build/h5/static/img/index11.b49260e0.png
  91. 二进制
      unpackage/dist/build/h5/static/img/index13.b1399b0f.png
  92. 二进制
      unpackage/dist/build/h5/static/img/index14.66eb5893.png
  93. 二进制
      unpackage/dist/build/h5/static/img/integral.png
  94. 二进制
      unpackage/dist/build/h5/static/img/jifen.543823a7.png
  95. 二进制
      unpackage/dist/build/h5/static/img/jifen.png
  96. 二进制
      unpackage/dist/build/h5/static/img/ling.png
  97. 二进制
      unpackage/dist/build/h5/static/img/log.34930231.png
  98. 二进制
      unpackage/dist/build/h5/static/img/logo.a6e0c93f.png
  99. 二进制
      unpackage/dist/build/h5/static/img/money-bg.3078b543.png
  100. 二进制
      unpackage/dist/build/h5/static/img/morningicon.png

+ 17 - 0
api/index.js

@@ -104,4 +104,21 @@ export function see_order(data) {
 		method: 'get',
 		data
 	});
+}
+// 查看预约商品详情 http://sxg.frp.liuniu946.com/api/auction/product?id=103
+export function product(data) {
+	return request({
+		url: '/api/auction/product',
+		method: 'get',
+		data
+	});
+}
+
+// 设置支付密码http://sxg.frp.liuniu946.com/api/edit_pas
+export function transaction(data) {
+	return request({
+		url: '/api/edit_pas',
+		method: 'post',
+		data
+	});
 }

+ 9 - 0
api/user.js

@@ -117,4 +117,13 @@ export function transfer_accounts(data) {
 		method: 'post',
 		data
 	});
+}
+
+// 推广的人数
+export function getSpreadPeople(data){
+	return request({
+		url:'/api/spread/people',
+		method:'post',
+		data
+	})
 }

+ 3 - 3
manifest.json

@@ -2,8 +2,8 @@
     "name" : "随心购",
     "appid" : "__UNI__474F381",
     "description" : "",
-    "versionName" : "1.0.1",
-    "versionCode" : 101,
+    "versionName" : "1.1.1",
+    "versionCode" : 111,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */
@@ -131,7 +131,7 @@
         "devServer" : {
             "proxy" : {
                 "/api" : {
-                    "target" : "http://sxg.frp.liuniu946.com", //请求的目标域名
+                    "target" : "http://ledao.ink", //请求的目标域名
                     "changeOrigin" : true,
                     // "secure": false,
                     "pathRewrite" : {}

+ 28 - 1
pages.json

@@ -28,6 +28,15 @@
 				}
 			}
 		},
+		{
+			"path": "pages/product/showpro",
+			"style": {
+				"navigationBarTitleText": "商品详情"
+				// "app-plus": {
+				// 	"titleNView": false
+				// }
+			}
+		},
 		{
 			"path": "pages/index/sign",
 			"style": {
@@ -273,7 +282,8 @@
 			"style": {
 				"navigationBarTitleText": "修改资料"
 			}
-		}, {
+		},
+		{
 			"path": "pages/cart/cart",
 			"style": {
 				"navigationBarTitleText": "购物车"
@@ -298,6 +308,17 @@
 				}
 			}
 		},
+		{
+			"path": "pages/user/mytg",
+			"style": {
+				"navigationBarTitleText": "我的推广",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
 		{
 			"path": "pages/user/mythq",
 			"style": {
@@ -474,6 +495,12 @@
 				"navigationBarTitleText": "支付成功"
 			}
 		},
+		{
+			"path": "pages/money/moneyPwd",
+			"style": {
+				"navigationBarTitleText": "设置支付密码"
+			}
+		},
 		{
 			"path": "pages/money/wallet",
 			"style": {

+ 24 - 16
pages/index/index.vue

@@ -61,26 +61,34 @@
 							{{!item.djs.over ? '距离预约结束': (!item.jcdjs.over?'距离开始进场':(!item.jsdjs.over?'活动进行中': '活动已结束'))}}
 						</view>
 						<view class="item-djs">
-
+							<!-- 预约倒计时 -->
 							<uni-countdown v-if="!item.djs.over" color="#C6914E" background-color="#F6EFDF"
 								:show-day="false" :day="item.djs.day" :hour="item.djs.hours" :minute="item.djs.minutes"
 								:second="item.djs.seconds"></uni-countdown>
+							<!-- 进场倒计时 -->
 							<uni-countdown v-if="item.djs.over && !item.jcdjs.over" color="#C6914E" background-color="#F6EFDF"
 								:show-day="false" :day="item.jcdjs.day" :hour="item.jcdjs.hours" :minute="item.jcdjs.minutes"
 								:second="item.jcdjs.seconds"></uni-countdown>
+							<!-- 场次结束倒计时 -->
 							<uni-countdown v-if="item.jcdjs.over && !item.jsdjs.over" color="#C6914E" background-color="#F6EFDF"
 								:show-day="false" :day="item.jsdjs.day" :hour="item.jsdjs.hours" :minute="item.jsdjs.minutes"
 								:second="item.jsdjs.seconds"></uni-countdown>
-							<view class="" v-if="item.jsdjs.over" style="color: #dc262b;">
+							<!-- 第二天倒计时 -->
+							<uni-countdown v-if="item.jsdjs.over" color="#C6914E" background-color="#F6EFDF"
+								:show-day="false" :day="item.xcdjs.day" :hour="item.xcdjs.hours" :minute="item.xcdjs.minutes"
+								:second="item.xcdjs.seconds"></uni-countdown>
+<!-- 							<view class="" v-if="item.jsdjs.over" style="color: #dc262b;">
 								活动已结束
-							</view>
+							</view> -->
 						</view>
 						<view class="item-base">
 							开始时间 {{item.radd_time}} 结束时间 {{item.rend_time }}
 						</view>
 						<view class="item-btn" @click="yuyue(item)"
-							:class="{'yuyue': !item.djs.over && item.sta == 1,'jcf': item.sta == 2 && !item.jsdjs.over }">
-							{{item.sta == 2 ? '立即进场': (item.djs.over ? '已结束': '立即预约')}}
+							:class="{'yuyue': item.sta == 1,'jcf': item.sta == 2 && !item.jsdjs.over }">
+						<!-- 	{{item.sta == 2 ? '立即进场': (item.djs.over ? '已结束': '立即预约')}} -->
+							<!-- {{item.sta == 2 ? '立即进场' : '立即预约'}} -->
+							{{item.str}}
 						</view>
 					</view>
 
@@ -161,13 +169,6 @@
 				swiperLength: 0,
 				dataList: '',
 				carouselList: [], //轮播图列表
-				text: ['恭喜黑白灰用户拼团成功¥353元!', '恭喜黑白灰用户拼团成功¥353元!'],
-				stopTime: {
-					stopTimeH: 0,
-					stopTimeM: 24,
-					stopTimeS: 59
-				},
-				bzb: 30,
 				changCiList: [],
 				yuyueInfo: {},
 				loadingType: 'more'
@@ -178,8 +179,12 @@
 
 		},
 		onShow() {
+			this.changCiList = []
 			this.getChangCi()
 		},
+		onHide() {
+			this.changCiList = []
+		},
 		computed: {
 			...mapState('user', ['userInfo'])
 		},
@@ -245,9 +250,6 @@
 						})
 					})
 				} else {
-					if (item.djs.over) {
-						return
-					}
 					this.yuyueInfo = item
 					this.$refs.popupyy.open()
 				}
@@ -271,6 +273,7 @@
 					// yuyueInfo
 					let s = obj.changCiList.indexOf(obj.yuyueInfo);
 					obj.changCiList[s].sta = 2;
+					obj.changCiList[s].str = '进入'
 					obj.$refs.popupyy.close()
 					obj.$refs.popupyyok.open()
 				})
@@ -286,9 +289,14 @@
 					console.log(res, '获取场次信息')
 
 					let arr = res.data.map(e => {
+						// 预约倒计时
 						e.djs = timeComputed(e.time)
+						// 进场倒计时
 						e.jcdjs = timeComputed(e.time + 1800)
+						// 场次结束倒计时
 						e.jsdjs = timeComputed(e.e_time)
+						// 第二天预约倒计时
+						e.xcdjs = timeComputed(e.time + 86400)
 						return e
 					})
 					console.log(arr)
@@ -460,7 +468,7 @@
 				.item-img {
 					width: 134rpx;
 					height: 133rpx;
-					background-color: red;
+					background-color: #999;
 					flex-shrink: 0;
 
 					image {

+ 46 - 7
pages/index/yuyuechang.vue

@@ -31,7 +31,7 @@
 					<image src="../../static/icon/red-tit.png" mode=""></image>{{item.name}}
 				</view>
 				<view class="tit-right">
-					实付金额:{{item.low}} ~ {{ item.high }}
+					挂售金额:{{item.low}} ~ {{ item.high }}
 				</view>
 			</view>
 			<view class="good-list flex" @click="(status==2 ||status==0) ?goumai(item): opentc()">
@@ -40,14 +40,14 @@
 		</view>
 		<uni-popup ref="popupyyok" type="center">
 			<view class="popupyyok-wrap">
-				<image :src="good.image" mode=""></image>
+				<image :src="good.image" mode="" @click.stop="goDetail()"></image>
 				<view class="clamp2" style="padding: 20rpx 80rpx;color: #999999;font-size: 26rpx;">
 					{{good.name}}
 				</view>
 				<view class="" style="font-size: 35rpx;font-weight: bold;color: #333333;">
-					{{good.price}}
+					{{good.actual_price}}
 				</view>
-				<view class="btn" @click="good.status == 1 ?zhifu(): goDetail()">
+				<view class="btn" @click.stop="(good.status == 1 || good.status == 0) ?zhifu(): goDetail()">
 					{{(good.status == 1 ||good.status == 0) ? '立即支付':'查看详情'}}
 				</view>
 			</view>
@@ -55,6 +55,19 @@
 		<uni-popup ref="uppass" type="center">
 			<view class="psw-wrapper">
 				<view class="psw-title">请输入支付密码</view>
+				<view class="psw-content">购买需支付消费积分</view>
+				<view class="psw-price">
+					{{good.actual_price}}
+				</view>
+				<view class="psw-jg"></view>
+				<view class="psw-paytype flex">
+					<view class="">
+						支付方式
+					</view>
+					<view class="">
+						消费积分
+					</view>
+				</view>
 				<input type="password" v-model="password" class="psw-ipt"/>
 				<view class="psw-btn">
 					<text @click="cancel">取消</text>
@@ -108,6 +121,7 @@
 					obj.status = res.data.status
 					if (res.data.status == 1) {
 						obj.good = res.data.order
+						obj.$refs.popupyyok.open()
 					}
 				})
 			},
@@ -129,6 +143,7 @@
 					console.log(res)
 
 					obj.good = res.data
+					obj.good.status = 1
 					obj.$refs.popupyyok.open()
 				})
 			},
@@ -148,8 +163,9 @@
 				obj.$refs.popupyyok.open()
 			},
 			goDetail() {
+				console.log(this.good)
 				uni.navigateTo({
-					url: ''
+					url: '/pages/product/showpro?id=' + this.good.product_id
 				})
 			},
 			cancel() {
@@ -230,6 +246,7 @@
 		image {
 			width: 100%;
 			height: 429rpx;
+			border-radius: 20rpx 20rpx 0 0;
 		}
 
 		.btn {
@@ -281,16 +298,38 @@
 	}
 	.psw-wrapper {
 		width: 548rpx;
-		height: 344rpx;
+		height: 548rpx;
 		background-color: #FFFFFF;
 		border-radius: 15rpx 15rpx;
 		.psw-title {
 			width: 100%;
 			font-size: 35rpx;
-			padding: 43rpx 0 49rpx;
+			padding: 43rpx 0 40rpx;
 			text-align: center;
 			font-weight: 800;
 		}
+		.psw-content {
+			width: 100%;
+			font-size: 32rpx;
+			text-align: center;
+		}
+		.psw-price {
+			font-weight: bold;
+			font-size: 68rpx;
+			text-align: center;
+			padding-top: 10rpx;
+		}
+		.psw-jg {
+			height: 1px;
+			width: 500rpx;
+			background-color: #eee;
+			margin: auto;
+		}
+		.psw-paytype {
+			justify-content: space-between;
+			padding: 10rpx 25rpx 30rpx;
+			font-size: 26rpx;
+		}
 		.psw-ipt {
 			display: block;
 			background-color: #dce3ed;

+ 160 - 0
pages/money/moneyPwd.vue

@@ -0,0 +1,160 @@
+<template>
+	<view class="container">
+		<view class="row b-b">
+			<text class="tit">原密码</text>
+			<input class="input" v-model="oldPassword" type="text" placeholder="请填写原密码" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b">
+			<text class="tit">新密码</text>
+			<input class="input" v-model="password" type="password" placeholder="请填写6位新密码" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b">
+			<text class="tit">再次输入</text>
+			<input class="input" v-model="yzpassword" type="password" placeholder="请重新填写6位新密码" placeholder-class="placeholder" />
+		</view>
+		<button class="add-btn" :class="{'bg-gray':loding}" @click="loding?'':confirm()">提交</button>
+	</view>
+</template>
+
+<script>
+import { verify } from '@/api/login.js';
+import { mapState } from 'vuex';
+import { transaction } from '@/api/index.js';
+export default {
+	data() {
+		return {
+			time: '', //保存倒计时对象
+			countDown: 0, //倒计时
+			// account: '', //手机号
+			// captcha: '', //验证码
+			oldPassword:'',//老密码
+			password: '' ,//新密码
+			yzpassword:'',//重复输入
+			loding:false,//是否载入中
+		};
+	},
+	computed: {
+		...mapState('user',['userInfo'])
+	},
+	onLoad() {
+		if(this.userInfo.phone == null){
+			this.account = '';
+		}else{
+			this.account = this.userInfo.phone;
+			this.show = false;
+		}
+	},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
+			}
+		}
+	},
+	methods: {
+		confirm(e) {
+			const reg = /^[0-9]{6}$/;
+			console.log(this.yzpassword)
+			if(!reg.test(this.yzpassword)){
+				uni.showModal({
+					title: '错误',
+					content: '请输入6位数字支付密码',
+					showCancel: false,
+				});
+				return false
+			}
+			if(this.yzpassword!=this.password){
+				uni.showModal({
+					title: '错误',
+					content: '密码不一致请重新输入',
+					showCancel: false,
+				});
+				return  false
+			}
+			this.loding = true;
+			transaction({
+				pas: this.password,
+				old_pas: this.oldPassword,
+			})
+				.then(({ data }) => {
+					this.loding = false;
+					uni.showModal({
+						title: '提示',
+						content: '修改成功',
+						showCancel: false,
+						confirmText: '返回个人中心',
+						success: res => {
+							uni.switchTab({
+								url:'/pages/user/user'
+							})
+						}
+					});
+					
+				})
+				.catch(err => {
+					this.loding = false;
+					console.log(err);
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: $page-color-base;
+}
+.container {
+	padding-top: 30rpx;
+}
+.row {
+	display: flex;
+	align-items: center;
+	position: relative;
+	padding: 0 30rpx;
+	height: 110rpx;
+	background: #fff;
+
+	.tit {
+		flex-shrink: 0;
+		width: 120rpx;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.input {
+		flex: 1;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.iconlocation {
+		font-size: 36rpx;
+		color: $font-color-light;
+	}
+}
+.add-btn {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 60rpx auto;
+	font-size: $font-lg;
+	color: #fff;
+	background: #ff4c4c;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.bg-gray{
+	background-color: $color-gray;
+}
+.code {
+	color: #5dbc7c;
+	font-size: 23rpx;
+	border-left: 1px solid #eeeeee;
+	width: 150rpx;
+	flex-shrink: 0;
+	text-align: center;
+}
+</style>

文件差异内容过多而无法显示
+ 1340 - 1183
pages/order/order.vue


+ 867 - 0
pages/product/showpro.vue

@@ -0,0 +1,867 @@
+<template>
+	<view class="container">
+		<view class="carousel">
+			<swiper indicator-dots :circular="true" duration="400">
+				<swiper-item class="swiper-item" v-for="(item, index) in good.slider_image" :key="index">
+					<view class="image-wrapper">
+						<image :src="item" class="loaded" mode="scaleToFill"></image>
+					</view>
+				</swiper-item>
+			</swiper>
+		</view>
+		<view class="introduce-section">
+			<view class="price-box">
+				<text class="price-tip">¥</text>
+				<text class="price">{{ good.hanging_price }}</text>
+			</view>
+			<text class="title">{{ good.name }}</text>
+		</view>
+		<view class="detail-desc">
+			<view class="d-header"><text>商品详情</text></view>
+			<rich-text class="detail-centent" :nodes="good.description"></rich-text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// import share from '@/components/share';
+	import uniNumberBox from '@/components/uni-number-box.vue';
+	import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
+	import { product } from '@/api/index.js'
+	import {
+		goodsDetail,
+		cartAdd,
+		collectAdd,
+		collectDel,
+		seckillGoods,
+		groupGoods
+	} from '@/api/product.js';
+	// #ifdef H5
+	import {
+		weixindata,
+		shareLoad
+	} from '@/utils/wxAuthorized';
+	import {
+		mapState
+	} from 'vuex';
+	import weixinObj from "@/plugin/jweixin-module/index.js";
+	// #endif
+	export default {
+		components: {
+			uniNumberBox,
+			uniCountdown
+		},
+		filters: {
+			address(val) {
+				let str = '';
+				if (val) {
+					str = val[0] + ' ' + val[1];
+				}
+				return str;
+			}
+		},
+		data() {
+			return {
+				goodId: '',
+				good: {}
+			};
+		},
+		async onLoad(opt) {
+			let obj = this;
+			obj.goodId = opt.id
+			this.getproduct()
+			
+		},
+		computed: {
+			// #ifdef H5
+			...mapState(['weichatObj', 'baseURL', 'urlFile']),
+			...mapState('user', ['userInfo'])
+			// #endif
+		},
+		methods: {
+			getproduct() {
+				let obj =this
+				product({
+					id: obj.goodId
+				}).then(res => {
+					console.log(res)
+					obj.good = res.data
+				})
+			},
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background: $page-color-base;
+	}
+
+	//秒杀底部高度
+	.seckillBottom {
+		height: 110rpx;
+	}
+
+	// 文章页底部高度撑开
+	.contentBottomHeight {
+		height: 110rpx;
+	}
+
+	//默认商品底部高度
+	.goodsBottom {
+		height: 160rpx;
+	}
+
+	.iconenter {
+		font-size: $font-base + 2rpx;
+		color: #888;
+	}
+
+	.carousel {
+		/* #ifdef APP-PLUS */
+		// padding-top: var(--status-bar-height);
+		/* #endif */
+		height: 722rpx;
+		position: relative;
+
+		swiper {
+			height: 100%;
+		}
+
+		.image-wrapper {
+			width: 100%;
+			height: 100%;
+		}
+
+		.swiper-item {
+			display: flex;
+			justify-content: center;
+			align-content: center;
+			// height: 750rpx;
+			height: 710rpx;
+			overflow: hidden;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+
+	// 秒杀
+	.seckill-box-title {
+		background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%) !important;
+
+		.price,
+		.price-tip,
+		.timeStop,
+		.m-price {
+			color: #ffffff !important;
+		}
+
+		.price-tip {
+			font-size: $font-base;
+		}
+
+		.price {
+			font-size: 45rpx !important;
+			font-weight: bold;
+		}
+
+		.timeStop {}
+	}
+
+	// 底部拼团、秒杀支付按钮
+	.goods-pay-box {
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		z-index: 95;
+		width: 750rpx;
+		height: 100rpx;
+		line-height: 1;
+		color: #ffffff;
+		text-align: center;
+		font-size: $font-lg;
+
+		.bgLine {
+			background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%);
+		}
+
+		// 拼团支付按钮
+		.goods-pay {
+			display: flex;
+			align-content: center;
+			flex-wrap: wrap;
+			justify-content: center;
+
+			.goods-buttom,
+			.goods-buttom-money {
+				width: 100%;
+			}
+
+			.goods-buttom-money {
+				font-size: $font-base;
+			}
+		}
+
+		.goods-pay-stop,
+		.goods-pay {
+			padding: 15rpx 0;
+			height: 100%;
+			width: 100%;
+		}
+
+		.goods-pay-stop {
+			background: $color-gray;
+			line-height: 70rpx;
+		}
+	}
+
+	/* 标题简介 */
+	.introduce-section {
+		background: #fff;
+		padding: 20rpx 30rpx;
+
+		.title {
+			font-size: 32rpx;
+			color: $font-color-dark;
+			height: 50rpx;
+			line-height: 50rpx;
+		}
+
+		.price-box {
+			display: flex;
+			align-items: baseline;
+			height: 64rpx;
+			padding: 10rpx 0;
+			font-size: 26rpx;
+			color: #FD3B39;
+		}
+
+		.price {
+			font-size: $font-lg + 2rpx;
+		}
+
+		.m-price {
+			margin: 0 12rpx;
+			color: $font-color-light;
+			text-decoration: line-through;
+		}
+
+		.coupon-tip {
+			align-items: center;
+			padding: 4rpx 10rpx;
+			background: $uni-color-primary;
+			font-size: $font-sm;
+			color: #fff;
+			border-radius: 6rpx;
+			line-height: 1;
+			transform: translateY(-4rpx);
+		}
+
+		.bot-row {
+			display: flex;
+			align-items: center;
+			height: 50rpx;
+			font-size: $font-sm;
+			color: $font-color-light;
+
+			text {
+				flex: 1;
+			}
+		}
+	}
+
+	/* 分享 */
+	.share-section {
+		display: flex;
+		align-items: center;
+		color: $font-color-base;
+		background: linear-gradient(left, #fdf5f6, #fbebf6);
+		padding: 12rpx 30rpx;
+
+		.share-icon {
+			display: flex;
+			align-items: center;
+			width: 70rpx;
+			height: 30rpx;
+			line-height: 1;
+			border: 1px solid $uni-color-primary;
+			border-radius: 4rpx;
+			position: relative;
+			overflow: hidden;
+			font-size: 22rpx;
+			color: $uni-color-primary;
+
+			&:after {
+				content: '';
+				width: 50rpx;
+				height: 50rpx;
+				border-radius: 50%;
+				left: -20rpx;
+				top: -12rpx;
+				position: absolute;
+				background: $uni-color-primary;
+			}
+		}
+
+		.iconfavorfill {
+			position: relative;
+			z-index: 1;
+			font-size: 24rpx;
+			margin-left: 2rpx;
+			margin-right: 10rpx;
+			color: #fff;
+			line-height: 1;
+		}
+
+		.tit {
+			font-size: $font-base;
+			margin-left: 10rpx;
+		}
+
+		.iconprompt {
+			padding: 10rpx;
+			font-size: 30rpx;
+			line-height: 1;
+		}
+
+		.share-btn {
+			flex: 1;
+			text-align: right;
+			font-size: $font-sm;
+			color: $uni-color-primary;
+		}
+
+		.iconenter {
+			font-size: $font-sm;
+			margin-left: 4rpx;
+			color: $uni-color-primary;
+		}
+	}
+
+	.c-list {
+		margin-top: 20rpx;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-base;
+		background: #fff;
+
+		.c-row {
+			display: flex;
+			align-items: center;
+			padding: 20rpx 30rpx;
+			position: relative;
+		}
+
+		.tit {
+			width: 140rpx;
+		}
+
+		.con {
+			flex: 1;
+			color: $font-color-dark;
+
+			.selected-text {
+				margin-right: 10rpx;
+
+				.num {
+					color: #FD3B39;
+				}
+			}
+		}
+
+		.bz-list {
+			height: 40rpx;
+			font-size: $font-sm + 2rpx;
+			color: $font-color-dark;
+
+			text {
+				display: inline-block;
+				margin-right: 30rpx;
+			}
+		}
+
+		.con-list {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			color: $font-color-dark;
+			line-height: 40rpx;
+		}
+
+		.red {
+			color: $uni-color-primary;
+		}
+	}
+
+	/* 评价 */
+	.eva-section {
+		display: flex;
+		flex-direction: column;
+		padding: 20rpx 30rpx;
+		background: #fff;
+		margin-top: 16rpx;
+
+		.e-header {
+			display: flex;
+			align-items: center;
+			height: 70rpx;
+			font-size: $font-sm + 2rpx;
+			color: $font-color-light;
+
+			.tit {
+				font-size: $font-base + 2rpx;
+				color: $font-color-dark;
+				margin-right: 4rpx;
+			}
+
+			.tip {
+				flex: 1;
+				text-align: right;
+			}
+
+			.iconenter {
+				margin-left: 10rpx;
+			}
+		}
+	}
+
+	.eva-box {
+		display: flex;
+		padding: 20rpx 0;
+
+		.portrait {
+			flex-shrink: 0;
+			width: 80rpx;
+			height: 80rpx;
+			border-radius: 100px;
+		}
+
+		.right {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			font-size: $font-base;
+			color: $font-color-base;
+			padding-left: 26rpx;
+
+			.con {
+				font-size: $font-base;
+				color: $font-color-dark;
+				padding: 20rpx 0;
+			}
+
+			.bot {
+				display: flex;
+				justify-content: space-between;
+				font-size: $font-sm;
+				color: $font-color-light;
+			}
+		}
+	}
+
+	.eva-boxs {
+		width: 100%;
+		overflow: hidden;
+		padding: 10px 28rpx;
+		background: #f4f4f4;
+		border-radius: 12rpx;
+		font-size: $font-sm + 2rpx;
+		color: #333;
+
+		.portrait {
+			flex-shrink: 0;
+			width: 80rpx;
+			height: 80rpx;
+			border-radius: 100px;
+		}
+
+		.right {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			font-size: $font-base;
+			color: $font-color-base;
+
+			.con {
+				font-size: $font-base;
+				color: $font-color-dark;
+			}
+
+			.bot {
+				display: flex;
+				justify-content: space-between;
+				font-size: $font-sm;
+				color: $font-color-light;
+			}
+		}
+	}
+
+	/*  详情 */
+	.detail-desc {
+		background: #fff;
+		margin-top: 16rpx;
+
+		/deep/ img {
+			max-width: 100% !important;
+			display: inline !important;
+		}
+
+		/deep/ div {
+			max-width: 100% !important;
+		}
+
+		.d-header {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 80rpx;
+			font-size: $font-base + 2rpx;
+			color: $font-color-dark;
+			position: relative;
+
+			text {
+				padding: 0 20rpx;
+				background: #fff;
+				position: relative;
+				z-index: 1;
+			}
+
+			&:after {
+				position: absolute;
+				left: 50%;
+				top: 50%;
+				transform: translateX(-50%);
+				width: 300rpx;
+				height: 0;
+				content: '';
+				border-bottom: 1px solid #ccc;
+			}
+		}
+	}
+
+	/* 规格选择弹窗 */
+	.attr-content {
+		padding: 10rpx 0 0;
+
+		.a-t {
+			padding: 0 30rpx;
+			display: flex;
+
+			image {
+				width: 170rpx;
+				height: 170rpx;
+				flex-shrink: 0;
+				border-radius: 8rpx;
+			}
+
+			.right {
+				display: flex;
+				flex-direction: column;
+				padding-left: 24rpx;
+				font-size: $font-sm + 2rpx;
+				color: $font-color-base;
+				line-height: 42rpx;
+
+				.good-name {
+					padding-top: 20rpx;
+					max-width: 320rpx;
+					font-size: 30rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #1d2023;
+					line-height: 42rpx;
+					margin-bottom: 15rpx;
+				}
+
+				.price {
+					font-size: 60rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #ff6f0f;
+					// font-size: $font-lg;
+					// color: $uni-color-primary;
+					// margin-bottom: 10rpx;
+				}
+
+				.selected-text {
+					margin-right: 10rpx;
+				}
+			}
+		}
+
+		.attr-list {
+			display: flex;
+			flex-direction: column;
+			font-size: $font-base + 2rpx;
+			color: $font-color-base;
+			padding-top: 30rpx;
+			padding-left: 40rpx;
+			padding-right: 30rpx;
+		}
+
+		.item-list {
+			padding: 20rpx 0 0;
+			display: flex;
+			flex-wrap: wrap;
+
+			.tit {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background: #eee;
+				// margin-left: 10rpx;
+				margin-right: 20rpx;
+				margin-bottom: 20rpx;
+				border-radius: 100rpx;
+				min-width: 60rpx;
+				height: 60rpx;
+				padding: 0 20rpx;
+				font-size: $font-base;
+				color: $font-color-dark;
+			}
+
+			.selected {
+				background: #fbebee;
+				color: $uni-color-primary;
+			}
+		}
+	}
+
+	/*  弹出层 */
+	.popup {
+		position: fixed;
+		left: 0;
+		top: 0;
+		right: 0;
+		bottom: 0;
+		z-index: 99;
+
+		&.show {
+			display: block;
+
+			.mask {
+				animation: showPopup 0.2s linear both;
+			}
+
+			.layer {
+				animation: showLayer 0.2s linear both;
+			}
+		}
+
+		&.hide {
+			.mask {
+				animation: hidePopup 0.2s linear both;
+			}
+
+			.layer {
+				animation: hideLayer 0.2s linear both;
+			}
+		}
+
+		&.none {
+			display: none;
+		}
+
+		.mask {
+			position: fixed;
+			top: 0;
+			width: 100%;
+			height: 100%;
+			z-index: 1;
+			background-color: rgba(0, 0, 0, 0.4);
+		}
+
+		.layer {
+			position: fixed;
+			z-index: 99;
+			bottom: 0;
+			width: 100%;
+			min-height: 30vh;
+			border-radius: 10rpx 10rpx 0 0;
+			background-color: #fff;
+
+			.btn {
+				position: absolute;
+				bottom: 0;
+				width: 750rpx;
+				height: 98rpx;
+				background: #FE5B38;
+				line-height: 98rpx;
+				// background: $uni-color-primary;
+				font-size: $font-base + 2rpx;
+				color: #fff;
+			}
+		}
+
+		@keyframes showPopup {
+			0% {
+				opacity: 0;
+			}
+
+			100% {
+				opacity: 1;
+			}
+		}
+
+		@keyframes hidePopup {
+			0% {
+				opacity: 1;
+			}
+
+			100% {
+				opacity: 0;
+			}
+		}
+
+		@keyframes showLayer {
+			0% {
+				transform: translateY(120%);
+			}
+
+			100% {
+				transform: translateY(0%);
+			}
+		}
+
+		@keyframes hideLayer {
+			0% {
+				transform: translateY(0);
+			}
+
+			100% {
+				transform: translateY(120%);
+			}
+		}
+	}
+
+	/* 底部操作菜单 */
+	.page-bottom {
+		position: fixed;
+		left: 0rpx;
+		bottom: 0rpx;
+		z-index: 95;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		width: 750rpx;
+		height: 98rpx;
+		background: rgba(255, 255, 255, 0.9);
+		box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
+
+		// border-radius: 16rpx;
+		.p-b-btn {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			font-size: $font-sm;
+			color: $font-color-base;
+			width: 100rpx;
+			height: 98rpx;
+
+			.iconfont {
+				font-size: 40rpx;
+				line-height: 48rpx;
+				color: $font-color-light;
+			}
+
+			&.active,
+			&.active .iconfont {
+				color: $uni-color-primary;
+			}
+
+			.icon-fenxiang2 {
+				font-size: 42rpx;
+				transform: translateY(-2rpx);
+			}
+
+			.iconlikefill {
+				font-size: 46rpx;
+			}
+		}
+
+		.action-btn-group {
+			display: flex;
+			height: 98rpx;
+			// border-radius: 100px;
+			overflow: hidden;
+			// margin-left: 20rpx;
+			position: relative;
+
+			// &:after {
+			// 	content: '';
+			// 	position: absolute;
+			// 	top: 50%;
+			// 	right: 50%;
+			// 	transform: translateY(-50%);
+			// 	height: 28rpx;
+			// 	width: 0;
+			// 	border-right: 1px solid rgba(255, 255, 255, 0.5);
+			// }
+			.shoucang {
+				width: 170rpx;
+				height: 100rpx;
+				background: #FFFFFF;
+				flex-direction: column;
+				justify-content: center;
+
+				image {
+					width: 36rpx;
+					height: 35rpx;
+				}
+
+				// box-shadow: 0px 0px 40px 0px rgba(50, 50, 52, 0.06);
+			}
+
+			.action-btn {
+				flex-shrink: 0;
+				flex-grow: 1;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 580rpx;
+				height: 100%;
+				font-size: 34rpx;
+				padding: 0;
+				border-radius: 0;
+				// background: transparent;
+				background: #ffb238;
+
+				&.buy-now-btn {
+					background-color: #ffb238;
+				}
+
+				&.add-cart-btn {
+					background: #FD3B39;
+				}
+			}
+		}
+	}
+
+	// 商店头
+	.shop-box {
+		background-color: #ffffff;
+		margin-top: 20rpx;
+		margin-bottom: 10rpx;
+		padding: 20rpx;
+
+		.shop-img {
+			border-radius: 300rpx;
+			height: 80rpx;
+			width: 80rpx;
+			margin-right: 20rpx;
+		}
+
+		.shop-button {
+			border-radius: 100rpx;
+			padding: 10rpx 20rpx;
+			color: $color-red;
+			border: 1px solid $color-red;
+			font-size: $font-lg;
+			line-height: 1;
+		}
+	}
+</style>

+ 7 - 7
pages/public/register.vue

@@ -19,9 +19,9 @@
 			</view>
 			<view class="login_input flex">
 				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="password" v-model="payment_pas" focus placeholder="请输入交易密码" /></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="payment_pas" focus placeholder="请输入支付密码" /></view>
 			</view>
-			<view class="login_input flex" style="display: none;">
+			<view class="login_input flex">
 				<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>
@@ -89,13 +89,13 @@ export default {
 				return;
 			}
 			if( obj.payment_pas == '') {
-				obj.$api.msg('请输入交易密码');
+				obj.$api.msg('请输入支付密码');
 				return;
 			}
-			// if ((obj.invitation = '')) {
-			// 	obj.$api.msg('请输入邀请码');
-			// 	return;
-			// }
+			if (obj.invitation == '') {
+				obj.$api.msg('请输入邀请码');
+				return;
+			}
 			// if (obj.code == '') {
 			// 	obj.$api.msg('请输入验证码');
 			// 	return;

+ 3 - 3
pages/user/myggz.vue

@@ -147,9 +147,9 @@ export default {
 				//tab切换只有第一次需要加载数据
 				return;
 			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
+			if (navItem.loadingType == 'loading' || navItem.loadingType == 'noMore') {
+				//防止重复加载
+				return;
 			}
 			// 修改当前对象状态为加载中
 			navItem.loadingType = 'loading';

+ 450 - 403
pages/user/mygwjf.vue

@@ -1,404 +1,451 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="status_bar"><!-- 这里是状态栏 --></view>
-			<view class="body-title">
-				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">购物积分</view>
-			</view>
-			<view class="content-bg"><image src="../../static/img/yongjin-bg.png" mode=""></image></view>
-			<view class="money-box">
-				<view class="money">{{ userInfo.sp_final || '0' }}</view>
-				<view>购物积分</view>
-			</view>
-			<view class="money-btn" @click="navto('/pages/money/withdmoenys?type=shop')">
-				兑换提货券
-				<text>></text>
-			</view>
-		</view>
-		<view class="info-box flex">
-			<view class="info-item">
-				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge}}</view>
-			</view>
-			<view class="shu"></view>
-			<view class="info-item">
-				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum}}</view>
-			</view>
-		</view>
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
-					<!-- 空白页 -->
-					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-
-					<!-- 订单列表 -->
-					<view>
-						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
-							<view class="title-box">
-								<view class="title">
-									<text>{{ item.mark }}</text>
-								</view>
-								<view class="time">
-									<text>{{ item.add_time }}</text>
-								</view>
-							</view>
-							<view class="money">
-								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
-								<view v-if="item.status == 0" class="status">待发放</view>
-							</view>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { sp_final_list, userBalance } from '@/api/wallet.js';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { mapState, mapMutations } from 'vuex';
-import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
-import empty from '@/uview-ui/components/u-empty/u-empty.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady(res) {
-		var _this = this;
-		uni.getSystemInfo({
-			success: resu => {
-				const query = uni.createSelectorQuery();
-				query.select('.swiper-box').boundingClientRect();
-				query.exec(function(res) {
-					_this.maxheight = resu.windowHeight - res[0].top + 'px';
-					console.log('打印页面的剩余高度', _this.height);
-				});
-			},
-			fail: res => {}
-		});
-	},
-	data() {
-		return {
-			// 头部图高度
-			maxheight: '',
-			tabCurrentIndex: 0,
-			orderStatusSum: 0,
-			recharge: 0,
-			navList: [
-				{
-					state: 2,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
-					loaded: false
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
-					loaded: false
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-	},
-	methods: {
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		// 点击返回 我的页面
-		toBack() {
-			uni.navigateBack({});
-		},
-		//获取收入支出信息
-		async loadData(source) {
-			let obj = this;
-			//这里是将订单挂载到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';
-
-			sp_final_list()
-				.then(({ data }) => {
-					console.log(data);
-					obj.recharge = data.sr;
-					obj.orderStatusSum = data.zc;
-					obj.navList[0].orderList = data.zj
-					obj.navList[1].orderList = data.kc
-					navItem.loadingType = 'nomore';
-					navItem.loaded = true
-					uni.hideLoading();
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #f1f1f1;
-	height: 100%;
-}
-.status_bar {
-	height: var(--status-bar-height);
-	width: 100%;
-}
-.content-money {
-	position: relative;
-	height: 480rpx;
-	.content-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 750rpx;
-		height: 480rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-	.body-title {
-		height: 80rpx;
-		text-align: center;
-		font-size: 35rpx;
-		position: relative;
-		.header {
-			position: absolute;
-			left: 0;
-			top: 0;
-			width: 100%;
-			font-size: 36rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #fffeff;
-			height: 80rpx;
-			font-size: 36rpx;
-			font-weight: 700;
-			z-index: 9;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-		}
-		.goback-box {
-			position: absolute;
-			left: 18rpx;
-			top: 0;
-			height: 80rpx;
-			display: flex;
-			align-items: center;
-		}
-
-		.goback {
-			z-index: 100;
-			width: 34rpx;
-			height: 34rpx;
-		}
-	}
-}
-.info-box {
-	width: 670rpx;
-	height: 186rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: -100rpx auto 0;
-	position: relative;
-	z-index: 2;
-	.info-item {
-		width: 50%;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		line-height: 1;
-		.info-font {
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #999999;
-		}
-		.info-num {
-			margin-top: 30rpx;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #181818;
-		}
-	}
-	.shu {
-		width: 2rpx;
-		height: 74rpx;
-		background: #dcdfe6;
-	}
-}
-.money-box {
-	position: relative;
-	z-index: 2;
-	padding-top: 20rpx;
-	color: #ffffff;
-	text-align: center;
-	.money {
-		font-size: 72rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-	.text {
-		font-size: 30rpx;
-	}
-}
-.money-btn {
-	position: relative;
-	z-index: 2;
-	color: #ffffff;
-	padding-right: 50rpx;
-	text-align: right;
-	font-size: 30rpx;
-	font-family: PingFang SC;
-	font-weight: bold;
-	color: #FFFFFF;
-	text {
-		display: inline-block;
-		padding-left: 10rpx;
-	}
-}
-
-.navbar {
-	margin-top: 20rpx;
-	display: flex;
-	height: 88rpx;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: #999999;
-		position: relative;
-		&.current {
-			color: #000;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid #fe5b38;
-			}
-		}
-	}
-}
-//列表
-.swiper-box {
-	.order-item:last-child {
-		margin-bottom: 60rpx;
-	}
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-			text-align: right;
-			.status {
-				color: $font-color-light;
-			}
-		}
-	}
-}
-.list-scroll-content {
-	background: #ffffff;
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
-.btn-box {
-	width: 674rpx;
-	height: 88rpx;
-	background: linear-gradient(0deg, #2e58ff, #32c6ff);
-	border-radius: 44rpx;
-	font-size: 36rpx;
-	font-family: PingFang SC;
-	font-weight: 500;
-	color: #ffffff;
-	text-align: center;
-	line-height: 88rpx;
-	position: fixed;
-	bottom: 48rpx;
-	left: 0;
-	right: 0;
-	margin: 0 auto;
-}
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar">
+				<!-- 这里是状态栏 -->
+			</view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
+				<view class="header">购物积分</view>
+			</view>
+			<view class="content-bg">
+				<image src="../../static/img/yongjin-bg.png" mode=""></image>
+			</view>
+			<view class="money-box">
+				<view class="money">{{ userInfo.sp_final || '0' }}</view>
+				<view>购物积分</view>
+			</view>
+			<view class="money-btn" @click="navto('/pages/money/withdmoenys?type=shop')">
+				兑换提货券
+				<text>></text>
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">{{recharge}}</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">累计支出</view>
+				<view class="info-num">{{orderStatusSum}}</view>
+			</view>
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item"
+				:class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300"
+			@change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view>
+						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+							<view class="title-box">
+								<view class="title">
+									<text>{{ item.mark }}</text>
+								</view>
+								<view class="time">
+									<text>{{ item.add_time }}</text>
+								</view>
+							</view>
+							<view class="money">
+								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
+								<view v-if="item.status == 0" class="status">待发放</view>
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"
+						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	import {
+		sp_final_list,
+		userBalance
+	} from '@/api/wallet.js';
+	import {
+		getMoneyStyle
+	} from '@/utils/rocessor.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+	import empty from '@/uview-ui/components/u-empty/u-empty.vue';
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		computed: {
+			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		},
+		components: {
+			empty,
+			uniLoadMore
+		},
+		onReady(res) {
+			var _this = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box').boundingClientRect();
+					query.exec(function(res) {
+						_this.maxheight = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		data() {
+			return {
+				// 头部图高度
+				maxheight: '',
+				tabCurrentIndex: 0,
+				orderStatusSum: 0,
+				recharge: 0,
+				navList: [{
+						state: 2,
+						text: '收入',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10, //每次信息条数
+						loaded: false
+					},
+					{
+						state: 1,
+						text: '支出',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10, //每次信息条数
+						loaded: false
+					}
+				],
+				money: ''
+			};
+		},
+		onLoad(options) {},
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			// 页面跳转
+			navto(e) {
+				uni.navigateTo({
+					url: e
+				});
+			},
+			// 点击返回 我的页面
+			toBack() {
+				uni.navigateBack({});
+			},
+			//获取收入支出信息
+			async loadData(source) {
+				let obj = this;
+				//这里是将订单挂载到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' || navItem.loadingType == 'nomore') {
+					//防止重复加载
+					return;
+				}
+				// 修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
+
+				sp_final_list()
+					.then(({
+						data
+					}) => {
+						console.log(data);
+						obj.recharge = data.sr;
+						obj.orderStatusSum = data.zc;
+						obj.navList[0].orderList = data.zj
+						obj.navList[1].orderList = data.kc
+						navItem.loadingType = 'nomore';
+						navItem.loaded = true
+						uni.hideLoading();
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+
+			//swiper 切换
+			changeTab(e) {
+				this.tabCurrentIndex = e.target.current;
+				this.loadData('tabChange');
+			},
+			//顶部tab点击
+			tabClick(index) {
+				this.tabCurrentIndex = index;
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background: #f1f1f1;
+		height: 100%;
+	}
+
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+
+	.content-money {
+		position: relative;
+		height: 480rpx;
+
+		.content-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 750rpx;
+			height: 480rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.body-title {
+			height: 80rpx;
+			text-align: center;
+			font-size: 35rpx;
+			position: relative;
+
+			.header {
+				position: absolute;
+				left: 0;
+				top: 0;
+				width: 100%;
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #fffeff;
+				height: 80rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+				z-index: 9;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.goback-box {
+				position: absolute;
+				left: 18rpx;
+				top: 0;
+				height: 80rpx;
+				display: flex;
+				align-items: center;
+			}
+
+			.goback {
+				z-index: 100;
+				width: 34rpx;
+				height: 34rpx;
+			}
+		}
+	}
+
+	.info-box {
+		width: 670rpx;
+		height: 186rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin: -100rpx auto 0;
+		position: relative;
+		z-index: 2;
+
+		.info-item {
+			width: 50%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			line-height: 1;
+
+			.info-font {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #999999;
+			}
+
+			.info-num {
+				margin-top: 30rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #181818;
+			}
+		}
+
+		.shu {
+			width: 2rpx;
+			height: 74rpx;
+			background: #dcdfe6;
+		}
+	}
+
+	.money-box {
+		position: relative;
+		z-index: 2;
+		padding-top: 20rpx;
+		color: #ffffff;
+		text-align: center;
+
+		.money {
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+		}
+
+		.text {
+			font-size: 30rpx;
+		}
+	}
+
+	.money-btn {
+		position: relative;
+		z-index: 2;
+		color: #ffffff;
+		padding-right: 50rpx;
+		text-align: right;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #FFFFFF;
+
+		text {
+			display: inline-block;
+			padding-left: 10rpx;
+		}
+	}
+
+	.navbar {
+		margin-top: 20rpx;
+		display: flex;
+		height: 88rpx;
+		padding: 0 5px;
+		background: #fff;
+		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		position: relative;
+		z-index: 10;
+
+		.nav-item {
+			flex: 1;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+			font-size: 15px;
+			color: #999999;
+			position: relative;
+
+			&.current {
+				color: #000;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 44px;
+					height: 0;
+					border-bottom: 2px solid #fe5b38;
+				}
+			}
+		}
+	}
+
+	//列表
+	.swiper-box {
+		.order-item:last-child {
+			margin-bottom: 60rpx;
+		}
+
+		.order-item {
+			padding: 20rpx 30rpx;
+			line-height: 1.5;
+
+			.title-box {
+				.title {
+					font-size: $font-lg;
+					color: $font-color-base;
+				}
+
+				.time {
+					font-size: $font-base;
+					color: $font-color-light;
+				}
+			}
+
+			.money {
+				color: #fd5b23;
+				font-size: $font-lg;
+				text-align: right;
+
+				.status {
+					color: $font-color-light;
+				}
+			}
+		}
+	}
+
+	.list-scroll-content {
+		background: #ffffff;
+		height: 100%;
+	}
+
+	.content {
+		height: 100%;
+
+		.empty-content {
+			background-color: #ffffff;
+		}
+	}
+
+	.btn-box {
+		width: 674rpx;
+		height: 88rpx;
+		background: linear-gradient(0deg, #2e58ff, #32c6ff);
+		border-radius: 44rpx;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+		line-height: 88rpx;
+		position: fixed;
+		bottom: 48rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
 </style>
-

+ 459 - 0
pages/user/mytg.vue

@@ -0,0 +1,459 @@
+<template>
+ 	<view class="content">
+ 		<view class="content-money">
+ 			<view class="money-box">
+ 				<image class="tuiguang_bg" src="../../static/img/hinfo-bg.png"></image>
+ 				<view class="money-frame">
+ 					<view class="money_num">
+ 						{{userInfo.spread_count || '0'}}
+ 						<text class="money_ren">人</text>
+ 					</view>
+ 				</view>
+ 			</view>
+ 			<view class="flex buttom-box">
+ 				<view class="buttom">
+ 					<view class="money">{{userInfo.team || 0}}</view>
+ 					<text class="text">团队人数</text>
+ 				</view>
+ 				<view class="buttom">
+ 					<view class="money">{{userInfo.user_dow || 0}}</view>
+ 					<text class="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 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.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;
+ 			margin: 0 30rpx;
+ 			padding: 30rpx 0;
+ 			box-shadow: 0px 0px 20px 0px rgba(50, 50, 52, 0.06);
+ 			border-radius: $border-radius-sm;
+ 			margin-top: -60rpx;
+
+ 			.buttom {
+ 				flex-grow: 1;
+ 			}
+
+ 			.money {
+
+ 				font-size: 32rpx;
+ 				font-weight: bold;
+ 				color: #f42b4e;
+ 			}
+
+ 			.text {
+ 				padding-bottom: 26rpx;
+ 				font-size: 28rpx;
+ 				font-weight: 500;
+ 				color: #666666;
+
+ 				&.current {
+ 					border-bottom: 2px solid #f42b4e;
+ 				}
+ 			}
+
+ 			.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;
+ 		}
+ 	}
+	.navbar {
+		margin-top: 20rpx;
+		display: flex;
+		height: 88rpx;
+		padding: 0 5px;
+		background: #fff;
+		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		position: relative;
+		z-index: 10;
+		.nav-item {
+			flex: 1;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+			font-size: 15px;
+			color: #999999;
+			position: relative;
+			&.current {
+				color: #000;
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 44px;
+					height: 0;
+					border-bottom: 2px solid #fe5b38;
+				}
+			}
+		}
+	}
+ </style>

+ 3 - 3
pages/user/mythq.vue

@@ -147,9 +147,9 @@ export default {
 				//tab切换只有第一次需要加载数据
 				return;
 			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
+			if (navItem.loadingType == 'loading' || navItem.loadingType == 'noMore') {
+				//防止重复加载
+				return;
 			}
 			// 修改当前对象状态为加载中
 			navItem.loadingType = 'loading';

+ 1 - 1
pages/user/myxfjf.vue

@@ -148,7 +148,7 @@ export default {
 				//tab切换只有第一次需要加载数据
 				return;
 			}
-			if (navItem.loadingType === 'loading') {
+			if (navItem.loadingType == 'loading' || navItem.loadingType == 'noMore') {
 				//防止重复加载
 				return;
 			}

+ 26 - 9
pages/user/user.vue

@@ -9,17 +9,20 @@
 		<view class="user-wrap">
 			<view class="info-left flex">
 				<view class="user-name">
-					<image :src="userInfo.avatar || '../../static/error/missing-face.png'" mode=""></image>
+					<image :src="userInfo.avatar" mode="" v-if="userInfo.avatar"></image>
+					<image src="../../static/error/missing-face.png" mode="" v-else></image>
+					<view class="gpai" v-if="userInfo.is_real">团队长</view>
 					<view class="user-font">
 						<view class="name clamp">{{ userInfo.nickname }}</view>
 						<view class="phone">{{ userInfo.phone }}</view>
+						<view class="phone" v-if="userInfo.uid">邀请码:{{ userInfo.uid }}</view>
 					</view>
 				</view>
 				<view class="kpi">今日KPI:{{userInfo.kpi|| 0}}</view>
 			</view>
 			<view class="info-right" @click="navTo('/pages/user/myxfjf')">
 				<image class="iright-icon" src="../../static/user/user3.png" mode=""></image>
-				<view class="iright-font">消费积分:{{ userInfo.now_money }}</view>
+				<view class="iright-font">消费积分:{{ userInfo.now_money || 0}}</view>
 			</view>
 		</view>
 		<view class="main-box">
@@ -74,6 +77,8 @@
 		</view>
 		<uni-list class="tool-list">
 			<uni-list-item title="邀请有礼" @click="navTo('/pages/user/shareQrCode')" thumb="/static/user/user10.png"></uni-list-item>
+			<uni-list-item title="我的推广" @click="navTo('/pages/user/mytg')" thumb="/static/icon/mytg.png"></uni-list-item>
+			<uni-list-item title="支付密码" @click="navTo('/pages/money/moneyPwd')" thumb="/static/icon/g9.png"></uni-list-item>
 			<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/user/user11.png"></uni-list-item>
 			<uni-list-item title="收款方式" @click="navTo('/pages/collection/collection')" thumb="/static/user/user12.png"></uni-list-item>
 			<uni-list-item title="客服中心" @click="openKf()" thumb="/static/user/user13.png"></uni-list-item>
@@ -273,16 +278,16 @@ export default {
 		 */
 		navTo(url) {
 			console.log(url);
-			// if (!this.hasLogin) {
-			// 	// 保存地址
-			// 	saveUrl();
-			// 	// 登录拦截
-			// 	interceptor();
-			// } else {
+			if (!this.hasLogin) {
+				// 保存地址
+				saveUrl();
+				// 登录拦截
+				interceptor();
+			} else {
 			uni.navigateTo({
 				url
 			});
-			// }
+			}
 		},
 		useTool(e) {
 			this.navTo(e.path);
@@ -651,4 +656,16 @@ page {
 		}
 	}
 }
+.gpai {
+	width: 100rpx;
+	line-height: 40rpx;
+	border-radius: 25rpx;
+	position: absolute;
+	top: 120rpx;
+	left: 40rpx;
+	font-size: 24rpx;
+	color: #c6914e;
+	text-align: center;
+	background-color: #f2d4ae;
+}
 </style>

+ 376 - 281
pages/user/xfjfzz.vue

@@ -1,286 +1,381 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="flex">
-				<view class="buttom">
-					<view class="icon">{{ userInfo.now_money | getMoneyStyle }}</view>
-					<text class="text">可转账余额</text>
-				</view>
-			</view>
-		</view>
-		<view class="row-box">
-			<view class="title">收款人手机号</view>
-			<view class="row"><input class="input" type="number" v-model="card" placeholder="请输入收款人手机号" placeholder-class="placeholder" /></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="转入金额" placeholder-class="placeholder" />
-				<view class="buttom" @click="withdrawal = userInfo.now_money">全部转账</view>
-			</view>
-		</view>
-
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="flex">
+				<view class="buttom">
+					<view class="icon">{{ userInfo.now_money | getMoneyStyle }}</view>
+					<text class="text">可转账余额</text>
+				</view>
+			</view>
+		</view>
+		<view class="row-box">
+			<view class="title">收款人手机号</view>
+			<view class="row"><input class="input" type="number" v-model="card" placeholder="请输入收款人手机号"
+					placeholder-class="placeholder" /></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="转入金额"
+					placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = userInfo.now_money">全部转账</view>
+			</view>
+		</view>
+
 		<button class="add-btn up" :class="{ action: loding }" @click="!loding ? confirm() : ''">提交申请</button>
-		<button class="back-btn up" @click="boblack">返回</button>
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { getUserInfo,transfer_accounts  } from '@/api/user.js';
-import { mapMutations, mapState } from 'vuex';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	data() {
-		return {
-			money: '0.00', //可提现金额
-			withdrawal: '', //提现金额
-			password: '', //支付密码
-			card: '', //转账卡号
-			name: '',
-			// #ifdef H5
-			weichatBsrowser: false,
-			// #endif
-			loding: false,
-			type: 'xl'
-		};
-	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		this.dataUp();
-		if (options.type) {
-			this.type = options.type;
-			console.log(this.type);
-		}
-	},
-	computed: {
-		...mapState('user', ['userInfo'])
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'login']),
-		// 更新数据
-		dataUp() {
-			let obj = this;
-			getUserInfo({})
-				.then(e => {
-					obj.login();
-					// 保存返回用户数据
-					obj.setUserInfo(e.data);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let obj = this;
-			obj.loding = true;
-			if (obj.withdrawal == 0) {
-				obj.loding = false;
-				uni.showModal({
-					title: '提示',
-					content: '转账金额不要为0'
-				});
-				return;
-			}
-			if (obj.card == obj.userInfo.phone) {
-				obj.loding = false;
-				uni.showModal({
-					title: '提示',
-					content: '不要输入自己的用户账号'
-				});
-			} else {
-				let data = {
-					phone: obj.card, //编号
-					money: obj.withdrawal //金额
-				};
-				transfer_accounts(data)
-					.then(e => {
-						
-						// 允许按钮点击
-						obj.loding = false;
-						// 初始化提现金额
-						obj.withdrawal = '';
-						uni.showToast({
-							title: '提交成功',
-							duration: 2000,
-							position: 'top'
-						});
-						obj.dataUp();
-					})
-					.catch(e => {
-						obj.$api.msg(e.msg);
-						obj.loding = false;
-						console.log();
-					});
-			}
+		<button class="back-btn up" @click="boblack">返回</button>
+		<uni-popup ref="uppass" type="center">
+			<view class="psw-wrapper">
+				<view class="psw-title">请输入支付密码</view>
+				<input type="password" v-model="password" class="psw-ipt" />
+				<view class="psw-btn">
+					<text @click="cancel">取消</text>
+					<text class="psw-qd" @click="pswQd">确定</text>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		getMoneyStyle
+	} from '@/utils/rocessor.js';
+	import {
+		getUserInfo,
+		transfer_accounts
+	} from '@/api/user.js';
+	import {
+		mapMutations,
+		mapState
+	} from 'vuex';
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		data() {
+			return {
+				money: '0.00', //可提现金额
+				withdrawal: '', //提现金额
+				password: '', //支付密码
+				card: '', //转账卡号
+				name: '',
+				// #ifdef H5
+				weichatBsrowser: false,
+				// #endif
+				loding: false,
+				type: 'xl'
+			};
+		},
+		onLoad(options) {
+			// #ifdef H5
+			this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+			// #endif
+			this.dataUp();
+			if (options.type) {
+				this.type = options.type;
+				console.log(this.type);
+			}
 		},
-		boblack() {
-			uni.navigateBack({
-				fail(){
-					uni.switchTab({
-						url: '/pages/index/index'
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo', 'login']),
+			// 更新数据
+			dataUp() {
+				let obj = this;
+				getUserInfo({})
+					.then(e => {
+						obj.login();
+						// 保存返回用户数据
+						obj.setUserInfo(e.data);
 					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			// 切换选中对象
+			tabRadio(e) {
+				this.type = e.detail.value;
+			},
+			// 提交
+			confirm() {
+				let obj = this;
+				obj.loding = true;
+				if (obj.withdrawal == 0) {
+					obj.loding = false;
+					uni.showModal({
+						title: '提示',
+						content: '转账金额不要为0'
+					});
+					return;
+				}
+				if (obj.card == obj.userInfo.phone) {
+					obj.loding = false;
+					uni.showModal({
+						title: '提示',
+						content: '不要输入自己的用户账号'
+					});
+				} else {
+					obj.$refs.uppass.open()
+					return
+					
+
+				}
+			},
+			boblack() {
+				uni.navigateBack({
+					fail() {
+						uni.switchTab({
+							url: '/pages/index/index'
+						})
+					}
+				})
+			},
+			cancel() {
+				this.$refs.uppass.close()
+				this.password = ''
+			},
+			pswQd() {
+				let obj = this
+				let data = {
+					phone: obj.card, //编号
+					money: obj.withdrawal ,//金额
+					pas: obj.password
+				};
+				transfer_accounts(data)
+					.then(e => {
+
+						// 允许按钮点击
+						obj.loding = false;
+						// 初始化提现金额
+						obj.withdrawal = '';
+						uni.showToast({
+							title: '转账成功',
+							duration: 2000,
+							position: 'top'
+						});
+						obj.dataUp();
+						obj.cancel()
+					})
+					.catch(e => {
+						obj.$api.msg(e.msg);
+						obj.loding = false;
+						console.log();
+					});
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		height: 100%;
+	}
+
+	.content-money {
+		padding: 30rpx 0;
+		background: #ffffff;
+	}
+
+	.item {
+		padding: 0 $page-row-spacing;
+		background-color: #ffffff;
+	}
+
+	.flex {
+		background-color: #ffffff;
+		text-align: center;
+		margin: 0 30rpx;
+		border-radius: $border-radius-sm;
+		justify-content: center;
+
+		.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: #f21f5d;
+				font-size: $font-base;
+			}
+		}
+	}
+
+	.add-btn {
+		width: 520rpx;
+		height: 80rpx;
+		border-radius: 20rpx;
+		margin: 140rpx auto 0;
+		font-size: 36rpx;
+		font-weight: bold;
+		color: #F8DABA;
+		background-color: #303030;
+	}
+
+	.back-btn {
+		width: 520rpx;
+		height: 80rpx;
+		border-radius: 20rpx;
+		margin: 40rpx auto;
+		font-size: 36rpx;
+		font-weight: bold;
+		color: #303030;
+		background-color: #F8DABA;
+	}
+
+	.name {
+		background: #fff;
+		padding: 30rpx;
+	}
+
+	.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;
 				}
-			})
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.content-money {
-	padding: 30rpx 0;
-	background: #ffffff;
-}
-
-.item {
-	padding: 0 $page-row-spacing;
-	background-color: #ffffff;
-}
-.flex {
-	background-color: #ffffff;
-	text-align: center;
-	margin: 0 30rpx;
-	border-radius: $border-radius-sm;
-	justify-content: center;
-	.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: #f21f5d;
-			font-size: $font-base;
-		}
-	}
-}
-.add-btn {
-	width: 520rpx;
-	height: 80rpx;
-	border-radius: 20rpx;
-	margin: 140rpx auto 0;
-	font-size: 36rpx;
-	font-weight: bold;
-	color: #F8DABA;
-	background-color: #303030;
-}
-.back-btn  {
-	width: 520rpx;
-	height: 80rpx;
-	border-radius: 20rpx;
-	margin: 40rpx auto;
-	font-size: 36rpx;
-	font-weight: bold;
-	color: #303030;
-	background-color:#F8DABA;
-}
-.name {
-	background: #fff;
-	padding: 30rpx;
-}
-.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;
-			}
-		}
-	}
-}
-.tip {
-	padding: 20rpx;
-	color: #ff0000;
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
+			}
+		}
+	}
+
+	.tip {
+		padding: 20rpx;
+		color: #ff0000;
+	}
+
+	/deep/ .uni-radio-input {
+		width: 45rpx;
+		height: 45rpx;
+	}
+
+	.psw-wrapper {
+		width: 548rpx;
+		height: 344rpx;
+		background-color: #FFFFFF;
+		border-radius: 15rpx 15rpx;
+
+		.psw-title {
+			width: 100%;
+			font-size: 35rpx;
+			padding: 43rpx 0 49rpx;
+			text-align: center;
+			font-weight: 800;
+		}
+
+		.psw-ipt {
+			display: block;
+			background-color: #dce3ed;
+			height: 90rpx;
+			width: 464rpx;
+			padding-left: 30rpx;
+			margin: 0 auto;
+			font-size: 80rpx;
+		}
+
+		.psw-btn text {
+			display: inline-block;
+			text-align: center;
+			width: 50%;
+			padding-top: 29rpx;
+			font-size: 35rpx;
+		}
+
+		.psw-qd {
+			color: #5771DF;
+		}
+	}
 </style>

二进制
static/icon/g9.png


二进制
static/icon/mytg.png


+ 34 - 34
store/index.js

@@ -1,35 +1,35 @@
-import Vue from 'vue'
-import Vuex from 'vuex'
-import user from './model/user'
-Vue.use(Vuex)
-
-const store = new Vuex.Store({
-	namespaced: true,
-	state: {
-		// baseURL:"http://yrh.liuniu946.com",//'http://eb.shuibo.net',//请求地址配置 
-		baseURL:'http://sxg.frp.liuniu946.com',//请求地址配置 
-		urlFile:'/index',//项目部署所在文件夹
-		userInfo: {}, //登录信息
-		loginInterceptor:false,//是否打开强制登录
-		// #ifdef H5 || MP-WEIXIN
-		weichatInfo:{},//保存微信注册信息
-		weichatObj:'',//微信对象
-		// #endif
-	},
-	mutations: {
-		//保存微信信息
-		setWeiChatInfo(state, provider) {
-			state.weichatInfo = provider;
-		},
-		//保存微信对象
-		setWeiChatObj(state, provider) {
-			state.weichatObj = provider;
-		}
-	},
-	modules:{
-		user
-	},
-	actions: {}
-})
-
+import Vue from 'vue'
+import Vuex from 'vuex'
+import user from './model/user'
+Vue.use(Vuex)
+
+const store = new Vuex.Store({
+	namespaced: true,
+	state: {
+		// baseURL:"http://yrh.liuniu946.com",//'http://eb.shuibo.net',//请求地址配置 
+		baseURL: 'http://ledao.ink', //请求地址配置 
+		urlFile: '/index', //项目部署所在文件夹
+		userInfo: {}, //登录信息
+		loginInterceptor: false, //是否打开强制登录
+		// #ifdef H5 || MP-WEIXIN
+		weichatInfo: {}, //保存微信注册信息
+		weichatObj: '', //微信对象
+		// #endif
+	},
+	mutations: {
+		//保存微信信息
+		setWeiChatInfo(state, provider) {
+			state.weichatInfo = provider;
+		},
+		//保存微信对象
+		setWeiChatObj(state, provider) {
+			state.weichatObj = provider;
+		}
+	},
+	modules: {
+		user
+	},
+	actions: {}
+})
+
 export default store

二进制
unpackage/cache/apk/__UNI__474F381_cm.apk


+ 1 - 1
unpackage/cache/apk/apkurl

@@ -1 +1 @@
-https://ide.dcloud.net.cn/build/download/7f8dece0-bad3-11ec-af08-0d67776f93ba
+https://ide.dcloud.net.cn/build/download/320bf9b0-c1d5-11ec-a3ba-431b7b9e51ed

文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/apk/cmManifestCache.json


+ 1 - 1
unpackage/cache/certdata

@@ -1,3 +1,3 @@
-andrCertfile=D:/gsxm/sxg/unpackage/res/base/sxg.keystore
+andrCertfile=D:/2022/3/sxg/unpackage/res/base/sxg.keystore
 andrCertAlias=com.sxg.inc
 andrCertPass=7IwuiYJfyRjKKTfhI7sjzw==

文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/__uniappopenlocation.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/app-config-service.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/app-service.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/app-view.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/manifest.json


二进制
unpackage/cache/wgt/__UNI__474F381/static/icon/g9.png


二进制
unpackage/cache/wgt/__UNI__474F381/static/icon/mytg.png


文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/view.css


文件差异内容过多而无法显示
+ 0 - 0
unpackage/cache/wgt/__UNI__474F381/view.umd.min.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/__uniappopenlocation.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/app-config-service.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/app-service.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/app-view.js


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/manifest.json


二进制
unpackage/dist/build/app-plus/static/icon/g9.png


二进制
unpackage/dist/build/app-plus/static/icon/mytg.png


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/view.css


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/build/app-plus/view.umd.min.js


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

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

二进制
unpackage/dist/build/h5/static/icon/down.png


二进制
unpackage/dist/build/h5/static/icon/dsjh.png


二进制
unpackage/dist/build/h5/static/icon/duihuan.png


二进制
unpackage/dist/build/h5/static/icon/fanhui.png


二进制
unpackage/dist/build/h5/static/icon/g9.png


二进制
unpackage/dist/build/h5/static/icon/gou.png


二进制
unpackage/dist/build/h5/static/icon/huzhuan.png


二进制
unpackage/dist/build/h5/static/icon/index-gou.png


二进制
unpackage/dist/build/h5/static/icon/logo.png


二进制
unpackage/dist/build/h5/static/icon/red-gift.png


二进制
unpackage/dist/build/h5/static/icon/red-tit.png


二进制
unpackage/dist/build/h5/static/icon/sc-ico.png


二进制
unpackage/dist/build/h5/static/icon/search-h.png


二进制
unpackage/dist/build/h5/static/icon/tixian.png


二进制
unpackage/dist/build/h5/static/icon/uset.png


二进制
unpackage/dist/build/h5/static/img/Hang.24f347f3.png


二进制
unpackage/dist/build/h5/static/img/Hang.png


二进制
unpackage/dist/build/h5/static/img/afternoonicon.png


二进制
unpackage/dist/build/h5/static/img/afternooninco.png


二进制
unpackage/dist/build/h5/static/img/autotrophy.png


二进制
unpackage/dist/build/h5/static/img/back.png


二进制
unpackage/dist/build/h5/static/img/busy.png


二进制
unpackage/dist/build/h5/static/img/duihuan.ab538c58.png


+ 0 - 0
unpackage/dist/build/h5/static/img/eveninginco.png → unpackage/dist/build/h5/static/img/eveningicon.png


二进制
unpackage/dist/build/h5/static/img/goodtitle.76a8d4d6.png


二进制
unpackage/dist/build/h5/static/img/hall-bg.3ea75ec4.png


二进制
unpackage/dist/build/h5/static/img/hall-bg.55ed6253.png


二进制
unpackage/dist/build/h5/static/img/hall-bg.png


二进制
unpackage/dist/build/h5/static/img/hell-main.0d5b9ae4.png


二进制
unpackage/dist/build/h5/static/img/hell-main.80d55f64.png


二进制
unpackage/dist/build/h5/static/img/hell-main.png


二进制
unpackage/dist/build/h5/static/img/hinco.png


二进制
unpackage/dist/build/h5/static/img/hinfo-bg.5c7cd32b.png


二进制
unpackage/dist/build/h5/static/img/hinfo-bg.e82aa48d.png


二进制
unpackage/dist/build/h5/static/img/hinfo-bg.png


二进制
unpackage/dist/build/h5/static/img/huzhuan.b15117ef.png


二进制
unpackage/dist/build/h5/static/img/index-inco1.png


二进制
unpackage/dist/build/h5/static/img/index-inco2.png


二进制
unpackage/dist/build/h5/static/img/index-inco3.png


二进制
unpackage/dist/build/h5/static/img/index-inco4.png


二进制
unpackage/dist/build/h5/static/img/index-inco5.png


二进制
unpackage/dist/build/h5/static/img/index-inco6.png


二进制
unpackage/dist/build/h5/static/img/index-inco7.png


二进制
unpackage/dist/build/h5/static/img/index-inco8.png


二进制
unpackage/dist/build/h5/static/img/index-product.295b0458.png


二进制
unpackage/dist/build/h5/static/img/index-product.png


二进制
unpackage/dist/build/h5/static/img/index11.b49260e0.png


二进制
unpackage/dist/build/h5/static/img/index13.b1399b0f.png


二进制
unpackage/dist/build/h5/static/img/index14.66eb5893.png


二进制
unpackage/dist/build/h5/static/img/integral.png


二进制
unpackage/dist/build/h5/static/img/jifen.543823a7.png


二进制
unpackage/dist/build/h5/static/img/jifen.png


二进制
unpackage/dist/build/h5/static/img/ling.png


二进制
unpackage/dist/build/h5/static/img/log.34930231.png


二进制
unpackage/dist/build/h5/static/img/logo.a6e0c93f.png


二进制
unpackage/dist/build/h5/static/img/money-bg.3078b543.png


二进制
unpackage/dist/build/h5/static/img/morningicon.png


部分文件因为文件数量过多而无法显示