lhl 2 năm trước cách đây
mục cha
commit
b18297dcdf
100 tập tin đã thay đổi với 2016 bổ sung1681 xóa
  1. 35 0
      api/user.js
  2. 1 1
      manifest.json
  3. 7 1
      pages.json
  4. 218 161
      pages/index/index.vue
  5. 32 4
      pages/money/pay.vue
  6. 11 11
      pages/order/order.vue
  7. 192 0
      pages/product/bdLis.vue
  8. 12 17
      pages/product/product.vue
  9. 1 1
      pages/public/forget.vue
  10. 404 385
      pages/public/login.vue
  11. 12 10
      pages/public/register.vue
  12. 20 13
      pages/redirect/redirect.vue
  13. 1 1
      pages/set/addressManage.vue
  14. 1 1
      pages/set/password.vue
  15. 141 5
      pages/set/phone.vue
  16. 0 10
      pages/set/userinfo.vue
  17. 447 440
      pages/user/award.vue
  18. 20 23
      pages/user/jf.vue
  19. 315 274
      pages/user/shareQrCode.vue
  20. 4 4
      pages/user/team.vue
  21. 115 295
      pages/user/user.vue
  22. 12 12
      pages/user/withdrawal.vue
  23. 12 9
      pages/user/yjzz.vue
  24. BIN
      static/icon/bdb.png
  25. BIN
      static/icon/jlb.png
  26. BIN
      static/icon/o1.png
  27. BIN
      static/icon/o2.png
  28. BIN
      static/icon/o3.png
  29. BIN
      static/icon/o4.png
  30. BIN
      static/icon/pasw.png
  31. BIN
      static/icon/phone.png
  32. BIN
      static/icon/u1.png
  33. BIN
      static/icon/u2.png
  34. BIN
      static/icon/u3.png
  35. BIN
      static/icon/u4.png
  36. BIN
      static/icon/u5.png
  37. BIN
      static/icon/u6.png
  38. BIN
      static/icon/u7.png
  39. BIN
      static/icon/vip.png
  40. BIN
      static/icon/yzm.png
  41. BIN
      static/img/bd-top.png
  42. BIN
      static/img/sharebase.png
  43. BIN
      static/img/tg-bg1.png
  44. BIN
      static/tabBar/cart-action.png
  45. BIN
      static/tabBar/cart.png
  46. BIN
      static/tabBar/cate-action.png
  47. BIN
      static/tabBar/cate.png
  48. BIN
      static/tabBar/home-action.png
  49. BIN
      static/tabBar/home.png
  50. BIN
      static/tabBar/user-action.png
  51. BIN
      static/tabBar/user.png
  52. 1 1
      store/index.js
  53. BIN
      unpackage/dist/build/h5/3-10-12.rar
  54. 2 2
      unpackage/dist/build/h5/index.html
  55. BIN
      unpackage/dist/build/h5/static/icon/bdb.png
  56. BIN
      unpackage/dist/build/h5/static/icon/jlb.png
  57. BIN
      unpackage/dist/build/h5/static/icon/o1.png
  58. BIN
      unpackage/dist/build/h5/static/icon/o2.png
  59. BIN
      unpackage/dist/build/h5/static/icon/o3.png
  60. BIN
      unpackage/dist/build/h5/static/icon/o4.png
  61. BIN
      unpackage/dist/build/h5/static/icon/pasw.png
  62. BIN
      unpackage/dist/build/h5/static/icon/phone.png
  63. BIN
      unpackage/dist/build/h5/static/icon/u1.png
  64. BIN
      unpackage/dist/build/h5/static/icon/u2.png
  65. BIN
      unpackage/dist/build/h5/static/icon/u3.png
  66. BIN
      unpackage/dist/build/h5/static/icon/u4.png
  67. BIN
      unpackage/dist/build/h5/static/icon/u5.png
  68. BIN
      unpackage/dist/build/h5/static/icon/u6.png
  69. BIN
      unpackage/dist/build/h5/static/icon/u7.png
  70. BIN
      unpackage/dist/build/h5/static/icon/vip.png
  71. BIN
      unpackage/dist/build/h5/static/icon/yzm.png
  72. BIN
      unpackage/dist/build/h5/static/img/bd-top.d74d8aad.png
  73. BIN
      unpackage/dist/build/h5/static/img/bd-top.png
  74. BIN
      unpackage/dist/build/h5/static/img/gn1.c77967b7.png
  75. BIN
      unpackage/dist/build/h5/static/img/sharebase.png
  76. BIN
      unpackage/dist/build/h5/static/img/tg-bg1.c95be621.png
  77. BIN
      unpackage/dist/build/h5/static/img/tg-bg1.png
  78. BIN
      unpackage/dist/build/h5/static/img/user-top.04586a32.png
  79. 0 0
      unpackage/dist/build/h5/static/index.63b34199.css
  80. 0 0
      unpackage/dist/build/h5/static/index.b0707a6a.css
  81. 0 0
      unpackage/dist/build/h5/static/js/chunk-vendors.2784987b.js
  82. 0 0
      unpackage/dist/build/h5/static/js/chunk-vendors.d3a37645.js
  83. 0 0
      unpackage/dist/build/h5/static/js/index.6d6ae77b.js
  84. 0 0
      unpackage/dist/build/h5/static/js/index.7fec5f4c.js
  85. 0 0
      unpackage/dist/build/h5/static/js/pages-cart-cart.445ac297.js
  86. 0 0
      unpackage/dist/build/h5/static/js/pages-cart-cart.a1c573b8.js
  87. 0 0
      unpackage/dist/build/h5/static/js/pages-category-category.4f35bdf9.js
  88. 0 0
      unpackage/dist/build/h5/static/js/pages-category-category.823e487a.js
  89. 0 0
      unpackage/dist/build/h5/static/js/pages-index-artDetail.7d2e8d5c.js
  90. 0 0
      unpackage/dist/build/h5/static/js/pages-index-artDetail.def1546c.js
  91. 0 0
      unpackage/dist/build/h5/static/js/pages-index-index.79d69ff3.js
  92. 0 0
      unpackage/dist/build/h5/static/js/pages-index-index.bc20dbf6.js
  93. 0 0
      unpackage/dist/build/h5/static/js/pages-index-index~pages-set-addressManage~pages-user-user.1121db5d.js
  94. 0 0
      unpackage/dist/build/h5/static/js/pages-index-index~pages-user-user.c6e57f0c.js
  95. 0 0
      unpackage/dist/build/h5/static/js/pages-money-pay.0e29e7e7.js
  96. 0 0
      unpackage/dist/build/h5/static/js/pages-money-pay.b2e6a77c.js
  97. 0 0
      unpackage/dist/build/h5/static/js/pages-money-paySuccess.97281fef.js
  98. 0 0
      unpackage/dist/build/h5/static/js/pages-money-paySuccess.9ffd9e5b.js
  99. 0 0
      unpackage/dist/build/h5/static/js/pages-money-recharge.2b7f9acf.js
  100. 0 0
      unpackage/dist/build/h5/static/js/pages-money-recharge.8b15648b.js

+ 35 - 0
api/user.js

@@ -16,6 +16,15 @@ export function getUserInfo(data) {
 		method: 'get',
 		data
 	});
+}
+
+// 获取用户信息
+export function getUser(data) {
+	return request({
+		url: '/api/user',
+		method: 'get',
+		data
+	});
 }
 
 // 用户分享图
@@ -160,4 +169,30 @@ export function yjzye(data) {
 		method:'post',
 		data
 	})
+}
+
+//api/ticketsRotation
+export function ticketsRotation(data) {
+	return request({
+		url:'/api/ticketsRotation',
+		method:'post',
+		data
+	})
+}
+
+export function ticketsList(data,type) {
+	return request({
+		url:'/api/ticketsRotation/tickets_List/' + type,
+		method:'get',
+		data
+	})
+}
+
+//ticketsRotation/brokerage_List
+export function brokerageList(data,type) {
+	return request({
+		url:'/api/ticketsRotation/brokerage_List/' + type,
+		method:'get',
+		data
+	})
 }

+ 1 - 1
manifest.json

@@ -74,7 +74,7 @@
         "devServer" : {
             "proxy" : {
                 "/api" : {
-                    "target" : "https://wwgj.liuniu946.com/api",
+                    "target" : "http://store.manyuanchunjia.com/api",
                     // "changeOrigin": true,
                     "pathRewrite" : {
                         "/api" : "" // rewrite path

+ 7 - 1
pages.json

@@ -82,6 +82,12 @@
 				"enablePullDownRefresh": true,
 				"navigationBarTitleText": "商品列表"
 			}
+		},
+		{
+			"path": "pages/product/bdLis",
+			"style": {
+				"navigationBarTitleText": "报单专区"
+			}
 		},
 		{
 			"path": "pages/product/search",
@@ -135,7 +141,7 @@
 		{
 			"path": "pages/set/phone",
 			"style": {
-				"navigationBarTitleText": "实名认证"
+				"navigationBarTitleText": "绑定手机"
 			}
 		},
 		{

+ 218 - 161
pages/index/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="container">
-		<!-- 顶部logo and 搜索 start-->
 		<view class="status_bar"></view>
+		<!-- 顶部logo and 搜索 start-->
 		<view class="top-search flex">
 			<view class="search-box flex" @click="clickSearch()">
 				<image class="search" src="../../static/icon/search-h.png" mode=""></image>
@@ -18,20 +18,6 @@
 			</swiper-item>
 		</swiper>
 		<!-- 轮播图 end -->
-		<view class="swiper-btm flex">
-			<view class="btm-item flex">
-				<image src="../../static/icon/index-gou.png" mode=""></image>
-				<view class="">自用购物返利</view>
-			</view>
-			<view class="btm-item flex">
-				<image src="../../static/icon/index-gou.png" mode=""></image>
-				<view class="">分享好友赚钱</view>
-			</view>
-			<view class="btm-item flex">
-				<image src="../../static/icon/index-gou.png" mode=""></image>
-				<view class="">超值正品优惠</view>
-			</view>
-		</view>
 		<!-- 分类 start -->
 		<view class="cate-section flex">
 			<view class="cate-item flex" @click="navto('/pages/category/category')">
@@ -40,72 +26,89 @@
 				</view>
 				<view class="item-title">全部商品</view>
 			</view>
-			<view class="cate-item flex" @click="navto('/pages/user/shareQrCode',1)">
-				<view class="img-wrapper flex">
-					<image src="../../static/icon/in4.png" mode=""></image>
-				</view>
-				<view class="item-title">邀请好友</view>
-			</view>
 			<view class="cate-item flex" @click="navto('/pages/index/artDetail?id=1')">
 				<view class="img-wrapper flex">
-					<image src="../../static/icon/in2.png" mode=""></image>
+					<image src="../../static/icon/in3.png" mode=""></image>
 				</view>
 				<view class="item-title">公司介绍</view>
 			</view>
 			<view class="cate-item flex" @click="openKf">
 				<view class="img-wrapper flex">
-					<image src="../../static/icon/in3.png" mode=""></image>
+					<image src="../../static/icon/in4.png" mode=""></image>
 				</view>
 				<view class="item-title">联系客服</view>
 			</view>
-			
+			<view class="cate-item flex" @click="navto('/pages/user/shareQrCode',1)">
+				<view class="img-wrapper flex">
+					<image src="../../static/icon/in2.png" mode=""></image>
+				</view>
+				<view class="item-title">邀请好友</view>
+			</view>
 		</view>
 		<!-- 分类 ed -->
-		<view class="jg">
-
+		<view class="jg"></view>
+		<!-- 保单专区 start-->
+		<view class="bd-wrap">
+			<view class="bd">
+				<view class="bd-top flex" @click="navTo('/pages/product/bdLis')">
+					<view class="bd-top-left">
+						<text></text>报单区
+					</view>
+					<view class="bd-top-right">
+						查看更多 >
+					</view>
+				</view>
+				<scroll-view scroll-x class="bd-good-list ">
+					<view class="bd-good-item flex" v-for="bditem in bdList" @click="navTo('/pages/product/product?isbd=1&id=' + bditem.id)">
+						<image :src="bditem.image" mode="" class="item-img"></image>
+						<view class="item-name clamp">
+							{{bditem.store_name}}
+						</view>
+						<view class="item-price flex">
+							<view class="">
+								¥{{bditem.price*1}}
+							</view>
+							<view class="item-solt">
+								已售{{bditem.sort}}
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+			</view>
 		</view>
+		<view class="jg"></view>
+		<!-- 保单专区 end-->
 		<!-- 商品列表 start -->
 		<view class="product-box">
 			<view class="product-tit flex">
 				<view class="hx">
-			
+
 				</view>
 				<view class="tit">
-					精选推荐
+					爆款推荐
 				</view>
 				<view class="hx">
-			
+
 				</view>
 			</view>
 		</view>
-		<image src="https://wwgj.liuniu946.com/static/img/in-ban.png" mode="" class="in-ban"></image>
 		<view class="good-list">
-			<view class="good flex" v-for="item in goodList" @click="navto('/pages/product/product?id=' + item.id)">
-				<view class="good-img">
-					<image :src="item.image" mode=""></image>
-				</view>
-				<view class="good-info flex">
-					<view class="good-name clamp2">
+			<view class="good" v-for="item in goodList" @click="navTo('/pages/product/product?id=' + item.id)">
+				<image :src="item.image" mode="" class="good-image"></image>
+				<view class="good-name ">
+					<view class="clamp2">
 						{{item.store_name}}
 					</view>
-					<view class="good-price">
-						<view class="old-price" v-if="item.ot_price*1 > item.price*1">
-							<text class="old-left">¥{{item.ot_price}}</text>
-							<image src="../../static/icon/down.png" mode="widthFix"></image>
-							<text class="old-right">直降{{item.ot_price*1 - item.price*1}}元</text>
-						</view>
-						<view class="new-price flex">
-							<view class="" >
-								¥{{item.price}}
-							</view>
-							<view class="good-tip">
-								立即购买
-							</view>
-						</view>
+				</view>
+				<view class="good-price">
+					<view class="price">
+						¥{{item.price}}
+					</view>
+					<view class="xl">
+					  {{item.ot_price}}
 					</view>
 				</view>
 			</view>
-			<uni-load-more :status="loadingType"></uni-load-more>
 		</view>
 		<!-- 商品列表 ed-->
 		<uni-popup ref="popupkf" type="center">
@@ -141,7 +144,8 @@
 		getBargainList,
 		getProducts,
 		goodsDetail,
-		poster
+		poster,
+		groomList
 	} from '@/api/product.js';
 	import {
 		saveUrl,
@@ -160,6 +164,7 @@
 	export default {
 		data() {
 			return {
+				bdList: [],
 				text: '', //客服微信
 				page: 1,
 				limitt: 20,
@@ -234,7 +239,7 @@
 		},
 		onReachBottom() {
 			console.log('到底')
-			this.getGoodList()
+			// this.getGoodList()
 		},
 		onLoad: function(option) {
 			// #ifdef MP
@@ -246,12 +251,28 @@
 				});
 			}
 			// #endif
+			if(option.spread) {
+				uni.setStorage({
+					key: 'spread',
+					data: option.spread
+				});
+			}
 		},
 		onShow: function() {
-			this.getGoodList()
+			// this.getGoodList()
 			this.loadData();
+			this.getBdList()
 		},
 		methods: {
+			getBdList() {
+				groomList({
+					page: 1,
+					limit: 10
+				},5).then(res => {
+					console.log(res)
+					this.bdList = res.data.list
+				})
+			},
 			getGoodList() {
 				let obj = this
 				if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
@@ -327,6 +348,7 @@
 						this.carouselList = data.banner;
 						this.swiperLength = this.carouselList.length;
 						this.bastList = data.giftInfo; //会员礼包
+						this.goodList = data.info.bastList
 						data.info.firstList.forEach(e => {
 							e.isVip = e.store_type ? "3" : "0"
 						})
@@ -466,13 +488,14 @@
 
 	// 顶部轮播图
 	.top-swiper {
-		width: 750rpx;
-		height: 360rpx;
+		width: 690rpx;
+		height: 320rpx;
+		margin: auto;
 
 		// margin: 20rpx 0 0;
 		image {
-			width: 750rpx;
-			height: 360rpx;
+			width: 690rpx;
+			height: 320rpx;
 		}
 	}
 
@@ -506,7 +529,7 @@
 	.cate-section {
 		justify-content: space-around;
 		background-color: #fff;
-		padding: 0rpx 0 30rpx;
+		padding: 20rpx 0 30rpx;
 
 		.cate-item {
 			flex-grow: 0;
@@ -518,13 +541,13 @@
 
 			.img-wrapper {
 				width: 112rpx;
-				height:112rpx;
+				height: 112rpx;
 				border-radius: 20rpx;
 				position: relative;
 
 				image {
 					width: 112rpx;
-					height:112rpx;
+					height: 112rpx;
 					position: absolute;
 					left: 50%;
 					top: 50%;
@@ -545,15 +568,16 @@
 		margin-top: 20rpx;
 		background: #ffffff;
 		padding: 26rpx 0 20rpx;
+
 		.product-tit {
 			justify-content: center;
-		
+
 			.hx {
 				width: 120rpx;
 				height: 1rpx;
-				background: #E9B43B;
+				background: #989898;
 			}
-		
+
 			.tit {
 				margin: 0 70rpx;
 				font-size: 32rpx;
@@ -670,22 +694,7 @@
 		background-color: #ffffff;
 		border-radius: 20rpx;
 		position: relative;
-		.product-tit {
-			justify-content: center;
-		
-			.hx {
-				width: 120rpx;
-				height: 1rpx;
-				background: #989898;
-			}
-		
-			.tit {
-				margin: 0 70rpx;
-				font-size: 30rpx;
-				font-weight: 500;
-				color: #363636;
-			}
-		}
+
 		.img {
 			position: relative;
 			top: -56rpx;
@@ -766,103 +775,151 @@
 			}
 		}
 	}
+
 	.in-ban {
 		margin-top: 10rpx;
 		width: 750rpx;
 		height: 220rpx;
 	}
+
 	.good-list {
-		width: 750rpx;
-		background:#fff;
-		padding: 30rpx 0;
-	
+		display: flex;
+		justify-content: space-between;
+		flex-wrap: wrap;
+		padding: 20rpx 28rpx;
 		.good {
-			width: 690rpx;
-			height: 276rpx;
+			width: 336rpx;
+			height: 482rpx;
 			background: #FFFFFF;
-			box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-			border-radius: 10rpx;
-			margin: auto;
-			padding: 20rpx 15rpx;
+			box-shadow: 0px 0px 6rpx 0px rgba(0, 0, 0, 0.1);
+			border-radius: 14rpx;
 			margin-bottom: 20rpx;
-			&:last-of-type {
-				margin-bottom: 0rpx;
+			position: relative;
+			.good-image {
+				width: 336rpx;
+				height: 336rpx;
+				background-color: #eee;
+				border-radius: 14rpx 14rpx 0 0;
 			}
 	
-			.good-img {
-				flex-shrink: 0;
-				width: 236rpx;
-				height: 236rpx;
-				border-radius: 10rpx;
-				margin-right: 22rpx;
-	
-				image {
-					width: 236rpx;
-					height: 236rpx;
-					border-radius: 10rpx;
-				}
+			.good-name {
+				font-size: 28rpx;
+				font-weight: bold;
+				color: #333333;
+				padding: 0 20rpx;
 			}
-	
-			.good-info {
-				flex-grow: 1;
-				height: 100%;
-				flex-direction: column;
-				justify-content: space-between;
-				align-items: flex-start;
-	
-				.good-name {
-					font-size: 32rpx;
-					font-weight: bold;
-					padding-top: 10rpx;
-					color: #333333;
+			.good-key {
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #999999;
+				padding-left: 20rpx
+			}
+			.good-price {
+				display: flex;
+				width: 336rpx;
+				justify-content: flex-start;
+				align-items: center;
+				font-size: 28rpx;
+				font-weight: bold;
+				color: #FF1A1A;
+				position: absolute;
+				bottom: 20rpx;
+				padding: 0 20rpx;
+				.xl{
+					font-size: 26rpx;
+					font-weight: 500;
+					text-decoration: line-through;
+					color: #989898;
+					margin-left: 15rpx;
 				}
-	
-				.good-price {
-					width: 100%;
-	
-					image {
-						width: 14rpx;
-						margin: 0 6rpx 0 10rpx;
-					}
-	
-					.old-price {
-						.old-left {
-							font-size: 26rpx;
-							font-weight: 500;
-							text-decoration: line-through;
-							color: #999999;
-						}
-	
-						.old-right {
-							font-size: 24rpx;
-							font-weight: bold;
-							color: #B59467;
-						}
-					}
-	
-					.new-price {
-						width: 100%;
-						font-size: 36rpx;
-						font-weight: bold;
-						color: #FF4C4C;
-						justify-content: space-between;
-	
-						.good-tip {
-							width: 137rpx;
-							height: 52rpx;
-							background: #01A6A8;
-							border-radius: 26rpx;
-							position: relative;
-							font-size: 26rpx;
-							font-weight: 500;
-							color: #FFFFFF;
-							line-height: 52rpx;
-							text-align: center;
-						}
+			}
+		}
+	}
+
+	.bd-wrap {
+		height: 504rpx;
+		width: 750rpx;
+		background-color: #fff;
+		padding-top: 40rpx;
+
+		.bd {
+			width: 712rpx;
+			height: 421rpx;
+			background: #FFF8F5;
+			border-radius: 20rpx;
+			margin: auto;
+			padding: 0 30rpx;
+
+			.bd-top {
+				font-size: 33rpx;
+				font-weight: bold;
+				color: #3F3F3F;
+				height: 80rpx;
+				align-items: center;
+
+				.bd-top-left {
+					text {
+						display: inline-block;
+						width: 6rpx;
+						height: 31rpx;
+						background: linear-gradient(150deg, #FF834D, #FF2600);
+						border-radius: 2rpx;
+						margin-right: 13rpx;
 					}
+
+				}
+
+				.bd-top-right {
+					font-size: 27rpx;
+					font-weight: 500;
+					color: #7F8699;
 				}
 			}
 		}
-	
+
+	}
+
+	.bd-good-item {
+		display: inline-block;
+		width: 208rpx;
+		height: 302rpx;
+		flex-direction: column;
+		justify-content: space-between;
+		align-items: flex-start;
+		margin-right: 13rpx;
+
+		.item-img {
+			width: 208rpx;
+			height: 208rpx;
+			border-radius: 10rpx;
+			background-color: #eee;
+
+		}
+
+		.item-name {
+			padding: 18rpx 0;
+			width: 100%;
+			font-size: 27rpx;
+			font-weight: bold;
+			color: #414141;
+		}
+
+		.item-price {
+			width: 100%;
+			font-size: 33rpx;
+			font-weight: bold;
+			color: #FF7340;
+
+			.item-solt {
+				font-size: 21rpx;
+				font-weight: 500;
+				color: #999999;
+			}
+		}
+	}
+
+	.bd-good-list {
+		white-space: nowrap;
+		width: 100%;
 	}
 </style>

+ 32 - 4
pages/money/pay.vue

@@ -27,6 +27,24 @@
 					<text>可用余额 ¥{{ now_money }}</text>
 				</view>
 				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 3"></radio></label>
+			</view>
+			<view class="type-item" @click="changePayType(4)">
+				<!-- <text class="icon iconfont iconyue"></text> -->
+				<image src="../../static/icon/bdb.png" mode="widthFix" class="icon1"></image>
+				<view class="con">
+					<text class="tit">报单币支付</text>
+					<text>可用余额 ¥{{ now_money }}</text>
+				</view>
+				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 4"></radio></label>
+			</view>
+			<view class="type-item" @click="changePayType(5)">
+				<!-- <text class="icon iconfont iconyue"></text> -->
+				<image src="../../static/icon/jlb.png" mode="widthFix" class="icon1"></image>
+				<view class="con">
+					<text class="tit">奖励支付</text>
+					<text>可用余额 ¥{{ now_money }}</text>
+				</view>
+				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 5"></radio></label>
 			</view>
 		</view>
 		<text class="mix-btn" :class="{ clickbg: payLoding }" @click="!payLoding ? confirm() : ''">确认支付</text>
@@ -109,6 +127,12 @@ export default {
 			}
 			if (this.payType == 3) {
 				this.payName = 'yue';
+			}
+			if(this.payType == 4) {
+				this.payName = 'tickets';
+			}
+			if(this.payType == 5) {
+				this.payName = 'brokerage';
 			}
 		},
 		// 支付金额
@@ -132,7 +156,7 @@ export default {
 					console.log(obj.payName,'支付类型')
 					console.log(e,'支付金额')
 					// 判断是否为余额支付
-					if (obj.payName == 'yue' && e.data.status == 'SUCCESS') {
+					if ((obj.payName == 'yue' || obj.payName == 'tickets' || obj.payName == 'brokerage') && e.data.status == 'SUCCESS') {
 						if (e.status == 200) {
 							obj.paySuccessTo();
 						} else {
@@ -275,7 +299,7 @@ export default {
 					// 保存订单号
 					obj.orderId = data.result.orderId;
 					// 判断是否为余额支付
-					if (obj.payName == 'yue') {
+					if (obj.payName == 'yue' || obj.payName == 'tickets' || obj.payName == 'brokerage') {
 						if (status == 200 && data.status == 'SUCCESS') {
 							obj.paySuccessTo();
 						} else {
@@ -334,9 +358,13 @@ export default {
 		align-items: center;
 		padding-right: 60upx;
 		font-size: 30upx;
-		position: relative;
+		position: relative;
+		
+	}
+	.icon1 {
+		width: 60rpx;
+		margin-right: 40rpx;
 	}
-
 	.icon {
 		width: 100upx;
 		font-size: 52upx;

+ 11 - 11
pages/order/order.vue

@@ -36,7 +36,7 @@
 							<view class="right">
 								<view class="flex-start">
 									<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-									<text class="price">{{ goodsItem.productInfo.price|moneyNum }}</text>
+									<text class="price">{{ moneyNum(goodsItem.productInfo.price) }}</text>
 								</view>
 								<view class="row flex">
 									<text class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text>
@@ -58,7 +58,7 @@
 							<button v-if="item._status._title == '未支付'" @click.stop="orderPay(item)" class="action-btn recom">立即支付</button>
 							<button v-if="item._status._title == '待评价'" class="action-btn">评价</button>
 							<button v-if="item._status._title == '待收货'" @click.stop="orderTake(item, index)" class="action-btn">确认收货</button>
-							<button v-if="item._status._title == '未发货'" class="action-btn" @click.stop="orderRefund(item)">申请退款</button>
+							<!-- <button v-if="item._status._title == '未发货'" class="action-btn" @click.stop="orderRefund(item)">申请退款</button> -->
 						</view>
 					</view>
 
@@ -106,14 +106,6 @@ export default {
 					page: 1, //当前页数
 					limit: 10 //每次信息条数
 				},
-				{
-					state: 3,
-					text: '待评价',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
 				{
 					state: 4,
 					text: '已完成',
@@ -121,7 +113,15 @@ export default {
 					orderList: [],
 					page: 1, //当前页数
 					limit: 10 //每次信息条数
-				}
+				},
+				// {
+				// 	state: 4,
+				// 	text: '已完成',
+				// 	loadingType: 'more',
+				// 	orderList: [],
+				// 	page: 1, //当前页数
+				// 	limit: 10 //每次信息条数
+				// }
 			]
 		};
 	},

+ 192 - 0
pages/product/bdLis.vue

@@ -0,0 +1,192 @@
+<template>
+	<view class="content">
+		<view class="good-list">
+			<view class="good flex" v-for="item in list"
+				@click="navto('/pages/product/product?id=' + item.id + '&isbd=1')">
+				<view class="good-img">
+					<image :src="item.image" mode=""></image>
+				</view>
+				<view class="good-info flex">
+					<view class="good-name clamp2">
+						{{item.store_name}}
+					</view>
+					<view class="good-price">
+						<view class="old-price" v-if="item.ot_price*1 > item.price*1">
+							<text class="old-left">¥{{item.ot_price}}</text>
+							<image src="../../static/icon/down.png" mode="widthFix"></image>
+							<text class="old-right">直降{{item.ot_price*1 - item.price*1}}元</text>
+						</view>
+						<view class="new-price flex">
+							<view class="">
+								¥{{item.price}}
+							</view>
+							<view class="good-tip">
+								立即购买
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<uni-load-more :status="loadingType"></uni-load-more>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		groomList
+	} from '@/api/product.js';
+	export default {
+		data() {
+			return {
+				list: [],
+				page: 1,
+				limit: 10,
+				loaded: false,
+				loadingType: 'more'
+			}
+		},
+		onLoad() {
+			this.groomList()
+		},
+		onShow() {
+
+		},
+		onReachBottom() {
+			this.groomList()
+		},
+		onReady() {
+
+		},
+		methods: {
+			navto(url) {
+				uni.navigateTo({
+					url
+				})
+			},
+			groomList() {
+				let that = this
+				if (that.loadingType == 'loading' || that.loadingType == 'noMore') {
+					return
+				}
+				that.loadingType = 'loading'
+				groomList({
+					page: that.page,
+					limit: that.limit
+				}, 5).then(res => {
+					that.page++
+					that.list = that.list.concat(res.data.list)
+					if (res.data.list.length == that.limit) {
+						that.loadingType = 'more'
+					} else {
+						that.loadingType = 'noMore'
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		height: auto;
+		min-height: 100%;
+		background-color: #fff;
+	}
+
+	.good-list {
+		width: 750rpx;
+		background: #fff;
+		padding: 30rpx 0;
+
+		.good {
+			width: 690rpx;
+			height: 276rpx;
+			background: #FFFFFF;
+			box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+			border-radius: 10rpx;
+			margin: auto;
+			padding: 20rpx 15rpx;
+			margin-bottom: 20rpx;
+
+			&:last-of-type {
+				margin-bottom: 0rpx;
+			}
+
+			.good-img {
+				flex-shrink: 0;
+				width: 236rpx;
+				height: 236rpx;
+				border-radius: 10rpx;
+				margin-right: 22rpx;
+
+				image {
+					width: 236rpx;
+					height: 236rpx;
+					border-radius: 10rpx;
+				}
+			}
+
+			.good-info {
+				flex-grow: 1;
+				height: 100%;
+				flex-direction: column;
+				justify-content: space-between;
+				align-items: flex-start;
+
+				.good-name {
+					font-size: 32rpx;
+					font-weight: bold;
+					padding-top: 10rpx;
+					color: #333333;
+				}
+
+				.good-price {
+					width: 100%;
+
+					image {
+						width: 14rpx;
+						margin: 0 6rpx 0 10rpx;
+					}
+
+					.old-price {
+						.old-left {
+							font-size: 26rpx;
+							font-weight: 500;
+							text-decoration: line-through;
+							color: #999999;
+						}
+
+						.old-right {
+							font-size: 24rpx;
+							font-weight: bold;
+							color: #B59467;
+						}
+					}
+
+					.new-price {
+						width: 100%;
+						font-size: 36rpx;
+						font-weight: bold;
+						color: #FF4C4C;
+						justify-content: space-between;
+
+						.good-tip {
+							width: 137rpx;
+							height: 52rpx;
+							background: #01A6A8;
+							border-radius: 26rpx;
+							position: relative;
+							font-size: 26rpx;
+							font-weight: 500;
+							color: #FFFFFF;
+							line-height: 52rpx;
+							text-align: center;
+						}
+					}
+				}
+			}
+		}
+
+	}
+</style>

+ 12 - 17
pages/product/product.vue

@@ -47,12 +47,12 @@
 				</view>
 				<text class="iconfont iconenter"></text>
 			</view>
-			<view class="c-row b-b" v-if="goodsType == 1">
+			<!-- <view class="c-row b-b" v-if="goodsType == 1">
 				<text class="tit">限购数量</text>
 				<view class="con">
 					<text class="selected-text">{{ goodsObjact.num + goodsObjact.unit_name }}</text>
 				</view>
-			</view>
+			</view> -->
 			<!-- <view class="c-row b-b" v-if="goodsObjact.is_integral == 1 && goodsType == 0">
 				<text class="tit">积分</text>
 				<view class="bz-list con">
@@ -68,14 +68,14 @@
 		<!-- 底部操作菜单 -->
 		<view class="page-bottom" v-if="goodsType == 0">
 			<view class="action-btn-group">
-				<view class="shoucang flex" @click="toFavorite(goodsObjact)">
+				<view class="shoucang flex" @click="toFavorite(goodsObjact)" v-if="!isbd">
 					<image src="../../static/icon/sc-ico.png" mode=""></image>
 					<view class="">
 						收藏
 					</view>
 				</view>
 				<view class="buy-now">
-					<button type="primary" class=" action-btn no-border buy-now-btn" @click.stop="toggleSpec(2)" v-if="is_bk == 0 && is_xf ==0">加入购物车</button>
+					<button type="primary" class=" action-btn no-border buy-now-btn" @click.stop="toggleSpec(2)" v-if="isbd == 0">加入购物车</button>
 					<button type="primary" class=" action-btn no-border  add-cart-btn" @click.stop="toggleSpec(1)">立即购买</button>
 				</view>
 				
@@ -207,19 +207,15 @@ export default {
 				i: '', //分
 				s: '' //秒
 			},
-			is_bk: 0,
-			is_xf: 0,
+			isbd: 0,
 			goodIntegral: 0,//需要使用的积分
 		};
 	},
 	async onLoad(options) {
 		let obj = this;
-		if(options.is_bk) {
-			obj.is_bk = options.is_bk
+		if(options.isbd) {
+			obj.isbd = options.isbd
 		}
-		if(options.is_xf) {
-			obj.is_xf = options.is_xf
-		}
 		//保存商品id
 		this.goodsid = options.id;
 		// 判断有无人邀请
@@ -425,9 +421,6 @@ export default {
 				this.goodIntegral = data.integral
 				console.log(this.goodIntegral,'xuanz')
 			}
-			if(this.is_xf == 1) {
-				this.goodsNumberMax = 1
-			}
 		},
 		//分享
 		share() {
@@ -495,7 +488,7 @@ export default {
 					if (obj.type == 1) {
 						// 跳转到支付页
 						uni.navigateTo({
-							url: '/pages/order/createOrder?id=' + data.cartId + '&goodsType=' + obj.goodsType + '&is_xf=' + obj.is_xf + '&is_bk=' + obj.is_bk
+							url: '/pages/order/createOrder?id=' + data.cartId + '&goodsType=' + obj.goodsType + '&isbd=' + obj.isbd
 						});
 					}
 					if (obj.type == 2) {
@@ -1115,7 +1108,8 @@ page {
 		}
 	}
 	.action-btn-group {
-		display: flex;
+		display: flex;
+		width: 100%;
 		height: 98rpx;
 		overflow: hidden;
 		position: relative;
@@ -1134,7 +1128,8 @@ page {
 		}
 		.buy-now {
 			flex-grow: 1;
-			width: 650rpx;
+			// width: 650rpx;
+			width: 100%;
 			display: flex;
 		}
 		.action-btn {

+ 1 - 1
pages/public/forget.vue

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

+ 404 - 385
pages/public/login.vue

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

+ 12 - 10
pages/public/register.vue

@@ -1,9 +1,9 @@
 <template>
 	<view class="container">
 		<view class="container_text" >
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
+			<image class="banner-img" src="/static/img//bd-top.png" mode="scaleToFill"></image>
 		</view>
-		<view class="loginTitle"><text>注册</text></view>
+		<!-- <view class="loginTitle"><text>注册</text></view> -->
 		<view class="login_text">
 			<view class="login_input flex">
 				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
@@ -67,7 +67,7 @@ export default {
 				obj.$api.msg('请输入电话号码');
 				return;
 			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.phone)) {
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone)) {
 				obj.$api.msg('请输入正确的手机号');
 				return;
 			}
@@ -152,9 +152,11 @@ export default {
 </script>
 
 <style lang="scss">
-page {
-	height: 100%;
-}
+page {
+		background-color: #eaf8f2;
+		height: auto;
+		min-height: 100%;
+	}
 .container {
 	width: 100%;
 	height: 100%;
@@ -174,7 +176,7 @@ page {
 	position: relative;
 	padding: 100rpx 102rpx;
 	background-color: #ffffff;
-	margin-top: -180rpx;
+	// margin-top: -180rpx;
 	border-radius: 20rpx;
 	.login_input {
 		border-bottom: 1px solid #f0f0f0;
@@ -229,15 +231,15 @@ page {
 
 	.uni-button-green {
 		color: #ffffff;
-		background-color: #5dbc7c;
+		background-color: #52c696;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
 	}
 	.uni-button-green-plain {
-		border: 1px solid #5dbc7c;
+		border: 1px solid #52c696;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
-		color: #5dbc7c;
+		color: #52c696;
 		background-color: #ffffff;
 	}
 	.uni-button {

+ 20 - 13
pages/redirect/redirect.vue

@@ -94,20 +94,27 @@ export default {
 				// 用于处理缓存bug
 				if (ur=='pages/product/product') {
 					ur = '/pages/index/index'
+				}
+				if(!e.data.phone) {
+					uni.navigateTo({
+						url: '/pages/set/phone'
+					})
+				}else {
+					uni.switchTab({
+						url: ur,
+						fail(e) {
+							uni.navigateTo({
+								url: ur,
+								fail(e) {
+									uni.navigateTo({
+										url: '/pages/index/index',
+									});
+								}
+							});
+						}
+					});
 				}
-				uni.switchTab({
-					url: ur,
-					fail(e) {
-						uni.navigateTo({
-							url: ur,
-							fail(e) {
-								uni.navigateTo({
-									url: '/pages/index/index',
-								});
-							}
-						});
-					}
-				});
+				
 			}).catch((e) => {
 				uni.showModal({
 					title: '错误',

+ 1 - 1
pages/set/addressManage.vue

@@ -119,7 +119,7 @@ export default {
 				this.$api.msg('请填写收货人姓名');
 				return;
 			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(data.mobile)) {
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(data.mobile)) {
 				this.$api.msg('请输入正确的手机号码');
 				return;
 			}

+ 1 - 1
pages/set/password.vue

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

+ 141 - 5
pages/set/phone.vue

@@ -1,6 +1,35 @@
 <template>
-	<view class="container">
-		<view class="row b-b">
+	<view class="container">
+		<image src="../../static/img/bd-top.png" mode="widthFix" style="width: 750rpx;"></image>
+		<view class="login_text">
+			<view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/phone.png"></image></view>
+				<view class="login_name"><input class="uni-input" v-model="account" placeholder="请输入手机号" /></view>
+			</view>
+			<!-- <view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus placeholder="请输入密码" /></view>
+			</view> -->
+			<!-- <view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="repassword" focus placeholder="请重复输入密码" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/img07.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="text" v-model="invitation" focus placeholder="请输入邀请码" /></view>
+			</view> -->
+			<view class="login_input flex">
+				<view class="login_img"><image src="/static/icon//yzm.png"></image></view>
+				<view class="login_name flex">
+					<input class="uni-input width" v-model="captcha" placeholder="请输入验证码" />
+					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+				</view>
+			</view>
+		</view>
+		<view class="sb-btn" @click="loding ? '' : confirm()">
+			确认绑定
+		</view>
+		<!-- <view class="row b-b">
 			<text class="tit">手机号</text>
 			<input class="input" v-model="account" type="text" placeholder="请填写手机号" placeholder-class="placeholder" />
 		</view>
@@ -11,7 +40,7 @@
 				<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 			</view>
 			<button class="add-btn" :class="{ 'bg-gray': loding }" @click="loding ? '' : confirm()">提交</button>
-		</view>
+		</view> -->
 	</view>
 </template>
 
@@ -48,6 +77,12 @@ export default {
 			this.account = this.userInfo.phone;
 			this.show = false;
 		}
+	},
+	onBackPress() {
+		// uni.switchTab({
+		// 	url: '/pages/user/user'
+		// })
+		return true
 	},
 	methods: {
 		//发送验证码
@@ -57,7 +92,7 @@ export default {
 				this.$api.msg('请输入电话号码');
 				return;
 			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.account)) {
 				this.$api.msg('请输入正确的手机号');
 				return;
 			}
@@ -107,7 +142,9 @@ export default {
 
 <style lang="scss">
 page {
-	background: $page-color-base;
+	background: #e9f8f2;
+	min-height: 100%;
+	height: auto;
 }
 .row {
 	display: flex;
@@ -157,5 +194,104 @@ page {
 	width: 150rpx;
 	flex-shrink: 0;
 	text-align: center;
+}
+.login_text {
+	margin: auto 30rpx;
+	position: relative;
+	padding: 100rpx 102rpx;
+background: #e9f8f2;
+	// margin-top: -180rpx;
+	border-radius: 20rpx;
+	.login_input {
+		border-bottom: 1px solid #eee;
+		margin-bottom: 65rpx;
+		justify-content: flex-start;
+		.login_img image {
+			height: 35rpx;
+			width: 29rpx;
+			margin-right: 20rpx;
+		}
+		.uni-input {
+			text-align: left;
+			// width: 470rpx;
+			max-width: 470rpx;
+			flex-grow: 1;
+			font-size: 28rpx !important;
+		}
+		.login_name {
+			color: #333333;
+		}
+	}
+
+	.other {
+		margin-top: 60rpx;
+		.fenge {
+			width: 30%;
+			height: 2rpx;
+			background-color: #eeeeee;
+		}
+		.qita {
+			font-size: 28rpx;
+			color: #999999;
+		}
+	}
+	.weixin {
+		width: 75rpx;
+		height: 75rpx;
+		margin: 25rpx auto;
+	}
+	.weixin image {
+		width: 100%;
+		height: 100%;
+	}
+	.weixin_text {
+		text-align: center;
+		font-size: 28rpx;
+		color: #999999;
+	}
+	.forget {
+		font-size: 28rpx;
+		width: 100%;
+		text-align: right;
+		color: #999999;
+	}
+
+	.uni-button-green {
+		color: #ffffff;
+		background-color: #5dbc7c;
+		margin: 40rpx 10rpx;
+		border-radius: 50rpx;
+	}
+	.uni-button-green-plain {
+		border: 1px solid #5dbc7c;
+		margin: 40rpx 10rpx;
+		border-radius: 50rpx;
+		color: #5dbc7c;
+		background-color: #ffffff;
+	}
+	.uni-button {
+		height: 85rpx;
+		line-height: 85rpx;
+	}
+}
+.code {
+	color: #5dbc7c;
+	font-size: 23rpx;
+	border-left: 1px solid #eeeeee;
+	width: 150rpx;
+	flex-shrink: 0;
+	text-align: center;
+}
+.sb-btn {
+	width: 550rpx;
+	height: 90rpx;
+	line-height: 90rpx;
+	background: #52C696;
+	border-radius: 10rpx;
+	font-size: 34rpx;
+	font-weight: 400;
+	color: #FFFFFF;
+	margin: auto;
+	text-align: center;
 }
 </style>

+ 0 - 10
pages/set/userinfo.vue

@@ -18,16 +18,6 @@
 		</view> -->
 		<view class="add-btn" @click="confirm">保存修改</view>
 		<view class="add-btn out-btn" @click="cancel" style="margin-top: 20rpx;">退出</view>
-		<uni-popup ref="popup" type="center">
-			<view class="psw-wrapper">
-				<view class="psw-title">请输入自己的账户</view>
-				<input type="text" v-model="password" class="psw-ipt" />
-				<view class="psw-btn">
-					<text @click.stop="qx">取消</text>
-					<text class="psw-qd" @click.stop="pswQd">确定</text>
-				</view>
-			</view>
-		</uni-popup>
 	</view>
 </template>
 

+ 447 - 440
pages/user/award.vue

@@ -1,442 +1,449 @@
-<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/tg-bg.png" mode=""></image></view>
-			<view class="money-box">
-				<view class="money">{{ userInfo.brokerage_price || 0 }}</view>
-				<!-- <view>我的佣金</view> -->
-			</view>
-			<view class="moneybtn-box" style="padding-top: 30rpx;">
-				<view class="money-btn" @click="navto('/pages/user/yjzz')">佣金转账</view>
-				<view class="money-btn" @click="navto('/pages/user/yjzye')">佣金转余额</view>
-				<view class="money-btn" @click="navto('/pages/user/withdrawal')">佣金提现</view>
-			</view>
-		</view>
-		<view class="info-box flex">
-			<view class="info-item">
-				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge || '0'}}</view>
-			</view>
-			<view class="shu"></view>
-			<view class="info-item">
-				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum || '0'}}</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: height }" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<scroll-view scroll-y="true" class="list-scroll-content" @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>
-						</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 {
-		mapState,
-		mapMutations
-	} from 'vuex';
-import { getCommissionInfo } from '@/api/user.js';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { mapGetters } from 'vuex';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-import {extractBank} from '@/api/wallet.js'
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	computed: {
-		...mapState('user',['userInfo'])
-	},
-	onReady(res) {
-		var _this = this;
-		console.log(_this.userInfo)
-		uni.getSystemInfo({
-			success: resu => {
-				const query = uni.createSelectorQuery();
-				query.select('.swiper-box').boundingClientRect();
-				query.exec(function(res) {
-					_this.height = resu.windowHeight - res[0].top + 'px';
-					console.log('打印页面的剩余高度', _this.height);
-				});
-			},
-			fail: res => {}
-		});
-	},
-	data() {
-		return {
-			yj: '',
-			height: '',
-			// 头部图高度
-			maxheight: '',
-			tabCurrentIndex: 0,
-			orderStatusSum: 0,
-			recharge: 0,
-			navList: [
-				// {
-				// 	state: 0,
-				// 	text: '全部',
-				// 	loadingType: 'more',
-				// 	orderList: [],
-				// 	page: 1, //当前页数
-				// 	limit: 10 //每次信息条数
-				// },
-				{
-					state: 0,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.extractBank()
-		this.loadData();
-	},
-	methods: {
-		extractBank() {
-			extractBank().then(res => {
-				console.log(res)
-				this.yj = res.data.commissionCount
-			})
-		},
-		toBack() {
-			uni.switchTab({
-				url: '/pages/user/user'
-			});
-		},
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		//获取收入支出信息
-		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';
-
-			getCommissionInfo({
-				page: navItem.page,
-				limit: navItem.limit,
-				pm: state
-			})
+<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/tg-bg.png" mode=""></image></view>
+			<view class="money-box">
+				<view class="money">{{ yj || 0 }}</view>
+				<view>我的奖金</view>
+			</view>
+			<view class="moneybtn-box">
+				<view class="money-btn"></view>
+				<view class="money-btn" @click="navto('/pages/user/withdrawal')">奖金提现</view>
+				<!-- <view class="money-btn"></view> -->
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">{{sr || '0'}}</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">累计支出</view>
+				<view class="info-num">{{zc || '0'}}</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: height }" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view>
+						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+							<view class="title-box">
+								<view class="title">
+									<text>{{ item.title }}</text>
+								</view>
+								<view class="time">
+									<text>{{ item.add_time }}</text>
+								</view>
+							</view>
+							<view class="money">
+								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
+							</view>
+						</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 {
+		mapState,
+		mapMutations
+	} from 'vuex';
+import { getCommissionInfo,getUser,brokerageList } from '@/api/user.js';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import { mapGetters } from 'vuex';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+import { spreadCommission, userBalance,extractBank } from '@/api/wallet.js';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	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.height = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	data() {
+		return {
+			userInfo: {},
+			yj: '',
+			height: '',
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			orderStatusSum: 0,
+			recharge: 0,
+			navList: [
+				// {
+				// 	state: 0,
+				// 	text: '全部',
+				// 	loadingType: 'more',
+				// 	orderList: [],
+				// 	page: 1, //当前页数
+				// 	limit: 10 //每次信息条数
+				// },
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				}
+			],
+			money: ''
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.extractBank()
+		this.getUserInfo()
+		
+	},
+	methods: {
+		getUserInfo() {
+			getUser({}).then(({ data }) => {
+				console.log(data,'data')
+				this.userInfo = data
+				this.loadData();
+			});
+		},
+		extractBank() {
+			extractBank().then(res => {
+				console.log(res)
+				this.yj = res.data.brokerage_price
+			})
+		},
+		toBack() {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+		},
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		},
+		//获取收入支出信息
+		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';
+			// alert(obj.userInfo.vip)
+			console.log(obj.userInfo)
+			brokerageList({
+				page: navItem.page,
+				limit: navItem.limit,
+				uid: obj.userInfo.uid
+			},state)
 				.then(({ data }) => {
-					obj.recharge = data.sr
-					obj.orderStatusSum = data.zc
-					navItem.orderList = navItem.orderList.concat(data.list)
-					navItem.page++
-					if(navItem.limit == data.list.length) {
-							navItem.loadingType = 'more';
-					}else {
-						navItem.loadingType = 'noMore'
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #f1f1f1;
-	height: 100%;
-}
-.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;
-	/* #ifdef H5 */
-	padding-top: 90rpx;
-	/* #endif */
-	color: #ffffff;
-	text-align: center;
-	/* #ifdef APP-PLUS */
-	height: 200rpx;
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	/* #endif */
-	/* #ifdef MP-WEIXIN */
-	padding-top: 40rpx;
-	/* #endif */
-
-	.money {
-		font-size: 72rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-	.text {
-		font-size: 30rpx;
-	}
-}
-.moneybtn-box {
-	display: flex;
-	justify-content: space-between;
-	position: relative;
-	z-index: 2;
-	color: #ffffff;
-	padding: 0rpx 50rpx;
-	font-size: 30rpx;
-	font-family: PingFang SC;
-	font-weight: bold;
-	color: #ffffff;
-}
-
-.navbar {
-	margin-top: 20rpx;
-	display: flex;
-	height: 88rpx;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: #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;
-}
+					obj.sr = data.general_income;
+					obj.zc = data.general_expend;
+					navItem.orderList = navItem.orderList.concat(data.list)
+					//判断是否还有数据, 有改为more, 没有改为noMore
+					if (navItem.limit == data.list.length) {
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+			this.loadData('tabChange');
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f1f1f1;
+	height: 100%;
+}
+.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;
+	/* #ifdef H5 */
+	padding-top: 90rpx;
+	/* #endif */
+	color: #ffffff;
+	text-align: center;
+	/* #ifdef APP-PLUS */
+	height: 200rpx;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	/* #endif */
+	/* #ifdef MP-WEIXIN */
+	padding-top: 40rpx;
+	/* #endif */
+
+	.money {
+		font-size: 72rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+	.text {
+		font-size: 30rpx;
+	}
+}
+.moneybtn-box {
+	display: flex;
+	justify-content: space-between;
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding: 0rpx 50rpx;
+	font-size: 30rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #ffffff;
+}
+
+.navbar {
+	margin-top: 20rpx;
+	display: flex;
+	height: 88rpx;
+	padding: 0 5px;
+	background: #fff;
+	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+	position: relative;
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #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>

+ 20 - 23
pages/user/jf.vue

@@ -5,21 +5,21 @@
 				<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 class="header">报单币</view>
 				</view>
-				<view class="content-bg"><image src="../../static/img/tg-bg.png" mode=""></image></view>
+				<view class="content-bg"><image src="../../static/img/tg-bg1.png" mode=""></image></view>
 				<view class="money-box">
-					<view class="money">{{ userInfo.integral | getMoneyStyle }}</view>
-					<view>积分</view>
+					<view class="money">{{ userInfo.tickets | getMoneyStyle }}</view>
+					<view>报单币</view>
 				</view>
 				<view class="moneybtn-box">
 					<!-- <view class="money-btn" style="text-decoration: underline;" @click="navto('/pages/money/freeze')">冻结记录</view> -->
 					<view class="money-btn" style="text-decoration: underline;"></view>
-					<view class="money-btn" ></view>
+					<view class="money-btn" @click="navto('/pages/user/yjzz?type=2')">转给好友</view>
 				</view>
 			</view>
 		</view>
-		<!-- <view class="info-box flex">
+		<view class="info-box flex">
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
@@ -30,10 +30,10 @@
 				<view class="info-font">累计支出</view>
 				<view class="info-num">{{ zc }}</view>
 			</view>
-		</view> -->
-<!-- 		<view class="navbar">
+		</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> -->
+		</view>
 		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab" disable-touch>
 			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
 				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
@@ -44,7 +44,7 @@
 					<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>
+								<text>{{ item.title }}</text>
 							</view>
 							<view class="time">
 								<text>{{ item.add_time }}</text>
@@ -67,7 +67,8 @@ import { mapState, mapMutations } from 'vuex';
 import { getMoneyStyle } from '@/utils/rocessor.js';
 import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
 import empty from '@/components/empty';
-import { getUserInfo } from '@/api/user.js';
+import { getUserInfo,ticketsList } from '@/api/user.js';
+import { userInfo } from 'os';
 export default {
 	filters: {
 		getMoneyStyle
@@ -159,22 +160,19 @@ export default {
 			//修改当前对象状态为加载中
 			navItem.loadingType = 'loading';
 
-			integral(
+			ticketsList(
 				{
 					page: navItem.page,
 					limit: navItem.limit,
-					pm: navItem.state
-				}
+					uid: obj.userInfo.uid
+				},
+				state
 			)
 				.then(({ data }) => {
 					console.log(data, '123456');
-					obj.sr = data.sr;
-					obj.zc = data.zc;
-					if (data.list.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data.list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}
+					obj.sr = data.general_income;
+					obj.zc = data.general_expend;
+					navItem.orderList = navItem.orderList.concat(data.list)
 					//判断是否还有数据, 有改为more, 没有改为noMore
 					if (navItem.limit == data.list.length) {
 						navItem.loadingType = 'more';
@@ -329,7 +327,7 @@ page {
 				transform: translateX(-50%);
 				width: 44px;
 				height: 0;
-				border-bottom: 2px solid rgba(154, 94, 25, 1);
+				border-bottom: 2px solid #ffac0e;
 			}
 		}
 	}
@@ -338,7 +336,6 @@ page {
 //列表
 
 .swiper-box {
-	margin-top: 20rpx;
 	.order-item {
 		padding: 20rpx 30rpx;
 		line-height: 1.5;

+ 315 - 274
pages/user/shareQrCode.vue

@@ -1,106 +1,104 @@
 <template>
-	<view class="andr-shQ-padL30 andr-shQ-padR30 andr-shQ-Flex andr-shQ-FlexDirC">
-		<view class="andr-shQ-w100B andr-shQ-Flex andr-shQ-JusCC">
-			<swiper class="imgw750h375 matop" :indicator-dots="false" :current="current" @change="currentChange">
-				<!-- #ifdef H5 -->
-				<swiper-item v-for="(item, index) in rwmListArr" :key="index">
-					<image :src="item.wap_poster" mode="aspectFit" class="imgw750h375" />
-				</swiper-item>
-				<!-- #endif -->
-				<!-- #ifdef MP-WEIXIN -->
-				<swiper-item v-for="(item, index) in rwmListArr" :key="index">
-					<image :src="item.poster" mode="aspectFit" class="imgw750h375" />
-				</swiper-item>
-				<!-- #endif -->
-
-			</swiper>
+	<view class="main">
+		<view class="qrimg">
+			<tki-qrcode :cid="cid" ref="qrcode" :val="val" :size="size" :unit="unit" :background="background"
+				:foreground="foreground" :pdground="pdground" :icon="icon" :iconSize="iconSize" :lv="lv" :onval="onval" :showLoading="showLoading"
+				:loadMake="loadMake" :usingComponents="usingComponents" @result="qrR" />
 		</view>
-		<!-- <view class="baocun" @click="comfirm(userInfo.uid+'')">复制邀请码</view> -->
-		<!-- #ifdef H5 -->
-		<!-- <view class="baocun">长按二维码保存图片</view> -->
-
-		<!-- #endif -->
-		<!-- #ifdef MP-WEIXIN -->
-		<view class="baocun" @click="seav">保存分享海报</view>
-		<!-- <button open-type="share" class="baocun btn" v-if="scLoading == 2">分享到微信</button> -->
-		<!-- #endif -->
+		<!-- 		<view class="qrcode-wrapper">
+			<image class="qrcode-save__image" :src="shareQrcodeUrl" mode="aspectFit"></image>
+			<view class="qrcode-save__btn">
+				
+			</view>
+		</view> -->
+		<!-- <canvas :style="{ width: canvasW + 'px', height: canvasH + 'px',}" canvas-id="myCanvas" id="myCanvas"></canvas> -->
+		<canvas :style="{ width:  '600rpx', height: '1066rpx',}" canvas-id="myCanvas" id="myCanvas" class="hb"></canvas>
+		<!-- <view class="" v-if="fina">
+			<button text="保存图片" @click="saveShareQrcode">保存图片</button>
+		</view>
+		<view class="" v-if="fina">
+			<button text="保存图片" @click="saveShareQrcode">分享链接</button>
+		</view> -->
+		<!-- <view class="btm-btn" v-if="fina">
+			<view class="btn" @click="comfirm">
+				<image src="../../static/icon/fzlj.png" mode=""></image>
+				<view class="">
+					复制邀请链接
+				</view>
+			</view>
+			<view class="btn" @click="saveShareQrcode">
+				<image src="../../static/icon/fxhb.png" mode=""></image>
+				<view class="">
+					保存分享海报
+				</view>
+			</view>
+		</view> -->
 	</view>
 </template>
+
 <script>
 	import {
-		mapState
+		mapState,
+		mapMutations
 	} from 'vuex';
 	import {
-		spreadBanner
+		getUserInfo
 	} from '@/api/user.js';
-	import {
-		interceptor,
-		saveUrl
-	} from '@/utils/loginUtils';
-	// #ifdef H5
-	import {
-		weixindata
-	} from '@/utils/wxAuthorized';
-	// #endif
+
+	var that
 	export default {
 		data() {
 			return {
-				rwmListArr: [],
-				current: 0,
-				imgSrc: ''
-			};
-		},
-		onLoad(option) {
-			uni.showLoading({
-				title: '邀请图生成中',
-				mask: true
-			});
-			// 判断是否强制登录
-			this.loadCodeList();
-			// #ifdef MP-WEIXIN
-			uni.authorize({
-				scope: 'scope.writePhotosAlbum',
-				complete() {}
-			});
-			// #endif
-		},
-		onShow() {
-			if (this.loginInterceptor && !this.hasLogin) {
-				saveUrl();
-				// 登录拦截
-				interceptor();
+				cid: 'tki-qrcode-canvas', //canvasId,页面存在多个二维码组件时需设置不同的ID
+				size:300, //生成的二维码大小
+				unit: 'upx', //大小单位尺寸
+				// show: true,//默认使用组件中的image标签显示二维码
+				val: '', //要生成的内容
+				background: '#ffffff', //二维码背景色
+				foreground: '#333333', //二维码前景色
+				pdground: '#333333', //二维码角标色
+				icon: '', //二维码图标URL(必须是本地图片,网络图需要先下载至本地)
+				iconSize: 40, //二维码图标大小
+				lv: 3, //容错级别
+				onval: true, //监听val值变化自动重新生成二维码
+				loadMake: true, //组件初始化完成后自动生成二维码,val需要有值
+				usingComponents: false, //是否使用了自定义组件模式(主要是为了修复非自定义组件模式时 v-if 无法生成二维码的问题)
+				showLoading: false, //是否显示loading
+
+				erweimasrc: '',
+				canvasW: 0, // 画布宽
+				canvasH: 0, // 画布高
+				SystemInfo: {}, // 设备信息
+				goodsImg: {}, // 商品主图
+				ewmImg: {}, // 二维码图片
+				ewmW: 0, // 二维码大小
+				title: '', // 商品标题
+				canvasShow: true,
+				shareQrcodeUrl: '', //canvas本地路径
+				ratio: '', //画布比例
+				fina: false,
 			}
 		},
-		//下拉刷新
-		onPullDownRefresh() {
-			let obj = this;
-			//监听下拉刷新动作的执行方法,每次手动下拉刷新都会执行一次
-			setTimeout(function() {
-				obj.loadCodeList();
-				uni.stopPullDownRefresh(); //停止下拉刷新动画
-			}, 1000);
-		},
 		computed: {
-			...mapState(['weichatObj', 'baseURL', 'urlFile']),
+			...mapState(['baseURL', 'urlFile']),
 			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
 		},
-		methods: {
-			comfirm(text) {
-				// let text = this.userInfo.uid
-				console.log(text);
-				const result = this.uniCopy(text);
-				if (result === false) {
-					uni.showToast({
-						title: '不支持'
+		onLoad(options) {
+			const obj = this;
+			if (!this.userInfo.uid) {
+				getUserInfo({}).then(e => {
+					// 保存返回用户数据
+					obj.setUserInfo(e.data);
+					//成功跳转首页
+					uni.switchTab({
+						url: '/pages/index/index'
 					});
-				} else {
-					uni.showToast({
-						title: '复制成功',
-						icon: 'none'
-					});
-				}
-				// this.$refs.popup.close();
-			},
+				});
+			} else {
+				this.val = 'http://store.manyuanchunjia.com/index/#/pages/index/index?spread=' + this.userInfo.uid
+			}
+		},
+		methods: {
 			uniCopy(content) {
 				/**
 				 * 小程序端 和 app端的复制逻辑
@@ -114,7 +112,7 @@
 					}
 				});
 				//#endif
-
+			
 				/**
 				 * H5端的复制逻辑
 				 */
@@ -135,211 +133,254 @@
 				return result;
 				// #endif
 			},
-			loadCodeList() {
-				let self = this;
-				// 加载二维码信息
-				// let andrUid = uni.getStorageSync('andrUid')||'';
-				spreadBanner({
-					// #ifdef H5
-					type: 2,
-					// #endif
-					// #ifdef MP
-					type: 1,
-					// #endif
-				}).then(e => {
-					if (e.status == 200) {
-						console.log(e.data)
-						self.rwmListArr = e.data;
-						// #ifdef H5
-						self.imgSrc = self.rwmListArr[0].wap_poster;
-						// #endif
-						// #ifdef MP-WEIXIN
-						self.imgSrc = self.rwmListArr[0].poster;
-						// #endif
-					}
-					uni.hideLoading();
-				});
+			comfirm() {
+				const result = this.uniCopy(this.val);
+				if (result === false) {
+					uni.showToast({
+						title: '不支持'
+					});
+				} else {
+					uni.showToast({
+						title: '复制成功',
+						icon: 'none'
+					});
+				}
 			},
-			currentChange(e) {
-				this.current = e.detail.current;
+			qrR(res) {
+				this.erweimasrc = res
+				console.log(res, 'erweima');
+				this.createPoster()
 			},
-			// onShareAppMessage(options){
-			// 	console.log(options,'options')
-			// 	let userInfo = uni.getStorageSync('userInfo');
-			// 	console.log(userInfo)
-			//   let obj = this;
-			//   // 设置菜单中的转发按钮触发转发事件时的转发内容
-			//   let shareObj = {
-			//     title: "邀请好友领券",        // 默认是小程序的名称(可以写slogan等)
-			//     path: '/pages/index/index?spread='+userInfo.uid,        // 默认是当前页面,必须是以‘/’开头的完整路径
-			//     imageUrl: obj.imgSrc,
-			//     success: function(res){
-			//       // 转发成功之后的回调
-			//       if(res.errMsg == 'shareAppMessage:ok'){
-			//       }
-			//     },
-			//     fail: function(){
-			//       // 转发失败之后的回调
-			//       if(res.errMsg == 'shareAppMessage:fail cancel'){
-			//         // 用户取消转发
-			//       }else if(res.errMsg == 'shareAppMessage:fail'){
-			//         // 转发失败,其中 detail message 为详细失败信息
-			//       }
-			//     }
-			//   };
-			//   // 来自页面内的按钮的转发
-			//   if( options.from == 'button' ){
-			//     // 此处可以修改 shareObj 中的内容
-			//     shareObj.path = '/pages/index/index?spread='+userInfo.uid;
-			//         console.log(shareObj.path,'shareObj.path')
-			//   }
-			//   // 返回shareObj
-			//   return shareObj;
-			// },
-			// scClick() {
-			// 	let self = this;
-			// 	// #ifdef H5
-			// 	self.imgSrc = self.rwmListArr[self.current].wap_poster;
-			// 	// #endif
-			// 	// #ifdef MP-WEIXIN
-			// 	self.imgSrc = self.rwmListArr[self.current].poster;
-			// 	// #endif
-			// },
-			// #ifdef MP-WEIXIN
-			seav() {
-				uni.getImageInfo({
-					src: this.imgSrc,
-					complete: function(result) {
-						let path = result.path;
-						uni.getSetting({
-							success(res) {
-								console.log(res)
-								if (!res.authSetting['scope.writePhotosAlbum']) {
-									uni.authorize({
-										scope: 'scope.writePhotosAlbum',
-										success(res) {
-											uni.saveImageToPhotosAlbum({
-												filePath: path,
-												complete(result) {}
-											});
-										},
-										complete(result) {
-											uni.showToast({
-												title: '请先授权保存图片',
-												duration: 2000,
-												icon: 'none'
-											});
-											obj.seav();
-										}
-									})
-								} else {
-									uni.saveImageToPhotosAlbum({
-										filePath: path,
-										complete(result) {
-											uni.showToast({
-												title: '保存图片成功!',
-												duration: 2000,
-												icon: 'none'
-											});
-										}
-									});
-								}
-							}
-						});
-					}
-				});
-			}
-			// #endif
-		}
-	};
-</script>
-
-<style lang="scss">
-	page {
-		height: 100%;
-	}
-	.imgw750h375 {
-		width: 100%;
-		height: 958rpx;
-	}
-
-	.matop {
-		// margin-top: 40rpx;
-	}
-
-	.andr-shQ-padL30 {
-		// padding-left: 30rpx;
-	}
+			async createPoster() {
+				let that = this
+				// 获取设备信息,主要获取宽度,赋值给canvasW 也就是宽度:100%
+				this.SystemInfo = await this.getSystemInfo();
+				// 获取商品主图,二维码信息,APP端会返回图片的本地路径(H5端只能返回原路径)
+				this.goodsImg = await this.getImageInfo('/static/img/sharebase.png');
+				this.ewmImg = await this.getImageInfo(this.erweimasrc);
+				// this.canvasW = this.SystemInfo.windowWidth; // 画布宽度
+				this.ratio = this.SystemInfo.windowWidth / 750;
+				this.canvasW = 600 * this.ratio;
+				this.canvasH = 1066 * this.ratio;
+				this.ewmW = 250 * this.ratio;
+				console.log(this.canvasH, 'this.canvasH')
+				// this.canvasH = this.goodsImg.height + this.ewmW + 200;  // 画布高度 = 主图高度+二维码高度 + 文字图片的间距(大概50)
 
-	.andr-shQ-padR30 {
-		// padding-right: 30rpx;
-	}
+				// 如果主图,二维码图片,设备信息都获取成功,开始绘制海报,这里需要用setTimeout延时绘制,否则可能会出现图片不显示。
+				if (this.goodsImg.errMsg == 'getImageInfo:ok' && this.ewmImg.errMsg == 'getImageInfo:ok' && this
+					.SystemInfo.errMsg == 'getSystemInfo:ok') {
+					console.log('ok')
+					uni.showToast({
+						icon: 'loading',
+						mask: true,
+						duration: 10000,
+						title: '海报绘制中',
+					});
+					setTimeout(() => {
+						var ctx = uni.createCanvasContext('myCanvas', this);
+						// 填充背景色,白色
+						ctx.setFillStyle('#fff'); // 默认白色
+						ctx.fillRect(0, 0, this.canvasW, this.canvasH) // fillRect(x,y,宽度,高度)
 
-	.andr-shQ-Flex {
-		// display: flex;
-	}
+						// 绘制商品主图,二维码
+						ctx.drawImage(this.goodsImg.path, 0, 0, this.canvasW, this
+							.canvasH) // drawImage(图片路径,x,y,绘制图像的宽度,绘制图像的高度)
+						ctx.drawImage(this.ewmImg.path, (this.canvasW / 2 - this.ewmW / 2),this.canvasH - 85*this.ratio - this.ewmW,
+							this.ewmW, this.ewmW) // drawImage(图片路径,x,y,绘制图像的宽度,绘制图像的高度,二维码的宽,高)
 
-	.andr-shQ-FlexDirC {
-		flex-direction: column;
-	}
+						// 3、绘制商品标题,多余文字自动换行
+						ctx.setFontSize(16); // setFontSize() 设置字体字号
+						ctx.setFillStyle('#333'); // setFillStyle() 设置字体颜色
 
-	.andr-shQ-w100B {
-		// width: 100%;
-	}
+						/* str 这段代码是我百度找的,参考别人的。canvas不能自动换行,需要自行计算 */
+						// let _strlineW = 0;
+						// let _strLastIndex = 0; //每次开始截取的字符串的索引
+						// let _strHeight = this.canvasW +20; //绘制字体距离canvas顶部的初始高度
+						// let _num = 1;
+						// for (let i = 0; i < this.title.length; i++) {
+						// 	_strlineW += ctx.measureText(this.title[i]).width;
+						// 	if (_strlineW > this.canvasW-155) {
+						// 		if(_num == 2 && 2){
+						// 			//文字换行数量大于二进行省略号处理
+						// 			ctx.fillText(this.title.substring(_strLastIndex, i-5)+'...', 40, _strHeight);
+						// 			_strlineW = 0;
+						// 			_strLastIndex = i;
+						// 			_num++;
+						// 			break;
+						// 		}else{
+						// 			ctx.fillText(this.title.substring(_strLastIndex, i), 40, _strHeight);
+						// 			_strlineW = 0;
+						// 			_strHeight += 20;
+						// 			_strLastIndex = i;
+						// 			_num++;
+						// 		}
+						// 	}else if (i == this.title.length - 1) {
+						// 		ctx.fillText(this.title.substring(_strLastIndex, i + 1), 40, _strHeight);
+						// 		_strlineW = 0;
+						// 	}
+						// }
+						/* end */
 
-	.andr-shQ-JusCC {
-		justify-content: center;
-	}
+						// ctx.setFontSize(16) // 字号
+						// ctx.setFillStyle('#e31d1a') // 颜色
+						// ctx.fillText('¥'+this.price, 10, this.canvasW +75); // (文字,x,y)
+						// ctx.setFontSize(12)
+						// ctx.setFillStyle('#b8b8b8')
+						// ctx.fillText('原价¥'+this.Oldprice, 100, this.canvasW +75);
 
-	.andr-shQ-marginT30 {
-		// margin-top: 30rpx;
-	}
 
-	.andr-shQ-bgc06B163 {
-		background-color: $base-color;
-	}
+						// 邀请信息
+						// ctx.setFontSize(16)
+						// ctx.setFillStyle('#333')
+						// ctx.fillText('长按二维码立即预约', this.ewmW + 40, this.canvasW +100);
 
-	.andr-shQ-cFFF {
-		color: #ffffff;
-	}
+						// ctx.setFontSize(16)
+						// ctx.setFillStyle('#333')
+						// ctx.fillText('分享自小程序', this.ewmW + 40, this.canvasW +120);
+						ctx.draw(false, (ret) => { // draw方法 把以上内容画到 canvas 中。
+							console.log(ret)
+							uni.showToast({
+								icon: 'none',
+								title: '生成成功!',
+							});
+							that.fina = true
+							uni.canvasToTempFilePath({ // 保存canvas为图片
+								canvasId: 'myCanvas',
+								quality: 1,
+								fileType: 'jpg',
+								complete: function(res) {
+									// 在H5平台下,tempFilePath 为 base64, // 图片提示跨域 H5保存base64失败,APP端正常输出临时路径
+									console.log(res)
+									that.canvasShow = false
+									that.shareQrcodeUrl = res.tempFilePath
+									that.$forceUpdate()
+									setTimeout(function() {
+										console.log(that.shareQrcodeUrl, that
+											.canvasShow)
+									}, 2000)
+								},
+							})
+						});
+					}, 1500)
+				} else {
+					console.log('err')
+				}
+			},
+			// 获取图片信息
+			getImageInfo(image) {
+				return new Promise((req, rej) => {
+					uni.getImageInfo({
+						src: image,
+						success: function(res) {
+							req(res)
+						},
+					});
+				})
+			},
 
-	.andr-shQ-bdR50 {
-		border-radius: 50rpx;
+			// 获取设备信息
+			getSystemInfo() {
+				return new Promise((req, rej) => {
+					uni.getSystemInfo({
+						success: function(res) {
+							req(res)
+						}
+					});
+				})
+			},
+			//保存图片
+			saveShareQrcode() {
+				console.log(this.shareQrcodeUrl)
+				uni.saveImageToPhotosAlbum({
+					filePath: this.shareQrcodeUrl,
+					success: (res) => {
+						uni.showToast({
+							icon: 'none',
+							position: 'bottom',
+							title: "成功保存到相册",
+						});
+					},
+					fail: (err) => {
+						//重新提示用户打开保存图片的授权
+						if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
+							uni.showModal({
+								title: '提示',
+								content: '需要您授权保存相册',
+								showCancel: false,
+								success(res) {
+									if (res.confirm) {
+										uni.openSetting({
+											success(settingdata) {
+												if (settingdata.authSetting[
+														'scope.writePhotosAlbum']) {
+													uni.showModal({
+														title: '提示',
+														content: '获取权限成功,再次保存图片即可成功',
+														showCancel: false,
+													})
+												} else {
+													uni.showModal({
+														title: '提示',
+														content: '获取权限失败,无法保存到相册',
+														showCancel: false
+													})
+												}
+											}
+										})
+									}
+								}
+							})
+						}
+					},
+				})
+			}
+		}
 	}
+</script>
 
-	.andr-shQ-h86 {
-		height: 86rpx;
+<style lang="scss">
+	.hb {
+		margin: auto;
 	}
-
-	.andr-shQ-AIC {
-		align-items: center;
+	.qrimg {
+		position: absolute;
+		left: -9999rpx;
+		top: -9999rpx;
 	}
 
-	.baocun {
-		color: #ffffff;
-		background: $base-color;
+	button {
+		height: 88upx;
+		background-color: #feca00;
+		color: #fff;
+		border-radius: 44upx;
 		text-align: center;
-		width: 80%;
-		margin: 50rpx auto;
-		font-size: 28rpx;
-		padding: 25rpx 0rpx;
-		border-radius: 50rpx;
-	}
-
-	.btn {
-		padding: 0rpx 0rpx !important;
-		margin: 0rpx auto;
-		margin-bottom: 100rpx;
+		line-height: 88upx;
+		width: 60%;
+		margin: 0 auto;
+		margin-top: 30upx;
 	}
-
-	/* #ifdef H5 */
-	.cbnagan {
-		width: 80%;
-		background: $base-color;
-		margin: 50rpx auto;
-		font-size: 28rpx;
-		text-align: center;
+	
+	.btm-btn {
+		position: fixed;
+		bottom: 0;
+		width: 750rpx;
+		height: 200rpx;
+		display: flex;
+		background-color: #fff;
+		border-radius: 20rpx 20rpx 0 0;
+		.btn {
+			width: 50%;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			font-size: 26rpx;
+			
+			image {
+				width: 66rpx;
+				height: 66rpx;
+				margin-bottom: 20rpx;
+			}
+		}
 	}
-
-	/* #endif */
 </style>

+ 4 - 4
pages/user/team.vue

@@ -22,7 +22,7 @@
 				<view style="flex-grow: 1;">总业绩:{{total_count}}</view>
 			</view> -->
 		</view>
-		<view class="flex buttom-box">
+		<!-- <view class="flex buttom-box">
 			<view class="buttom"  @click="tabClick(0)">
 				<view class="money">{{all || 0}}</view>
 				<text class="text" :class="{ current: tabCurrentIndex === 0 }">一级推广</text>
@@ -31,9 +31,9 @@
 				<view class="money">{{totalLevel || 0}}</view>
 				<text class="text" :class="{ current: tabCurrentIndex === 1 }">我的团队</text>
 			</view>
-		</view>
+		</view> -->
 		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300"
-			@change="changeTab">
+			@change="changeTab" disable-touch>
 			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
 				<scroll-view class="list-scroll-content" :style="{ height: maxheight }" scroll-y
 					@scrolltolower="loadData">
@@ -52,7 +52,7 @@
 									<text>{{ item.phone }}</text>
 								</view>
 								<view class="time">
-									<text>{{ item.time }}</text><text style="padding-left: 15rpx;">总业绩:{{ item.price }}</text>
+									<text>{{ item.time }}</text>
 								</view>
 							</view>
 						</view>

+ 115 - 295
pages/user/user.vue

@@ -1,54 +1,49 @@
 <template>
 	<view class="container">
 		<view class="vheigh"></view>
-		<view class="top-image">
-			<image src="../../static/icon/user-top.png" mode=""></image>
-		</view>
-		<view class="" style="height: 150rpx;"></view>
-		<view class="user-box">
-			<view class="user-info flex">
-				<image class="avatar" :src="userInfo.avatar" mode="" v-if="userInfo.avatar"
-					@click="navTo('/pages/set/userinfo')"></image>
-				<image class="avatar" src="../../static/error/missing-face.png" mode="" v-else></image>
-				<view class="user-name-id">
-					<view class="user-name clamp2">{{ userInfo.nickname || '游客'}}</view>
-					<view class="user-shop flex" v-if="userInfo.uid">
-						<view class="user-shop-item" v-if="userInfo.level > 0" style="width: 150rpx;">
-							<image class="user-shop-icon" src="../../static/img/level.png" mode=""
-								style="width: 150rpx;"></image>
-							<view class="user-shopname" style="padding-left: 30rpx;">
-								{{userInfo.level == 1?'微店':(userInfo.level == 2?'区代':(userInfo.level == 3 ? '市代':(userInfo.level == 4 ? '省代': '总代')))}}
-							</view>
-						</view>
+		<view class="" style="width: 750rpx;height: 529rpx;">
+			<image src="" mode="" class="user-top"></image>
+			<view class="user-box">
+				<view class="user-info flex">
+					<image class="avatar" :src="userInfo.avatar" mode="" v-if="userInfo.avatar"
+						@click="navTo('/pages/set/userinfo')"></image>
+					<image class="avatar" src="../../static/error/missing-face.png" mode="" v-else></image>
+					<view class="user-name-id">
+						<view class="user-name clamp2">{{ userInfo.nickname || '游客'}}</view>
+						<view class="user-uid " v-if="userInfo.uid">{{ 'UID: ' + userInfo.uid}}</view>
 					</view>
-					<!-- <view class="user-uid">UID:{{ userInfo.uid || ''}}</view> -->
-					<!-- <view class="user-shop" v-if="userInfo.user_rule != 'user'">
-						<view class="user-shopname">{{ userInfo.identity == 2 ? '店长' : userInfo.identity == 1 ? '店员' : '粉丝' }}</view>
-					</view> -->
-				</view>
-			</view>
-			<view class="user-money flex">
-				<view class="user-money-item" @click="navTo('/pages/user/award')">
-					<view class="user-money-num">{{ userInfo.brokerage_price*1 || 0 }}</view>
-					<view class="user-money-font">我的佣金</view>
+
 				</view>
-				<view class="user-xian"></view>
-				<view class="user-money-item" @click="navTo('/pages/user/yue')">
-					<view class="user-money-num">{{ userInfo.now_money*1 || 0 }}</view>
-					<view class="user-money-font">我的钱包</view>
+				<view class="user-money flex">
+					<view class="user-money-item" @click="navTo('/pages/user/award')">
+						<view class="user-money-num">{{ userInfo.brokerage_price*1 || 0 }}</view>
+						<view class="user-money-font">奖金</view>
+					</view>
+					<view class="user-xian"></view>
+					<view class="user-money-item">
+						<view class="user-money-num">{{ userInfo.awardrange*1 || 0 }}</view>
+						<view class="user-money-font">可用奖金额度</view>
+					</view>
+					<view class="user-xian"></view>
+					<view class="user-money-item" @click="navTo('/pages/user/jf')">
+						<view class="user-money-num">{{ userInfo.tickets*1 || 0 }}</view>
+						<view class="user-money-font">报单币</view>
+					</view>
 				</view>
-				<view class="user-xian"></view>
-				<!-- <view class="user-money-item" @click="navTo('/pages/user/jf')">
-					<view class="user-money-num">{{ userInfo.integral*1 || 0 }}</view>
-					<view class="user-money-font">我的积分</view>
-				</view> -->
-				<view class="user-money-item" @click="navTo('/pages/user/jf')">
-					<view class="user-money-num">{{ userInfo.integral*1 || 0 }}</view>
-					<view class="user-money-font">我的积分</view>
+				<view class="user-level" v-if="userInfo.vip">
+					<image src="../../static/icon/vip.png" mode="widthFix"></image>
+					<view class="">
+						{{userInfo.vip_name}}
+					</view>
 				</view>
+				
+				<!-- <image src="../../static/icon/u-set.png" mode="" class="u-set" @click="navTo('/pages/set/userinfo')"> -->
+				</image>
 			</view>
-			<image src="../../static/icon/u-set.png" mode="" class="u-set" @click="navTo('/pages/set/userinfo')">
-			</image>
+		</view>
+		<view class=""
+			style="height: 50rpx;border-radius: 50rpx 50rpx 0 0;background-color: #fff;width: 750rpx;margin-top: -50rpx;position: relative;">
+
 		</view>
 		<view class="main-box">
 			<view class="title flex" @click="navTo('/pages/order/order?state=0')">
@@ -76,42 +71,58 @@
 				</view>
 			</view>
 		</view>
+		
+		
+		<view class="user-list flex" @click="navTo('/pages/user/shareQrCode')">
+			<image src="../../static/icon/u1.png" mode="" class="left-img"></image>
+			<view class="">
+				推广海报
+			</view>
+			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
+		</view>
+		<view class="user-list flex" @click="navTo('/pages/user/team')">
+			<image src="../../static/icon/u2.png" mode="" class="left-img"></image>
+			<view class="">
+				我的推广
+			</view>
+			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
+		</view>
 		<view class="user-list flex" @click="navTo('/pages/user/favorites')">
-			<image src="../../static/icon/u-sc.png" mode="" class="left-img"></image>
+			<image src="../../static/icon/u4.png" mode="" class="left-img"></image>
 			<view class="">
 				我的收藏
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
-		<view class="user-list flex" @click="navTo('/pages/user/shareQrCode')">
-			<image src="../../static/icon/u1.png" mode="" class="left-img"></image>
+		<view class="user-list flex" @click="navTo('/pages/set/phone')" v-if="!userInfo.phone">
+			<image src="../../static/icon/u3.png" mode="" class="left-img"></image>
 			<view class="">
-				推广海报
+				绑定手机号
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
-		<view class="user-list flex" @click="navTo('/pages/user/team')">
-			<image src="../../static/icon/gn1.png" mode="" class="left-img"></image>
+		
+		<view class="user-list flex" @click="openKf()">
+			<image src="../../static/icon/u5.png" mode="" class="left-img"></image>
 			<view class="">
-				我的推广
+				客服
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
 		<view class="user-list flex" @click="navTo('/pages/set/address')">
-			<image src="../../static/icon/u2.png" mode="" class="left-img"></image>
+			<image src="../../static/icon/u6.png" mode="" class="left-img"></image>
 			<view class="">
 				收货地址
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
-		<view class="user-list flex" @click="openKf()">
-			<image src="../../static/icon/u3.png" mode="" class="left-img"></image>
+		<view class="user-list flex" @click="navTo('/pages/set/userinfo')" style="border-bottom: none;">
+			<image src="../../static/icon/u7.png" mode="" class="left-img"></image>
 			<view class="">
-				客服
+				设置
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
-
 		<view class="" style="height: 20rpx;">
 
 		</view>
@@ -145,7 +156,8 @@
 	import {
 		orderData,
 		getUserInfo,
-		check
+		check,
+		getUser
 	} from '@/api/user.js';
 	import {
 		saveUrl,
@@ -186,7 +198,7 @@
 					content: '您的昵称为默认昵称“微信用户”,是否立即修改?',
 					complete(res) {
 						if (res.confirm) {
-							
+
 							uni.navigateTo({
 								url: '/pages/set/userinfo'
 							})
@@ -303,12 +315,17 @@
 			},
 			// 加载初始数据
 			loadBaseData() {
-				getUserInfo({})
+				getUser({})
 					.then(({
 						data
 					}) => {
 						console.log(data.nickname)
 						this.setUserInfo(data);
+						if(!data.phone) {
+							uni.navigateTo({
+								url: '/pages/set/phone'
+							})
+						}
 					})
 					.catch(e => {
 						console.log(e);
@@ -368,8 +385,8 @@
 			shaoma() {
 				uni.scanCode({
 					success(e) {
-						console.log(e,'e++++++++++++')
-						
+						console.log(e, 'e++++++++++++')
+
 					}
 				});
 			}
@@ -396,7 +413,7 @@
 	page {
 		min-height: 100%;
 		height: auto;
-		background-color: $page-color-base;
+		background-color: #fff;
 	}
 
 	.vheigh {
@@ -473,9 +490,7 @@
 			.comfirm-box {
 				margin-top: 52rpx;
 				display: flex;
-				// margin-bottom: 32rpx;
 
-				// justify-content: space-around;
 				.cancel {
 					display: flex;
 					align-items: center;
@@ -484,7 +499,6 @@
 					height: 74rpx;
 					border: 1px solid #dcc786;
 					border-radius: 38rpx;
-
 					font-size: 32rpx;
 					color: #605128;
 				}
@@ -507,35 +521,45 @@
 
 	.user-box {
 		position: relative;
-		z-index: 2;
+		margin: -450rpx auto 0;
 		width: 690rpx;
-		margin: 0 auto;
-		/* #ifdef MP-WEIXIN */
-		margin: -100rpx auto 0;
-		/* #endif */
-		background: #ffffff;
-		box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46);
 		border-radius: 20rpx;
 		display: flex;
 		flex-direction: column;
 		align-items: center;
 		padding: 54rpx 0 30rpx;
-		line-height: 1;
-		position: relative;
+		color: #fff;
+
+		.user-level {
+			display: inline-block;
+			// width: 161rpx;
+			padding: 0 20rpx;
+			height: 51rpx;
+			background: #FFFFFF;
+			border-radius: 25rpx;
 
-		.u-set {
 			position: absolute;
 			top: 85rpx;
-			right: 40rpx;
-			width: 44rpx;
-			height: 44rpx;
+			right: 0rpx;
+			padding:0 20rpx;
+			display: flex;
+			align-items: center;
+			image {
+				width: 25rpx;
+			}
+			view {
+				font-size: 25rpx;
+				font-weight: bold;
+				color: #FF6B2E;
+				padding-left: 20rpx;
+			}
+			
 		}
 
 		.user-info {
 			justify-content: flex-start;
 			width: 100%;
 			padding-left: 40rpx;
-
 			.avatar {
 				border-radius: 50%;
 				width: 132rpx;
@@ -548,7 +572,6 @@
 				padding-top: 10rpx;
 				font-size: 24rpx;
 				font-weight: 500;
-				color: #666666;
 			}
 		}
 
@@ -559,64 +582,8 @@
 			font-size: 30rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #333333;
-		}
-
-		.user-shop {
-			margin-top: 10rpx;
-			display: flex;
-			justify-content: flex-start;
-			align-items: center;
-
-			.user-shop-item {
-				position: relative;
-				margin: 0 10rpx;
-				width: 105rpx;
-				height: 42rpx;
-
-				.user-shop-icon {
-					position: absolute;
-					top: 0;
-					left: 0;
-					right: 0;
-					width: 105rpx;
-					height: 42rpx;
-				}
-
-				.user-shopname {
-					padding-left: 18rpx;
-					position: relative;
-					z-index: 2;
-					font-size: 20rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #977843;
-					line-height: 42rpx;
-					text-align: center;
-				}
-			}
 		}
 
-		// .user-shop {
-		// 	margin-top: 10rpx;
-		// 	display: flex;
-		// 	justify-content: center;
-		// 	align-items: center;
-
-		// 	.user-shop-icon {
-		// 		width: 22rpx;
-		// 		height: 22rpx;
-		// 	}
-
-		// 	.user-shopname {
-		// 		margin-left: 6rpx;
-		// 		font-size: 20rpx;
-		// 		font-family: PingFang SC;
-		// 		font-weight: 500;
-		// 		color: #ff7e3e;
-		// 	}
-		// }
-
 		.user-money {
 			width: 100%;
 			margin-top: 50rpx;
@@ -633,14 +600,12 @@
 					font-size: 36rpx;
 					font-family: PingFang SC;
 					font-weight: bold;
-					color: #333333;
 				}
 
 				.user-money-font {
 					margin-top: 20rpx;
 					font-size: 30rpx;
 					font-weight: 500;
-					color: #666666;
 				}
 			}
 
@@ -656,7 +621,6 @@
 		margin: 20rpx auto 0;
 		width: 710rpx;
 		background: #ffffff;
-		box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
 		border-radius: 20rpx;
 
 		.title {
@@ -664,7 +628,6 @@
 			justify-content: space-between;
 			align-items: center;
 			padding: 24rpx;
-			border-bottom: 1px solid #eeeeee;
 
 			.title-left {
 				display: flex;
@@ -677,8 +640,7 @@
 
 				.title-font {
 					margin-left: 20rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
+					font-size: 38rpx;
 					font-weight: bold;
 					color: #333333;
 				}
@@ -691,7 +653,7 @@
 		}
 
 		.main {
-			padding: 50rpx 0 30rpx;
+			padding: 20rpx 0 30rpx;
 
 			.jg {
 				width: 1px;
@@ -729,8 +691,8 @@
 				align-items: center;
 
 				.oitem-image {
-					height: 40rpx;
-					width: 42rpx;
+					width: 76rpx;
+					height: 76rpx;
 				}
 
 				.oitem-font {
@@ -743,160 +705,12 @@
 		}
 	}
 
-	.tool-list {
-		width: 690rpx;
-		margin: 20rpx auto 0;
-		background: #ffffff;
-		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-		border-radius: 20rpx;
-	}
-
-	.psw-wrapper {
-		width: 548rpx;
-		padding: 20rpx 0;
-		background-color: #ffffff;
-		border-radius: 15rpx 15rpx;
-
-		.psw-title {
-			width: 100%;
-			font-size: 35rpx;
-			padding: 0 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;
-			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: #ff4c4c;
-		}
-	}
-
-	.hx-wrapper {
-		width: 536rpx;
-		height: 630rpx;
-		position: relative;
-
-		// background-color: #fff;
-		.hx-img {
-			width: 536rpx;
-			height: 281rpx;
-
-			image {
-				width: 536rpx;
-				height: 281rpx;
-			}
-		}
-
-		.hx-close {
-			position: absolute;
-			left: 243rpx;
-			bottom: -80rpx;
-			width: 52rpx;
-			height: 52rpx;
-
-			image {
-				width: 52rpx;
-				height: 52rpx;
-			}
-		}
-
-		.hx-body {
-			width: 536rpx;
-			height: 349rpx;
-			background-color: #fff;
-			border-radius: 0 0 10rpx 10rpx;
-
-			.hx-title {
-				width: 536rpx;
-				font-size: 36rpx;
-				font-weight: 500;
-				color: #333333;
-				line-height: 1;
-				padding-top: 42rpx;
-				text-align: center;
-			}
-
-			input {
-				width: 439rpx;
-				height: 68rpx;
-				background: #dbf3e9;
-				border-radius: 10rpx;
-				margin: 39rpx auto 0;
-				padding-left: 26rpx;
-
-				.hx-placeholder {
-					font-size: 26rpx;
-					font-weight: 500;
-					color: #ff4c4c;
-				}
-			}
-
-			.hx-btn {
-				margin: 44rpx auto 0;
-				width: 353rpx;
-				height: 71rpx;
-				background: #ff4c4c;
-				border-radius: 34rpx;
-				font-size: 36rpx;
-				font-weight: 500;
-				color: #f8f9f9;
-				line-height: 71rpx;
-				text-align: center;
-			}
-		}
-	}
-
 	.user-list {
-		width: 691rpx;
+		width: 657rpx;
 		height: 104rpx;
 		background: #FFFFFF;
-		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-		border-radius: 28rpx;
-		margin: 20rpx auto;
-		padding: 0 25rpx;
+		border-bottom: 1px solid #EEEEEE;
+		margin: auto;
 
 		.left-img {
 			width: 40rpx;
@@ -916,4 +730,10 @@
 			height: 23rpx;
 		}
 	}
+
+	.user-top {
+		background-color: #52C696;
+		width: 750rpx;
+		height: 529rpx;
+	}
 </style>

+ 12 - 12
pages/user/withdrawal.vue

@@ -20,7 +20,7 @@
 		</view>
 		<view class="list" >
 			<radio-group @change="tabRadio">
-				<label>
+				<!-- <label>
 					<view class="box">
 						<view class="icon iconfont iconweixin1"></view>
 						<view class="title-box">
@@ -28,7 +28,7 @@
 						</view>
 						<view class="right"><radio value="weixin" color="#01a6a8" :checked="type == 'weixin'" /></view>
 					</view>
-				</label>
+				</label> -->
 				<!-- <label>
 					<view class="box">
 						<view class="icon iconfont iconzhifubao"></view>
@@ -41,10 +41,10 @@
 								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
 							</view>
 						</view>
-						<view class="right"><radio value="alipay" color="#fff" :checked="type == 'alipay'" /></view>
+						<view class="right"><radio value="alipay" color="#01a6a8" :checked="type == 'alipay'" /></view>
 					</view>
 				</label> -->
-				<label v-if="sh == 2">
+				<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">
@@ -61,14 +61,14 @@
 				</label>
 			</radio-group>
 		</view>
-		<!-- <view class="row b-b" v-if="type == 'alipay'">
+		<view class="row b-b" v-if="type == 'alipay'">
 			<text class="tit">支付宝账号</text>
 			<input class="input" type="text" v-model="alipay_code" placeholder="请输入支付宝账号" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type == 'alipay'">
 			<text class="tit">支付宝姓名</text>
 			<input class="input" type="text" v-model="alipay_name" placeholder="请输入支付宝姓名" placeholder-class="placeholder" />
-		</view> -->
+		</view>
 		<template v-if="type == 'bank'">
 			<view class="row b-b" v-if="sh == 2">
 				<text class="tit">银行卡号</text>
@@ -107,7 +107,7 @@ export default {
 	},
 	data() {
 		return {
-			type: 'weixin', //提现方式
+			type: 'bank', //提现方式
 			money: '0.00', //可提现金额
 			freeze: '0.0', //冻结金额
 			withdrawal: '', //提现金额
@@ -124,7 +124,7 @@ export default {
 			// #ifdef H5
 			weichatBsrowser: false,
 			// #endif
-			sh: 1,
+			sh: 2,
 		};
 	},
 	onLoad(options) {
@@ -150,10 +150,10 @@ export default {
 				this.bank=data.bank;
 				this.minPrice = data.minPrice;
 			});
-			examine({}).then(res => {
-				console.log(res)
-				this.sh = res.msg
-			})
+			// examine({}).then(res => {
+			// 	console.log(res)
+			// 	this.sh = res.msg
+			// })
 		},
 		// 跳转
 		navTo(url) {

+ 12 - 9
pages/user/yjzz.vue

@@ -3,14 +3,15 @@
 		<view class="content-money">
 			<view class="flex">
 				<view class="buttom">
-					<view class="icon" >{{ userInfo.brokerage_price | getMoneyStyle }}</view>
+					<!-- <view class="icon" >{{ userInfo.brokerage_price | getMoneyStyle }}</view> -->
+					<view class="icon" v-if="type==2">{{ userInfo.tickets | 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="phone" placeholder="请输入收款人手机号"
+			<view class="title">收款人UID</view>
+			<view class="row"><input class="input" type="number" v-model="phone" placeholder="请输入收款人UID"
 					placeholder-class="placeholder" /></view>
 		</view>
 		<view class="row-box">
@@ -19,7 +20,7 @@
 				<!-- <text class="tit">¥</text> -->
 				<input class="input" type="number" v-model="withdrawal" placeholder="转入金额"
 					placeholder-class="placeholder" />
-				<view class="buttom" @click="withdrawal = userInfo.brokerage_price*1" >全部转账</view>
+				<view class="buttom" @click="withdrawal = userInfo.tickets*1" >全部转账</view>
 				<!-- <view class="buttom" @click="withdrawal = userInfo.dynamic_integral" v-if="type== 2">全部转账</view> -->
 			</view>
 		</view>
@@ -33,7 +34,8 @@
 	} from '@/utils/rocessor.js';
 	import {
 		getUserInfo,
-		jfzz
+		jfzz,
+		ticketsRotation
 	} from '@/api/user.js';
 	import {
 		mapMutations,
@@ -72,7 +74,7 @@
 					})
 				}else if(this.type == 2){
 					uni.setNavigationBarTitle({
-						title:'动态积分转账'
+						title:'保单币转账'
 					})
 				}else if(this.type == 3){
 					uni.setNavigationBarTitle({
@@ -117,11 +119,12 @@
 				}
 				
 				let data = {
-					phone: obj.phone, //编号
-					price: obj.withdrawal ,//金额
+					uid: obj.userInfo.uid,
+					other_uid: obj.phone, //编号
+					TransferMoney: obj.withdrawal ,//金额
 					// type: obj.type
 				};
-				jfzz(data)
+				ticketsRotation(data)
 					.then(e => {
 				
 						// 允许按钮点击

BIN
static/icon/bdb.png


BIN
static/icon/jlb.png


BIN
static/icon/o1.png


BIN
static/icon/o2.png


BIN
static/icon/o3.png


BIN
static/icon/o4.png


BIN
static/icon/pasw.png


BIN
static/icon/phone.png


BIN
static/icon/u1.png


BIN
static/icon/u2.png


BIN
static/icon/u3.png


BIN
static/icon/u4.png


BIN
static/icon/u5.png


BIN
static/icon/u6.png


BIN
static/icon/u7.png


BIN
static/icon/vip.png


BIN
static/icon/yzm.png


BIN
static/img/bd-top.png


BIN
static/img/sharebase.png


BIN
static/img/tg-bg1.png


BIN
static/tabBar/cart-action.png


BIN
static/tabBar/cart.png


BIN
static/tabBar/cate-action.png


BIN
static/tabBar/cate.png


BIN
static/tabBar/home-action.png


BIN
static/tabBar/home.png


BIN
static/tabBar/user-action.png


BIN
static/tabBar/user.png


+ 1 - 1
store/index.js

@@ -6,7 +6,7 @@ Vue.use(Vuex)
 const store = new Vuex.Store({
 	state: {
 		// baseURL:"http://yrh.liuniu946.com",//'http://eb.shuibo.net',//请求地址配置 
-		baseURL:'https://wwgj.liuniu946.com',//请求地址配置 
+		baseURL:'http://store.manyuanchunjia.com',//请求地址配置 
 		urlFile:'/index',//项目部署所在文件夹
 		userInfo: {}, //登录信息
 		loginInterceptor:false,//是否打开强制登录

BIN
unpackage/dist/build/h5/3-10-12.rar


+ 2 - 2
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.b0707a6a.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/index/static/js/chunk-vendors.d3a37645.js></script><script src=/index/static/js/index.7fec5f4c.js></script></body></html>
+<!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.63b34199.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/index/static/js/chunk-vendors.2784987b.js></script><script src=/index/static/js/index.6d6ae77b.js></script></body></html>

BIN
unpackage/dist/build/h5/static/icon/bdb.png


BIN
unpackage/dist/build/h5/static/icon/jlb.png


BIN
unpackage/dist/build/h5/static/icon/o1.png


BIN
unpackage/dist/build/h5/static/icon/o2.png


BIN
unpackage/dist/build/h5/static/icon/o3.png


BIN
unpackage/dist/build/h5/static/icon/o4.png


BIN
unpackage/dist/build/h5/static/icon/pasw.png


BIN
unpackage/dist/build/h5/static/icon/phone.png


BIN
unpackage/dist/build/h5/static/icon/u1.png


BIN
unpackage/dist/build/h5/static/icon/u2.png


BIN
unpackage/dist/build/h5/static/icon/u3.png


BIN
unpackage/dist/build/h5/static/icon/u4.png


BIN
unpackage/dist/build/h5/static/icon/u5.png


BIN
unpackage/dist/build/h5/static/icon/u6.png


BIN
unpackage/dist/build/h5/static/icon/u7.png


BIN
unpackage/dist/build/h5/static/icon/vip.png


BIN
unpackage/dist/build/h5/static/icon/yzm.png


BIN
unpackage/dist/build/h5/static/img/bd-top.d74d8aad.png


BIN
unpackage/dist/build/h5/static/img/bd-top.png


BIN
unpackage/dist/build/h5/static/img/gn1.c77967b7.png


BIN
unpackage/dist/build/h5/static/img/sharebase.png


BIN
unpackage/dist/build/h5/static/img/tg-bg1.c95be621.png


BIN
unpackage/dist/build/h5/static/img/tg-bg1.png


BIN
unpackage/dist/build/h5/static/img/user-top.04586a32.png


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/index.63b34199.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/index.b0707a6a.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/chunk-vendors.2784987b.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/chunk-vendors.d3a37645.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/index.6d6ae77b.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/index.7fec5f4c.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-cart-cart.445ac297.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-cart-cart.a1c573b8.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-category-category.4f35bdf9.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-category-category.823e487a.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-artDetail.7d2e8d5c.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-artDetail.def1546c.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-index.79d69ff3.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-index.bc20dbf6.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-index~pages-set-addressManage~pages-user-user.1121db5d.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index-index~pages-user-user.c6e57f0c.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-pay.0e29e7e7.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-pay.b2e6a77c.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-paySuccess.97281fef.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-paySuccess.9ffd9e5b.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-recharge.2b7f9acf.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-money-recharge.8b15648b.js


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác