hwq há 3 anos atrás
pai
commit
7dc1494563
100 ficheiros alterados com 6757 adições e 7225 exclusões
  1. 18 0
      api/user.js
  2. BIN
      appbase/1080.png
  3. BIN
      appbase/480.png
  4. BIN
      appbase/720.png
  5. 1 1
      appbase/cartinfo.txt
  6. BIN
      appbase/down.png
  7. BIN
      appbase/lgo.png
  8. BIN
      appbase/logo2.png
  9. BIN
      appbase/wlg.keystore
  10. BIN
      appbase/xhg.keystore
  11. 9 29
      manifest.json
  12. 56 36
      pages.json
  13. 451 462
      pages/cart/cart.vue
  14. 191 199
      pages/category/business.vue
  15. 131 0
      pages/contract/agreement.vue
  16. 211 0
      pages/contract/privacy.vue
  17. 138 0
      pages/contract/start.vue
  18. 105 109
      pages/game/game.vue
  19. 736 633
      pages/game/gameDetail.vue
  20. 75 0
      pages/game/gl.vue
  21. 97 0
      pages/index/detail.vue
  22. 634 694
      pages/index/index.vue
  23. 110 28
      pages/index/jieshao.vue
  24. 0 187
      pages/index/sign.vue
  25. 6 6
      pages/money/pay.vue
  26. 16 16
      pages/money/paySuccess.vue
  27. 11 11
      pages/money/withdmoenys.vue
  28. 294 321
      pages/money/withdrawal.vue
  29. 7 25
      pages/order/createOrder.vue
  30. 8 8
      pages/product/common/productBottom.vue
  31. 640 655
      pages/product/product.vue
  32. 396 399
      pages/public/login.vue
  33. 175 169
      pages/public/register.vue
  34. 80 96
      pages/set/set.vue
  35. 132 223
      pages/set/userinfo.vue
  36. 103 134
      pages/user/greenChange.vue
  37. 331 365
      pages/user/greenJf.vue
  38. 159 185
      pages/user/myGreenCard.vue
  39. 0 407
      pages/user/mygx.vue
  40. 331 365
      pages/user/purpleJf.vue
  41. 338 385
      pages/user/shopJf.vue
  42. 438 718
      pages/user/user.vue
  43. 329 359
      pages/user/whiteJf.vue
  44. BIN
      static/game/game02.png
  45. BIN
      static/game/game03.png
  46. BIN
      static/game/game04.png
  47. BIN
      static/game/game05.png
  48. BIN
      static/game/game06.png
  49. BIN
      static/game/game08.png
  50. BIN
      static/game/game1.gif
  51. BIN
      static/game/game11.png
  52. BIN
      static/game/game12.png
  53. BIN
      static/game/game13.png
  54. BIN
      static/game/game2.gif
  55. BIN
      static/game/game3.gif
  56. 0 0
      static/icon/1.png
  57. BIN
      static/icon/bdsj.png
  58. BIN
      static/icon/myjd.png
  59. BIN
      static/icon/myqb.png
  60. BIN
      static/icon/mytg.png
  61. BIN
      static/icon/myyj.png
  62. BIN
      static/img/bargainBg.jpg
  63. BIN
      static/img/delete.png
  64. BIN
      static/img/deletes.png
  65. BIN
      static/img/game-bg.png
  66. BIN
      static/img/game01.png
  67. BIN
      static/img/game02.png
  68. BIN
      static/img/game03.png
  69. BIN
      static/img/game04.png
  70. BIN
      static/img/game05.png
  71. BIN
      static/img/img09.png
  72. BIN
      static/img/img10.png
  73. BIN
      static/img/img14.jpg
  74. BIN
      static/img/libao-bg.png
  75. BIN
      static/img/login-bg.png
  76. BIN
      static/img/logo.jpg
  77. BIN
      static/img/logo.png
  78. BIN
      static/img/paySuccess.png
  79. BIN
      static/img/phone.png
  80. BIN
      static/img/user-top-bg.png
  81. BIN
      static/img/vip-card-bg.png
  82. BIN
      static/img/vip.png
  83. BIN
      static/img/zfpwd.png
  84. BIN
      static/index/index01.png
  85. BIN
      static/index/index02.png
  86. BIN
      static/index/index03.png
  87. BIN
      static/index/index04.png
  88. BIN
      static/index/index05.png
  89. BIN
      static/index/index12.png
  90. BIN
      static/index/index13.png
  91. BIN
      static/index/index15.png
  92. BIN
      static/index/index16.png
  93. BIN
      static/index/xhgLogo.png
  94. BIN
      static/tabBar/cate-action.png
  95. BIN
      static/tabBar/cate.png
  96. BIN
      static/tabBar/dingdan.png
  97. BIN
      static/tabBar/game-action.png
  98. BIN
      static/tabBar/game.png
  99. BIN
      static/tabBar/home.png
  100. BIN
      static/tabBar/tab-cart-current.png

+ 18 - 0
api/user.js

@@ -305,3 +305,21 @@ export function exchangeGreen(data) {
 		data
 	})
 }
+
+//文章列表
+export function article(data, id) {
+	return request({
+		url: '/api/article/list/' + id,
+		method: 'GET',
+		data
+	});
+}
+
+//文章详情
+export function details(data, id) {
+	return request({
+		url: '/api/article/details/' + id,
+		method: 'GET',
+		data
+	});
+}

BIN
appbase/1080.png


BIN
appbase/480.png


BIN
appbase/720.png


+ 1 - 1
appbase/cartinfo.txt

@@ -1,2 +1,2 @@
-证书别名: com.xhg.inc
+证书别名: com.wlg.com
 证书密码: 112233

BIN
appbase/down.png


BIN
appbase/lgo.png


BIN
appbase/logo2.png


BIN
appbase/wlg.keystore


BIN
appbase/xhg.keystore


+ 9 - 29
manifest.json

@@ -1,9 +1,9 @@
 {
-    "name" : "喜嗨购",
-    "appid" : "__UNI__F0D4DD1",
+    "name" : "微乐购",
+    "appid" : "__UNI__CDE33A2",
     "description" : "",
-    "versionName" : "1.0.8",
-    "versionCode" : 108,
+    "versionName" : "1.0.2",
+    "versionCode" : 102,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */
@@ -15,7 +15,6 @@
             "delay" : 0
         },
         "modules" : {
-            "Payment" : {},
             "OAuth" : {}
         },
         /* 模块配置 */
@@ -44,24 +43,9 @@
             /* ios打包配置 */
             "sdkConfigs" : {
                 "maps" : {},
-                "oauth" : {
-                    "weixin" : {
-                        "appid" : "wx7ecea7b3999ee88c",
-                        "appsecret" : "9c9329c67378aec194c48f259afbda9e",
-                        "UniversalLinks" : ""
-                    }
-                },
+                "oauth" : {},
                 "geolocation" : {},
-                "payment" : {
-                    "alipay" : {
-                        "__platform__" : [ "ios", "android" ]
-                    },
-                    "weixin" : {
-                        "__platform__" : [ "ios", "android" ],
-                        "appid" : "wx7ecea7b3999ee88c",
-                        "UniversalLinks" : ""
-                    }
-                },
+                "payment" : {},
                 "push" : {},
                 "share" : {},
                 "speech" : {},
@@ -122,7 +106,7 @@
         }
     },
     "h5" : {
-        "title" : "喜嗨购",
+        "title" : "微乐购s",
         "domain" : "",
         "router" : {
             "base" : "/index/",
@@ -132,7 +116,7 @@
             "proxy" : {
                 "/api" : {
                     // "target" : "http://lnpt.frp.liuniu946.com/api",
-                    "target" : "http://xhg.duolio.cn/api",
+                    "target" : "http://wlg.ledao.ink/api",
                     // "changeOrigin": true,
                     "pathRewrite" : {
                         "/api" : "" // rewrite path
@@ -141,11 +125,7 @@
             }
         },
         "sdkConfigs" : {
-            "maps" : {
-                "qqmap" : {
-                    "key" : "VYZBZ-P2TRG-RMIQ3-ITAIN-2DKBK-CKFQQ"
-                }
-            }
+            "maps" : {}
         }
     }
 }

+ 56 - 36
pages.json

@@ -5,16 +5,7 @@
 	"pages": [{
 			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "喜嗨购",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-		},
-		{
-			"path": "pages/index/sign",
-			"style": {
-				"navigationBarTitleText": "天天领现金",
+				"navigationBarTitleText": "微乐购",
 				"app-plus": {
 					"titleNView": false
 				}
@@ -123,21 +114,21 @@
 			"path": "pages/user/whiteJf",
 			"style": {
 				"navigationStyle": "custom",
-				"navigationBarTitleText": "白积分"
+				"navigationBarTitleText": "我的肥料"
 			}
 		},
 		{
 			"path": "pages/user/greenJf",
 			"style": {
 				"navigationStyle": "custom",
-				"navigationBarTitleText": "绿积分"
+				"navigationBarTitleText": "我的水滴"
 			}
 		},
 		{
 			"path": "pages/user/purpleJf",
 			"style": {
 				"navigationStyle": "custom",
-				"navigationBarTitleText": "紫积分"
+				"navigationBarTitleText": "我的阳光"
 			}
 		},
 		{
@@ -151,7 +142,7 @@
 			"path": "pages/user/shopJf",
 			"style": {
 				"navigationStyle": "custom",
-				"navigationBarTitleText": "商家积分"
+				"navigationBarTitleText": "能量金豆"
 			}
 		},
 		{
@@ -164,7 +155,7 @@
 		{
 			"path": "pages/user/greenChange",
 			"style": {
-				"navigationBarTitleText": "绿卡兑换"
+				"navigationBarTitleText": "洒水壶兑换"
 			}
 		},
 		{
@@ -280,6 +271,24 @@
 				"navigationBarTitleText": "绑定上级"
 			}
 		},
+		{
+			"path": "pages/contract/privacy",
+			"style": {
+				"navigationBarTitleText": "隐私政策"
+			}
+		},
+		{
+			"path": "pages/contract/start",
+			"style": {
+				"navigationBarTitleText": "温馨提示"
+			}
+		},
+		{
+			"path": "pages/contract/agreement",
+			"style": {
+				"navigationBarTitleText": "会员协议"
+			}
+		},
 		{
 			"path": "pages/set/password",
 			"style": {
@@ -465,7 +474,14 @@
 		{
 			"path": "pages/game/game",
 			"style": {
-				"navigationBarTitleText": "游戏"
+				"navigationBarTitleText": "种植"
+
+			}
+		},
+		{
+			"path": "pages/game/gl",
+			"style": {
+				"navigationBarTitleText": "攻略"
 
 			}
 		},
@@ -478,7 +494,7 @@
 		{
 			"path": "pages/user/myGreenCard",
 			"style": {
-				"navigationBarTitleText": "我的绿卡"
+				"navigationBarTitleText": "我的洒水壶"
 			}
 		},
 		{
@@ -490,20 +506,24 @@
 		{
 			"path": "pages/game/gameDetail",
 			"style": {
-				"navigationBarTitleText": "打小怪兽"
+				"navigationBarTitleText": "种植"
 			}
 
+		}, {
+			"path": "pages/index/jieshao",
+			"style": {
+				"navigationBarTitleText": "公司介绍",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/index/detail",
+			"style": {
+				"navigationBarTitleText": "公司介绍",
+				"enablePullDownRefresh": false
+			}
 		}
-	    ,{
-            "path" : "pages/index/jieshao",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "公司介绍",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-    ],
+	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "喜嗨购",
@@ -512,7 +532,7 @@
 	},
 	"tabBar": {
 		"color": "#666666",
-		"selectedColor": "#f65067",
+		"selectedColor": "#333333",
 		"borderStyle": "black",
 		"backgroundColor": "#ffffff",
 		"list": [{
@@ -521,17 +541,17 @@
 				"selectedIconPath": "static/tabBar/tab-home-current.png",
 				"text": "首页"
 			},
-			{
-				"pagePath": "pages/category/category",
-				"iconPath": "static/tabBar/cate.png",
-				"selectedIconPath": "static/tabBar/cate-action.png",
-				"text": "分类"
-			},
+			// {
+			// 	"pagePath": "pages/category/category",
+			// 	"iconPath": "static/tabBar/tab-cate.png",
+			// 	"selectedIconPath": "static/tabBar/tab-cate-action.png",
+			// 	"text": "分类"
+			// },
 			{
 				"pagePath": "pages/game/game",
 				"iconPath": "static/tabBar/game.png",
 				"selectedIconPath": "static/tabBar/game-action.png",
-				"text": "游戏"
+				"text": "种植"
 			},
 			{
 				"pagePath": "pages/cart/cart",

+ 451 - 462
pages/cart/cart.vue

@@ -5,8 +5,7 @@
 			<image src="/static/error/emptyCart.png" class="emptyImg" mode="aspectFit"></image>
 			<view v-if="hasLogin" class="empty-tips">
 				空空如也
-				<navigator class="navigator" v-if="hasLogin" url="../index/index" open-type="switchTab">随便逛逛>
-				</navigator>
+				<navigator class="navigator" v-if="hasLogin" url="../index/index" open-type="switchTab">随便逛逛></navigator>
 			</view>
 			<view v-else class="empty-tips">
 				空空如也
@@ -28,10 +27,15 @@
 				<block v-for="(item, index) in cartList" :key="item.id">
 					<view class="cart-item" :class="{ 'b-b': index !== cartList.length - 1 }">
 						<view class="image-wrapper">
-							<image :src="item.productInfo.image" :class="[item.loaded]" mode="aspectFill" lazy-load
-								@load="onImageLoad('cartList', index)" @error="onImageError('cartList', index)"></image>
-							<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }"
-								@click="check('item', index)"></view>
+							<image
+								:src="item.productInfo.image"
+								:class="[item.loaded]"
+								mode="aspectFill"
+								lazy-load
+								@load="onImageLoad('cartList', index)"
+								@error="onImageError('cartList', index)"
+							></image>
+							<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view>
 						</view>
 						<view class="item-right">
 							<text class="clamp title">{{ item.productInfo.store_name }}</text>
@@ -60,8 +64,7 @@
 			<!-- 底部菜单栏 -->
 			<view class="action-section">
 				<view class="checkbox">
-					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')"
-						:class="{ 'icon-checked': allChecked }"></view>
+					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')" :class="{ 'icon-checked': allChecked }"></view>
 					<!-- <view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view> -->
 				</view>
 				<view class="total-box">
@@ -79,520 +82,506 @@
 </template>
 
 <script>
-	import {
-		getCartList,
-		getCartNum,
-		cartDel
-	} from '@/api/user.js';
-	import {
-		mapState
-	} from 'vuex';
-	import uniNumberBox from '@/components/uni-number-box.vue';
-	import {
-		saveUrl,
-		interceptor
-	} from '@/utils/loginUtils.js';
-	import {
-		tabbar
-	} from '@/utils/tabbar.js';
-	export default {
-		components: {
-			uniNumberBox
-		},
-		data() {
-			return {
-				tabbar: tabbar,
-				current: 3,
-				total: 0, //总价格
-				allChecked: false, //全选状态  true|false
-				empty: false, //空白页现实  true|false
-				cartList: []
-			};
-		},
-		onShow() {
-			// 只有登录时才加载数据
-			if (this.hasLogin) {
-				this.loadData();
-			}
-		},
-		watch: {
-			//显示空白页
-			cartList(e) {
-				let empty = e.length === 0 ? true : false;
-				if (this.empty !== empty) {
-					this.empty = empty;
-				}
+import { getCartList, getCartNum, cartDel } from '@/api/user.js';
+import { mapState } from 'vuex';
+import uniNumberBox from '@/components/uni-number-box.vue';
+import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+export default {
+	components: {
+		uniNumberBox
+	},
+	data() {
+		return {
+			total: 0, //总价格
+			allChecked: false, //全选状态  true|false
+			empty: false, //空白页现实  true|false
+			cartList: []
+		};
+	},
+	onShow() {
+		// 只有登录时才加载数据
+		if (this.hasLogin) {
+			this.loadData();
+		}
+	},
+	watch: {
+		//显示空白页
+		cartList(e) {
+			let empty = e.length === 0 ? true : false;
+			if (this.empty !== empty) {
+				this.empty = empty;
 			}
-		},
-		computed: {
-			...mapState('user', ['hasLogin'])
-		},
-		methods: {
-			reduce(item, index) {
-				if (item.cart_num == 1) {
-					uni.showModal({
-						content: '删除该商品?',
-						success: e => {
-							if (e.confirm) {
-								this.deleteCartItem(index);
-							}
-						}
-					});
-				} else {
-					item.cart_num--;
-					this.newNumberChange(item);
-				}
-			},
-			add(item) {
-				console.log(item);
-				if (item.productInfo.stock > item.cart_num) {
-					item.cart_num++;
-					this.newNumberChange(item);
-				} else {
-					return;
-				}
-			},
-			//请求数据
-			async loadData() {
-				let obj = this;
-				getCartList({})
-					.then(function(e) {
-						// 获取当前购物车物品增加数量
-						let nub = obj.cartList.length;
-						// 获取之前对象数组
-						let aArray = obj.cartList.reverse();
-						// 获取返回数据对象数组
-						let bArray = e.data.valid.reverse();
-						obj.cartList = bArray
-							.map((item, ind) => {
-								// 设置返回数据默认为勾选状态
-								item.checked = true;
-								// 获取相同数组之前对象的数据
-								let carlist = aArray[ind];
-								// 判断之前是否已经加载完毕
-								if (carlist && carlist.loaded == 'loaded') {
-									item.loaded = 'loaded';
-								}
-								return item;
-							})
-							.reverse();
-						obj.calcTotal(); //计算总价
-					})
-					.catch(function(e) {
-						console.log(e);
-					});
-			},
-			//监听image加载完成
-			onImageLoad(key, index) {
-				// 修改载入完成后图片class样式
-				this.$set(this[key][index], 'loaded', 'loaded');
-			},
-			//监听image加载失败
-			onImageError(key, index) {
-				this[key][index].image = '/static/error/errorImage.jpg';
-			},
-			// 跳转到登录页
-			navToLogin() {
-				// 保存地址
-				saveUrl();
-				// 登录拦截
-				interceptor();
-			},
-			//选中状态处理
-			check(type, index) {
-				if (type === 'item') {
-					this.cartList[index].checked = !this.cartList[index].checked;
-				} else {
-					const checked = !this.allChecked;
-					const list = this.cartList;
-					list.forEach(item => {
-						item.checked = checked;
-					});
-					this.allChecked = checked;
-				}
-				this.calcTotal(type);
-			},
-			//数量
-			numberChange(data) {
-				let arr = this.cartList[data.index];
-				arr.cart_num = data.number;
-				getCartNum({
-						id: arr.id,
-						number: data.number
-					})
-					.then(e => {
-						console.log(e);
-					})
-					.catch(function(e) {
-						console.log(e);
-					});
-				this.calcTotal();
-			},
-			newNumberChange(item) {
-				getCartNum({
-						id: item.id,
-						number: item.cart_num
-					})
-					.then(e => {
-						console.log(e);
-					})
-					.catch(function(e) {
-						console.log(e);
-					});
-				this.calcTotal();
-			},
-			//删除
-			deleteCartItem(index) {
-				let list = this.cartList;
-				let row = list[index];
-				let id = row.id;
-				cartDel({
-					ids: id
-				});
-				this.cartList.splice(index, 1);
-				uni.hideLoading();
-				this.calcTotal();
-			},
-			//清空
-			clearCart() {
+		}
+	},
+	computed: {
+		...mapState('user', ['hasLogin'])
+	},
+	methods: {
+		reduce(item, index) {
+			if (item.cart_num == 1) {
 				uni.showModal({
-					content: '清空购物车?',
+					content: '删除该商品?',
 					success: e => {
 						if (e.confirm) {
-							let st = this.cartList.map(e => {
-								return e.id;
-							});
-							cartDel({
-								ids: st.join(',')
-							}).then(e => {
-								console.log(e);
-							});
-							this.cartList = [];
+							this.deleteCartItem(index);
 						}
 					}
 				});
-			},
-			//计算总价
-			calcTotal() {
-				let list = this.cartList;
-				if (list.length === 0) {
-					this.empty = true;
-					return;
-				}
-				let total = 0;
-				let checked = true;
+			} else {
+				item.cart_num--;
+				this.newNumberChange(item);
+			}
+		},
+		add(item) {
+			console.log(item);
+			if (item.productInfo.stock > item.cart_num) {
+				item.cart_num++;
+				this.newNumberChange(item);
+			} else {
+				return;
+			}
+		},
+		//请求数据
+		async loadData() {
+			let obj = this;
+			getCartList({})
+				.then(function(e) {
+					// 获取当前购物车物品增加数量
+					let nub = obj.cartList.length;
+					// 获取之前对象数组
+					let aArray = obj.cartList.reverse();
+					// 获取返回数据对象数组
+					let bArray = e.data.valid.reverse();
+					obj.cartList = bArray
+						.map((item, ind) => {
+							// 设置返回数据默认为勾选状态
+							item.checked = true;
+							// 获取相同数组之前对象的数据
+							let carlist = aArray[ind];
+							// 判断之前是否已经加载完毕
+							if (carlist && carlist.loaded == 'loaded') {
+								item.loaded = 'loaded';
+							}
+							return item;
+						})
+						.reverse();
+					obj.calcTotal(); //计算总价
+				})
+				.catch(function(e) {
+					console.log(e);
+				});
+		},
+		//监听image加载完成
+		onImageLoad(key, index) {
+			// 修改载入完成后图片class样式
+			this.$set(this[key][index], 'loaded', 'loaded');
+		},
+		//监听image加载失败
+		onImageError(key, index) {
+			this[key][index].image = '/static/error/errorImage.jpg';
+		},
+		// 跳转到登录页
+		navToLogin() {
+			// 保存地址
+			saveUrl();
+			// 登录拦截
+			interceptor();
+		},
+		//选中状态处理
+		check(type, index) {
+			if (type === 'item') {
+				this.cartList[index].checked = !this.cartList[index].checked;
+			} else {
+				const checked = !this.allChecked;
+				const list = this.cartList;
 				list.forEach(item => {
-					if (item.checked === true) {
-						total += item.productInfo.price * item.cart_num;
-					} else if (checked === true) {
-						checked = false;
-					}
+					item.checked = checked;
 				});
 				this.allChecked = checked;
-				this.total = Number(total.toFixed(2));
-			},
-			//创建订单
-			createOrder() {
-				let list = this.cartList;
-				let goodsData = [];
-				list.forEach(item => {
-					if (item.checked) {
-						goodsData.push(item.id);
-					}
+			}
+			this.calcTotal(type);
+		},
+		//数量
+		numberChange(data) {
+			let arr = this.cartList[data.index];
+			arr.cart_num = data.number;
+			getCartNum({
+				id: arr.id,
+				number: data.number
+			})
+				.then(e => {
+					console.log(e);
+				})
+				.catch(function(e) {
+					console.log(e);
 				});
-
-				uni.navigateTo({
-					url: '/pages/order/createOrder?id=' + goodsData.join(',')
+			this.calcTotal();
+		},
+		newNumberChange(item) {
+			getCartNum({
+				id: item.id,
+				number: item.cart_num
+			})
+				.then(e => {
+					console.log(e);
+				})
+				.catch(function(e) {
+					console.log(e);
 				});
+			this.calcTotal();
+		},
+		//删除
+		deleteCartItem(index) {
+			let list = this.cartList;
+			let row = list[index];
+			let id = row.id;
+			cartDel({
+				ids: id
+			});
+			this.cartList.splice(index, 1);
+			uni.hideLoading();
+			this.calcTotal();
+		},
+		//清空
+		clearCart() {
+			uni.showModal({
+				content: '清空购物车?',
+				success: e => {
+					if (e.confirm) {
+						let st = this.cartList.map(e => {
+							return e.id;
+						});
+						cartDel({
+							ids: st.join(',')
+						}).then(e => {
+							console.log(e);
+						});
+						this.cartList = [];
+					}
+				}
+			});
+		},
+		//计算总价
+		calcTotal() {
+			let list = this.cartList;
+			if (list.length === 0) {
+				this.empty = true;
+				return;
 			}
+			let total = 0;
+			let checked = true;
+			list.forEach(item => {
+				if (item.checked === true) {
+					total += item.productInfo.price * item.cart_num;
+				} else if (checked === true) {
+					checked = false;
+				}
+			});
+			this.allChecked = checked;
+			this.total = Number(total.toFixed(2));
+		},
+		//创建订单
+		createOrder() {
+			let list = this.cartList;
+			let goodsData = [];
+			list.forEach(item => {
+				if (item.checked) {
+					goodsData.push(item.id);
+				}
+			});
+
+			uni.navigateTo({
+				url: '/pages/order/createOrder?id=' + goodsData.join(',')
+			});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	.container {
-		padding-bottom: 134rpx;
-		background-color: $page-color-base;
-
-		/* 空白页 */
-		.empty {
-			position: fixed;
-			left: 0;
-			top: 0;
-			width: 100%;
-			height: 100vh;
-			padding-bottom: 100rpx;
-			display: flex;
-			justify-content: center;
-			flex-direction: column;
-			align-items: center;
-			background: #fff;
-
-			.emptyImg {
-				width: 300rpx;
-				height: 250rpx;
-				margin-bottom: 30rpx;
-			}
+.container {
+	padding-bottom: 134rpx;
+	background-color: $page-color-base;
 
-			.empty-tips {
-				display: flex;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-disabled;
+	/* 空白页 */
+	.empty {
+		position: fixed;
+		left: 0;
+		top: 0;
+		width: 100%;
+		height: 100vh;
+		padding-bottom: 100rpx;
+		display: flex;
+		justify-content: center;
+		flex-direction: column;
+		align-items: center;
+		background: #fff;
 
-				.navigator {
-					color: #f65067;
-					margin-left: 16rpx;
-				}
-			}
+		.emptyImg {
+			width: 300rpx;
+			height: 250rpx;
+			margin-bottom: 30rpx;
 		}
-	}
-
-	/* 购物车列表项 */
-	.cart-item {
-		width: 710rpx;
-		height: 210rpx;
-		background: #ffffff;
-		box-shadow: 0px 0px 10rpx 0rpx rgba(0, 0, 0, 0.1);
-		border-radius: 10rpx;
-		margin: 20rpx auto;
-
-		display: flex;
-		position: relative;
-		padding: 30rpx 26rpx 30rpx 80rpx;
 
-		.image-wrapper {
-			width: 150rpx;
-			height: 150rpx;
-			flex-shrink: 0;
-			position: relative;
+		.empty-tips {
+			display: flex;
+			font-size: $font-sm + 2rpx;
+			color: $font-color-disabled;
 
-			image {
-				border-radius: 8rpx;
+			.navigator {
+				color: #f65067;
+				margin-left: 16rpx;
 			}
 		}
+	}
+}
+
+/* 购物车列表项 */
+.cart-item {
+	width: 710rpx;
+	height: 210rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 10rpx 0rpx rgba(0, 0, 0, 0.1);
+	border-radius: 10rpx;
+	margin: 20rpx auto;
+
+	display: flex;
+	position: relative;
+	padding: 30rpx 26rpx 30rpx 80rpx;
+
+	.image-wrapper {
+		width: 150rpx;
+		height: 150rpx;
+		flex-shrink: 0;
+		position: relative;
 
-		.checkbox {
-			position: absolute;
-			top: 0;
-			bottom: 0;
-			left: -65rpx;
-			margin: auto 0;
-			height: 50rpx;
-			z-index: 8;
-			font-size: 44rpx;
-			line-height: 1;
-			padding: 4rpx;
-			color: $font-color-disabled;
-			background: #fff;
-			border-radius: 50px;
+		image {
+			border-radius: 8rpx;
 		}
+	}
 
-		.item-right {
-			display: flex;
-			flex-direction: column;
-			flex: 1;
-			overflow: hidden;
-			position: relative;
-			padding-left: 30rpx;
+	.checkbox {
+		position: absolute;
+		top: 0;
+		bottom: 0;
+		left: -65rpx;
+		margin: auto 0;
+		height: 50rpx;
+		z-index: 8;
+		font-size: 44rpx;
+		line-height: 1;
+		padding: 4rpx;
+		color: $font-color-disabled;
+		background: #fff;
+		border-radius: 50px;
+	}
 
-			.munbox {
-				width: 144rpx;
-				height: 44rpx;
-				position: absolute;
-				bottom: 0;
-				right: 0;
+	.item-right {
+		display: flex;
+		flex-direction: column;
+		flex: 1;
+		overflow: hidden;
+		position: relative;
+		padding-left: 30rpx;
 
-				input {
-					display: inline-block;
-					text-align: center;
-				}
+		.munbox {
+			width: 144rpx;
+			height: 44rpx;
+			position: absolute;
+			bottom: 0;
+			right: 0;
 
-				image {
-					flex-shrink: 0;
-					width: 44rpx;
-					height: 44rpx;
-				}
+			input {
+				display: inline-block;
+				text-align: center;
 			}
 
-			.title,
-			.price {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				height: 40rpx;
-				line-height: 40rpx;
+			image {
+				flex-shrink: 0;
+				width: 44rpx;
+				height: 44rpx;
 			}
+		}
 
-			.attr {
-				font-size: $font-sm + 2rpx;
-				color: $font-color-light;
-				height: 50rpx;
-				line-height: 50rpx;
+		.title,
+		.price {
+			font-size: $font-base + 2rpx;
+			color: $font-color-dark;
+			height: 40rpx;
+			line-height: 40rpx;
+		}
 
-				font-size: 26rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #999999;
-			}
+		.attr {
+			font-size: $font-sm + 2rpx;
+			color: $font-color-light;
+			height: 50rpx;
+			line-height: 50rpx;
 
-			.price {
-				// height: 50rpx;
-				// line-height: 50rpx;
-				padding-top: 20rpx;
-				font-size: 34rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #ff4c4c;
-			}
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #999999;
+		}
 
-			.step {
-				margin-top: 20rpx;
-			}
+		.price {
+			// height: 50rpx;
+			// line-height: 50rpx;
+			padding-top: 20rpx;
+			font-size: 34rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ff4c4c;
+		}
 
-			.title {
-				font-size: 34rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-			}
+		.step {
+			margin-top: 20rpx;
 		}
 
-		.del-btn {
-			padding: 4rpx 10rpx;
+		.title {
 			font-size: 34rpx;
-			height: 50rpx;
-			color: $font-color-light;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
 		}
 	}
 
-	/* 底部栏 */
-	.action-section {
-		/* #ifdef H5 */
-		margin-bottom: 100rpx;
-		/* #endif */
-		position: fixed;
-		left: 30rpx;
-		bottom: 30rpx;
-		z-index: 95;
-		display: flex;
-		align-items: center;
-		width: 690rpx;
-		height: 100rpx;
-		padding: 0 30rpx;
-		background: rgba(255, 255, 255, 0.9);
-		box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-		border-radius: 16rpx;
-
-		.checkbox {
-			height: 52rpx;
-			position: relative;
+	.del-btn {
+		padding: 4rpx 10rpx;
+		font-size: 34rpx;
+		height: 50rpx;
+		color: $font-color-light;
+	}
+}
+
+/* 底部栏 */
+.action-section {
+	/* #ifdef H5 */
+	margin-bottom: 100rpx;
+	/* #endif */
+	position: fixed;
+	left: 30rpx;
+	bottom: 30rpx;
+	z-index: 95;
+	display: flex;
+	align-items: center;
+	width: 690rpx;
+	height: 100rpx;
+	padding: 0 30rpx;
+	background: rgba(255, 255, 255, 0.9);
+	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
+	border-radius: 16rpx;
+
+	.checkbox {
+		height: 52rpx;
+		position: relative;
 
-			.icon-checked-box {
-				border-radius: 50rpx;
-				background-color: #ffffff;
-				width: 52rpx;
-				height: 100%;
-				position: relative;
-				z-index: 5;
-				font-size: 53rpx;
-				line-height: 1;
-				color: $font-color-light;
-			}
+		.icon-checked-box {
+			border-radius: 50rpx;
+			background-color: #ffffff;
+			width: 52rpx;
+			height: 100%;
+			position: relative;
+			z-index: 5;
+			font-size: 53rpx;
+			line-height: 1;
+			color: $font-color-light;
+		}
 
-			.icon-checked {
-				color: $base-color;
-			}
+		.icon-checked {
+			color: $base-color;
 		}
+	}
 
-		.clear-btn {
-			position: absolute;
-			left: 26rpx;
-			top: 0;
-			z-index: 4;
-			width: 0;
-			height: 52rpx;
-			line-height: 52rpx;
-			padding-left: 38rpx;
-			font-size: $font-base;
-			color: #fff;
-			background: $font-color-disabled;
-			border-radius: 0 50px 50px 0;
-			opacity: 0;
-			transition: 0.2s;
-
-			&.show {
-				opacity: 1;
-				width: 120rpx;
-			}
+	.clear-btn {
+		position: absolute;
+		left: 26rpx;
+		top: 0;
+		z-index: 4;
+		width: 0;
+		height: 52rpx;
+		line-height: 52rpx;
+		padding-left: 38rpx;
+		font-size: $font-base;
+		color: #fff;
+		background: $font-color-disabled;
+		border-radius: 0 50px 50px 0;
+		opacity: 0;
+		transition: 0.2s;
+
+		&.show {
+			opacity: 1;
+			width: 120rpx;
 		}
+	}
 
-		.total-box {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			text-align: right;
-			padding-right: 40rpx;
+	.total-box {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		text-align: right;
+		padding-right: 40rpx;
 
-			.price {
-				font-size: $font-lg;
-				color: $font-color-dark;
-			}
+		.price {
+			font-size: $font-lg;
+			color: $font-color-dark;
+		}
 
-			.coupon {
-				font-size: $font-sm;
-				color: $font-color-light;
+		.coupon {
+			font-size: $font-sm;
+			color: $font-color-light;
 
-				text {
-					color: $font-color-dark;
-				}
+			text {
+				color: $font-color-dark;
 			}
 		}
-
-		.confirm-btn {
-			padding: 0 38rpx;
-			margin: 0;
-			border-radius: 100px;
-			height: 76rpx;
-			line-height: 76rpx;
-			font-size: $font-base + 2rpx;
-			background: $base-color;
-		}
 	}
 
-	/* 复选框选中状态 */
-	.action-section .checkbox.checked,
-	.cart-item .checkbox.checked {
-		color: $base-color;
+	.confirm-btn {
+		padding: 0 38rpx;
+		margin: 0;
+		border-radius: 100px;
+		height: 76rpx;
+		line-height: 76rpx;
+		font-size: $font-base + 2rpx;
+		background: $base-color;
+	}
+}
+
+/* 复选框选中状态 */
+.action-section .checkbox.checked,
+.cart-item .checkbox.checked {
+	color: $base-color;
+}
+
+.cart-hand {
+	width: 750rpx;
+	height: 88rpx;
+	background: #ffffff;
+	font-size: 30rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #333333;
+	line-height: 88rpx;
+	padding-left: 28rpx;
+	padding-right: 26rpx;
+
+	.hand-tit {
+		text {
+			color: #ff4c4c;
+		}
 	}
 
-	.cart-hand {
-		width: 750rpx;
-		height: 88rpx;
-		background: #ffffff;
-		font-size: 30rpx;
+	.hand-btn {
+		width: 164rpx;
+		height: 62rpx;
+		border: 2rpx solid #ff4c4c;
+		border-radius: 31rpx;
+		font-size: 26rpx;
 		font-family: PingFang SC;
 		font-weight: bold;
-		color: #333333;
-		line-height: 88rpx;
-		padding-left: 28rpx;
-		padding-right: 26rpx;
-
-		.hand-tit {
-			text {
-				color: #ff4c4c;
-			}
-		}
-
-		.hand-btn {
-			width: 164rpx;
-			height: 62rpx;
-			border: 2rpx solid #ff4c4c;
-			border-radius: 31rpx;
-			font-size: 26rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #ff4c4c;
-			line-height: 62rpx;
-			text-align: center;
-		}
+		color: #ff4c4c;
+		line-height: 62rpx;
+		text-align: center;
 	}
+}
 </style>

+ 191 - 199
pages/category/business.vue

@@ -64,257 +64,249 @@
 				</view>
 			</view>
 		</view> -->
-		<view class="kong">
-			<u-empty mode="data" text="敬请期待"></u-empty>
-		</view>
+		<view class="kong"><u-empty mode="data" text="敬请期待"></u-empty></view>
 	</view>
 </template>
 
 <script>
-	import {
-		tabbar
-	} from '@/utils/tabbar.js';
-	export default {
-		data() {
-			return {
-				tabbar: tabbar,
-				current: 1
-			};
-		},
-	};
+export default {
+	data() {
+		return {};
+	}
+};
 </script>
 
 <style lang="less">
-	.kong {
-		height: 100vh;
+.kong {
+	height: 100vh;
+}
+
+.search-top {
+	position: fixed;
+	top: 0;
+	z-index: 99;
+}
+
+.search {
+	justify-content: flex-start;
+	padding: 10rpx 32rpx 20rpx;
+	align-items: center;
+	background-color: #fff;
+
+	.address {
+		width: 32rpx;
+		height: 38rpx;
 	}
 
-	.search-top {
-		position: fixed;
-		top: 0;
-		z-index: 99;
+	.shop-name {
+		height: 38rpx;
+		position: relative;
+		top: -4rpx;
+		z-index: 100;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #666;
+		padding-left: 10rpx;
 	}
 
-	.search {
-		justify-content: flex-start;
-		padding: 10rpx 32rpx 20rpx;
-		align-items: center;
-		background-color: #fff;
+	.shop-jt {
+		margin-left: 8rpx;
+		width: 16rpx;
+		height: 10rpx;
+	}
 
-		.address {
-			width: 32rpx;
-			height: 38rpx;
-		}
+	.input-box {
+		margin-left: 10rpx;
+		position: relative;
+		z-index: 99;
+		width: 520rpx;
+		height: 60rpx;
+		// background: rgba(255, 255, 255, 0.4);
+		border-radius: 30rpx;
 
-		.shop-name {
-			height: 38rpx;
+		.input-content {
 			position: relative;
-			top: -4rpx;
-			z-index: 100;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #666;
-			padding-left: 10rpx;
-		}
-
-		.shop-jt {
-			margin-left: 8rpx;
-			width: 16rpx;
-			height: 10rpx;
-		}
+			z-index: 11;
+			// border-radius: 99rpx;
+			flex-grow: 1;
+			padding: 5rpx 30rpx;
+			background: #f6f6f6;
+
+			.iconsearch {
+				font-size: 50rpx;
+				color: #ffffff;
+			}
 
-		.input-box {
-			margin-left: 10rpx;
-			position: relative;
-			z-index: 99;
-			width: 520rpx;
-			height: 60rpx;
-			// background: rgba(255, 255, 255, 0.4);
-			border-radius: 30rpx;
-
-			.input-content {
-				position: relative;
-				z-index: 11;
-				// border-radius: 99rpx;
+			.input {
+				margin-left: 19rpx;
 				flex-grow: 1;
-				padding: 5rpx 30rpx;
-				background: #F6F6F6;
+				color: #666;
+				background: #f6f6f6;
 
-				.iconsearch {
-					font-size: 50rpx;
-					color: #ffffff;
-				}
-
-				.input {
-					margin-left: 19rpx;
-					flex-grow: 1;
-					color: #666;
-					background: #F6F6F6;
-
-					input {
-						font-size: 28rpx;
-					}
+				input {
+					font-size: 28rpx;
 				}
 			}
-
-			.input-button {
-				padding-left: 20rpx;
-				// font-size: $font-base;
-				height: 100%;
-			}
 		}
 
-		.search-tit {
-			font-size: 28rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #666666;
-			flex-shrink: 0;
-			padding-left: 10rpx;
+		.input-button {
+			padding-left: 20rpx;
+			// font-size: $font-base;
+			height: 100%;
 		}
 	}
 
-	.shop {
-		// margin-top: 20rpx;
-		background: #ffffff;
-		padding: 0 12rpx;
+	.search-tit {
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #666666;
+		flex-shrink: 0;
+		padding-left: 10rpx;
+	}
+}
+
+.shop {
+	// margin-top: 20rpx;
+	background: #ffffff;
+	padding: 0 12rpx;
 
-		.shop-title {
-			padding: 30rpx 0 20rpx;
+	.shop-title {
+		padding: 30rpx 0 20rpx;
+		display: flex;
+		align-items: center;
+		border-bottom: 1px solid #e3e6e7;
+
+		.shop-item {
+			width: 25%;
 			display: flex;
 			align-items: center;
-			border-bottom: 1px solid #e3e6e7;
-
-			.shop-item {
-				width: 25%;
-				display: flex;
-				align-items: center;
-				justify-content: center;
+			justify-content: center;
 
-				.sitem-font {
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #333333;
-				}
+			.sitem-font {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
 
-				.jt-down {
-					width: 10rpx;
-					height: 8rpx;
-					margin-left: 12rpx;
-				}
+			.jt-down {
+				width: 10rpx;
+				height: 8rpx;
+				margin-left: 12rpx;
 			}
 		}
+	}
+
+	.shop-main {
+		padding: 32rpx 18rpx 0 12rpx;
+		align-items: flex-start;
+		justify-content: flex-start;
+
+		.main-left {
+			width: 180rpx;
+			height: 180rpx;
+			border-radius: 10rpx;
+		}
 
-		.shop-main {
-			padding: 32rpx 18rpx 0 12rpx;
+		.main-right {
+			width: 500rpx;
+			justify-content: space-between;
 			align-items: flex-start;
-			justify-content: flex-start;
+			margin-left: 20rpx;
+			padding: 13rpx 0 35rpx;
+			border-bottom: 1px solid #eaeced;
 
-			.main-left {
-				width: 180rpx;
-				height: 180rpx;
-				border-radius: 10rpx;
-			}
+			.shopm-info {
+				max-width: 60%;
+				line-height: 1;
 
-			.main-right {
-				width: 500rpx;
-				justify-content: space-between;
-				align-items: flex-start;
-				margin-left: 20rpx;
-				padding: 13rpx 0 35rpx;
-				border-bottom: 1px solid #eaeced;
-
-				.shopm-info {
-					max-width: 60%;
-					line-height: 1;
-
-					.shopm-title {
-						display: flex;
-						justify-content: flex-start;
-
-						.shopmt-font {
-							font-size: 34rpx;
-							font-family: PingFang SC;
-							font-weight: bold;
-							color: #333333;
-						}
-
-						.shopmt-good {
-							margin-left: 6rpx;
-							width: 30rpx;
-							height: 30rpx;
-							border: 1px solid #ff4c4c;
-							border-radius: 5rpx;
-							font-size: 20rpx;
-							font-family: PingFang SC;
-							font-weight: 500;
-							color: #ff4c4c;
-							text-align: center;
-							line-height: 30rpx;
-						}
-					}
+				.shopm-title {
+					display: flex;
+					justify-content: flex-start;
 
-					.address {
-						margin-top: 16rpx;
-						font-size: 24rpx;
+					.shopmt-font {
+						font-size: 34rpx;
 						font-family: PingFang SC;
-						font-weight: 500;
-						color: #666666;
+						font-weight: bold;
+						color: #333333;
 					}
 
-					.shopmt-tip {
-						position: relative;
-						margin-top: 52rpx;
-						padding: 8rpx;
-						background: #fcf3f0;
-						border-radius: 16rpx 16rpx 16rpx 0px;
+					.shopmt-good {
+						margin-left: 6rpx;
+						width: 30rpx;
+						height: 30rpx;
+						border: 1px solid #ff4c4c;
+						border-radius: 5rpx;
 						font-size: 20rpx;
 						font-family: PingFang SC;
 						font-weight: 500;
-						color: #ff440d;
+						color: #ff4c4c;
+						text-align: center;
+						line-height: 30rpx;
 					}
 				}
 
-				.right {
-					height: 100%;
-					margin-top: 5rpx;
+				.address {
+					margin-top: 16rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #666666;
+				}
+
+				.shopmt-tip {
+					position: relative;
+					margin-top: 52rpx;
+					padding: 8rpx;
+					background: #fcf3f0;
+					border-radius: 16rpx 16rpx 16rpx 0px;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ff440d;
+				}
+			}
+
+			.right {
+				height: 100%;
+				margin-top: 5rpx;
+				display: flex;
+				flex-direction: column;
+
+				.mright-top {
 					display: flex;
-					flex-direction: column;
-
-					.mright-top {
-						display: flex;
-						justify-content: flex-end;
-						align-items: center;
-
-						.mrt-image {
-							width: 20rpx;
-							height: 28rpx;
-						}
-
-						.mrt-font {
-							margin-left: 8rpx;
-							font-size: 22rpx;
-							font-family: PingFang SC;
-							font-weight: 500;
-							color: #666666;
-						}
+					justify-content: flex-end;
+					align-items: center;
+
+					.mrt-image {
+						width: 20rpx;
+						height: 28rpx;
 					}
 
-					.mright-bottom {
-						margin-top: 80rpx;
-						display: flex;
-						justify-content: flex-end;
+					.mrt-font {
+						margin-left: 8rpx;
+						font-size: 22rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+					}
+				}
+
+				.mright-bottom {
+					margin-top: 80rpx;
+					display: flex;
+					justify-content: flex-end;
 
-						.mrb-item {
-							width: 46rpx;
-							height: 46rpx;
-							margin-left: 14rpx;
-						}
+					.mrb-item {
+						width: 46rpx;
+						height: 46rpx;
+						margin-left: 14rpx;
 					}
 				}
 			}
 		}
 	}
+}
 </style>

+ 131 - 0
pages/contract/agreement.vue

@@ -0,0 +1,131 @@
+<template>
+	<view class="box">
+		<view class="title pt20 pb30">微乐购用户/会员注册协议</view>
+		<view class="content">欢迎您访问并使用微乐购服务平台!本协议是您与微乐购平台所有者就微乐购平台服务的相关事宜所订立的协议。</view>
+		<view class="content">
+			为维护您自身权益,请您仔细阅读本协议,您点击“同意并继续”按钮后,本协议即构成对双方具有约束力的法律文件; 阅读本协议过程中,
+			如您不同意本协议或其中任何条款的约定,您应立即停止注册程序。
+		</view>
+		<view class="title">总则所有权和运营权归宁德市谦沐商务有限公司所有。(宁德市谦沐商务有限公司以下简称:谦沐公司)</view>
+		<view class="title">一、用户协议细则</view>
+		<view class="content">1.1 用户在注册之前,应当仔细阅读本协议,并同意遵守本协议后方可成为注册用户。一旦注册成功,则用户与谦沐公司间自动形成协议关系,用户应当受本协议的约束。用户在使用特殊的服务或产品时,应当同意接受相关协议后方能使用。</view>
+		<view class="content">1.2 本协议可由谦沐公司随时更新,用户应当及时关注并同意本站不承担通知义务。本站的通知、公告、声明或其它类似内容是本协议的一部分。</view>
+		<view class="title">二、服务内容</view>
+		<view class="content">2.1 谦沐公司的具体内容由本站根据实际情况提供。</view>
+		<view class="content">2.2 本站仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、及其他与接入互联网或移动网有关的装置)及所需的费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由用户自行负担。</view>
+		<view class="title">三、用户帐号</view>
+		<view class="content">
+			3.1 经本站注册系统完成注册程序并通过身份认证的用户即成为正式用户,可以获得本站规定用户所应享有的一切权限;未经认证仅享有本站规定的部分会员权限。谦沐公司有权对会员的权限设计进行变更。
+		</view>
+		<view class="content">3.2 用户只能按照注册要求使用真实姓名,及身份证号注册。用户有义务保证密码和帐号的安全,用户利用该密码和帐号所进行的一切活动引起的任何损失或损害,由用户自行承担全部责任,本站不承担任何责任。如用户发现帐号遭到未授权的使用或发生其他任何安全问题,应立即修改帐号密码并妥善保管,如有必要,请通知本站。因黑客行为或用户的保管疏忽导致帐号非法使用,本站不承担任何责任。</view>
+		<view class="title">四、使用规则</view>
+		<view class="content">
+			4.1遵守中华人民共和国相关法律法规,包括但不限于《中华人民共和国计算机信息系统安全保护条例》、《计算机软件保护条例》、《最高人民法院关于审理涉及计算机网络著作权纠纷案件适用法律若干问题的解释(法释[2004]1号)》、《全国人大常委会关于维护互联网安全的决定》、《互联网电子公告服务管理规定》、《互联网新闻信息服务管理规定》、《互联网著作权行政保护办法》和《信息网络传播权保护条例》等有关计算机互联网规定和知识产权的法律和法规、实施办法。
+		</view>
+		<view class="content">4.2 用户对其自行发表、上传或传送的内容负全部责任,所有用户不得在本站任何页面发布、转载、传送含有下列内容之一的信息,否则本站有权自行处理并不通知用户:</view>
+		<view class="content">
+			①违反宪法确定的基本原则的;
+		</view>
+		<view class="content">②危害国家安全,泄漏国家机密,颠覆国家政权,破坏国家统一的;</view>
+		<view class="content">③损害国家荣誉和利益的;</view>
+		<view class="content">④煽动民族仇恨、民族歧视,破坏民族团结的;</view>
+		<view class="content">⑤破坏国家宗教政策,宣扬邪教和封建迷信的;</view>
+		<view class="content">⑥散布谣言,扰乱社会秩序,破坏社会稳定的;</view>
+		<view class="content">⑦散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;</view>
+		<view class="content">⑧侮辱或者诽谤他人,侵害他人合法权益的;</view>
+		<view class="content">⑨煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;</view>
+		<view class="content">⑩以非法民间组织名义活动的;</view>
+		<view class="content">⑪含有法律、行政法规禁止的其他内容的。</view>
+		<view class="content">4.3 用户承诺对其发表或者上传于本站的所有信息(即属于《中华人民共和国著作权法》规定的作品,包括但不限于文字、图片、音乐、电影、表演和录音录像制品和电脑程序等)均享有完整的知识产权,或者已经得到相关权利人的合法授权;如用户违反本条规定造成本站被第三人索赔的,用户应全额补偿本站一切费用(包括但不限于各种赔偿费、诉讼代理费及为此支出的其它合理费用);</view>
+		<view class="content">4.4 当第三方认为用户发表或者上传于本站的信息侵犯其权利,并根据《信息网络传播权保护条例》或者相关法律规定向本站发送权利通知书时,用户同意本站可以自行判断决定删除涉嫌侵权信息,除非用户提交书面证据材料排除侵权的可能性,本站将不会自动恢复上述删除的信息</view>
+		<view class="content">
+			①不得为任何非法目的而使用网络服务系统;
+		</view>
+		<view class="content">②遵守所有与网络服务有关的网络协议、规定和程序;</view>
+		<view class="content">③不得利用本站进行任何可能对互联网的正常运转造成不利影响的行;</view>
+		<view class="content">④不得利用本站进行任何不利于本站的行为。</view>
+		<view class="content">4.5 如用户在使用网络服务时违反上述任何规定,本站有权要求用户改正或直接采取一切必要的措施(包括但不限于删除用户张贴的内容、暂停或终止用户使用网络服务的权利)以减轻用户不当行为而造成的影响。</view>
+		<view class="title">五、隐私保护</view>
+		<view class="content">
+			5.1
+			本站不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在本站的非公开内容,但下列情况除外:(1)事先获得用户的明确授权;(2)根据有关的法律法规要求;(3)按照相关政府主管部门的要求;(4)为维护社会公众的利益。
+		</view>
+		<view class="content">
+			5.2 本站可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本站同等的保护用户隐私的责任,则本站有权将用户的注册资料等提供给该第三方。
+		</view>
+		<view class="content">
+			5.3 在不透露单个用户隐私资料的前提下,本站有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。
+		</view>
+		<view class="title">六、版权声明</view>
+		<view class="content">
+			6.1 本站的文字、图、音频、视频等版权均归谦沐公司享有或与作者共同享有,未经本站许可,不得任意转载。
+		</view>
+		<view class="content">
+			6.2 本站特有的标识、版面设计、编排方式等版权均属谦沐公司享有,未经本站许可,不得任意复制或转载。
+		</view>
+		<view class="content">6.3 使用本站的任何内容均应注明“来源于微乐购”及署上作者姓名,按法律规定需要支付稿酬的,应当通知本站及作者及支付稿酬,并独立承担一切法律责任。</view>
+		<view class="content">6.4 本站享有所有作品用于其它用途的优先权,包括但不限于网站、电子杂志、平面出版等,但在使用前会通知作者,并按同行业的标准支付稿酬。</view>
+		<view class="content">6.5 本站所有内容仅代表作者自己的立场和观点,与本站无关,由作者本人承担一切法律责任。</view>
+		<view class="content">6.6 恶意转载本站内容的,本站保留将其诉诸法律的权利。</view>
+		<view class="content">七、责任声明</view>
+		<view class="content">
+			7.1 用户明确同意其使用本站网络服务所存在的风险及一切后果将完全由用户本人承担,微乐购对此不承担任何责任。
+		</view>
+		<view class="content">
+			7.2 本站无法保证网络服务一定能满足用户的要求,也不保证网络服务的及时性、安全性、准确性。
+		</view>
+		<view class="content">
+			7.3 本站不保证为方便用户而设置的外部链接的准确性和完整性,同时,对于该等外部链接指向的不由本站实际控制的任何网页上的内容,本站不承担任何责任。
+		</view>
+		<view class="content">
+			7.4 对于因不可抗力或本站不能控制的原因造成的网络服务中断或其它缺陷,本站不承担任何责任,但将尽力减少因此而给用户造成的损失和影响。
+		</view>
+		<view class="content">
+			7.5 对于站向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本站无需承担任何责任:</br>
+			(1)本站向用户免费提供的各项网络服务;</br>(2)本站向用户赠送的任何产品或者服务。
+		</view>
+		<view class="content">
+			7.6 本站有权于任何时间暂时或永久修改或终止本服务(或其任何部分),而无论其通知与否,本站对用户和任何第三人均无需承担任何责任。
+		</view>
+		<view class="content">
+			7.7 任务补贴活动的特别提醒:
+		</view>
+		<view class="content">
+			①本站是为了前期推广才推出的任务补贴活动;
+		</view>
+		<view class="content">②您已经确认了参加任务补贴活动时购买的产品的价值了,您对产品的价值与你购买的价格没有异议。本站不会对您购买后的产品进行保价行为。</view>
+		<view class="content">③任务补贴活动时给您的总任务数只是一个最高补贴数,您只能作为参考不能当成您的报酬,只有通过您完成任务后获得的补贴才能算您的报酬。</view>
+		<view class="content">④您在参加任务补贴活动时一定按照自己需求购买产品,不能当成投资或投机行为购买产品,因此造成损失本站概不负责。</view>
+		<view class="content">⑤您不能听信任何人在推广活动时的口头承诺,一切以本协议为准。</view>
+		<view class="content">⑥任务补贴活动会根据总的推广量或分享量随时调整或取消。。</view>
+		<view class="content">⑦因政策不允许此种补贴活动时,本站立即取消本活动.</view>
+		<view class="title">八、附则</view>
+		<view class="content">
+			8.1 本协议的订立、执行和解释及争议的解决均应适用中华人民共和国法律。
+		</view>
+		<view class="content">
+			8.2 如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,本协议的其余条款仍应有效并且有约束力。
+		</view>
+		<view class="content">
+			8.3 本协议解释权及修订权归谦沐公司所有。
+		</view>
+	</view>
+</template>
+
+<script></script>
+
+<style>
+	.box{
+		padding: 30rpx;
+	}
+.title {
+	font-size: 32rpx;
+	font-weight: 700;
+	line-height: 2;
+}
+.content {
+	font-size: 28rpx;
+	color: #666;
+	line-height: 2;
+}
+</style>

+ 211 - 0
pages/contract/privacy.vue

@@ -0,0 +1,211 @@
+<template>
+	<view class="box">
+		<view class="title">隐私政策</view>
+
+		<view class="title">隐私政策引言</view>
+		<view class="content">
+			我们重视用户的隐私。您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。本《隐私政策》与您所使用的我们平台服务息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。
+		</view>
+		<view class="content">您使用或继续使用我们的服务,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。</view>
+		<view class="content">
+			我们可能收集的信息
+			我们提供服务时,可能会收集、储存和使用下列与您有关的信息。如果您不提供相关信息,可能无法注册成为我们的用户或无法享受我们提供的某些服务,或者无法达到相关服务拟达到的效果。
+		</view>
+		<view class="title">1.您提供的信息:</view>
+		<view class="content">(1)您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件或银行卡号等;</view>
+		<view class="content">(2)您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。</view>
+		<view class="content">2.其他方分享的您的信息</view>
+		<view class="content">(1)其他方使用我们的服务时所提供有关您的共享信息。</view>
+		<view class="content">1.日志信息,指您使用我们的服务时,系统可能通过 cookies 、 web beacon 或其他方式自动采集的技术信息,包括: :</view>
+		<view class="content">(1)设备或软件信息,例如您的移动设备、网页浏览器或用于接入我们服务的其他程序所提供的配置信息、您的 IP 地址和移动设备所用的版本和设备识别码</view>
+		<view class="content">
+			(2)在使用我们服务时搜索或浏览的信息,例如您使用的网页搜索词语、访问的社交媒体页面 url 地址,以及您在使用我们服务时浏览或要求提供的其他信息和内容详情;
+		</view>
+		<view class="content">(3)有关您曾使用的移动应用( APP )和其他软件的信息,以及您曾经使用该等移动应用和软件的信息;</view>
+		<view class="content">(4)您通过我们的服务进行通讯的信息,例如曾通讯的账号,以及通讯时间、数据和时长;</view>
+		<view class="content">(5)您通过我们的服务分享的内容所包含的信息(元数据),例如拍摄或上传的共享照片或录像的日期、时间或地点等。</view>
+		<view class="title">2.位置信息,指您开启设备定位功能并使用我们基于位置提供的相关服务时,收集的有关您位置的信息,包括:</view>
+		<view class="content">(1)您通过具有定位功能的移动设备使用我们的服务时,通过 GPS 或 WiFi 等方式收集的您的地理位置信息;</view>
+		<view class="content">
+			(2)您或其他用户提供的包含您所处地理位置的实时信息,例如您提供的账户信息中包含的您所在地区信息,您或其他人上传的显示您当前或曾经所处地理位置的共享信息,您或其他人共享的照片包含的地理标记信息;
+		</view>
+		<view class="content">(3)您可以通过关闭定位功能,停止对您的地理位置信息的收集。</view>
+		<view class="title">3.我们可能如何使用信息 我们可能将在向您提供服务的过程之中所收集的信息用作下列用途:</view>
+		<view class="content">1.向您提供服务;</view>
+		<view class="content">2.在我们提供服务时,用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途,确保我们向您提供的产品和服务的安全性</view>
+		<view class="content">3.帮助我们设计新服务,改善我们现有服务;</view>
+		<view class="content">
+			4.使我们更加了解您如何接入和使用我们的服务,从而针对性地回应您的个性化需求,例如语言设定、位置设定、个性化的帮助服务和指示,或对您和其他用户作出其他方面的回应;
+		</view>
+		<view class="content">5.向您提供与您更加相关的广告以替代普遍投放的广告;</view>
+		<view class="content">6.评估我们服务中的广告和其他促销及推广活动的效果,并加以改善;</view>
+		<view class="content">7.软件认证或管理软件升级;</view>
+		<view class="content">8.让您参与有关我们产品和服务的调查。</view>
+		<view class="content">
+			为了让您有更好的体验、改善我们的服务或您同意的其他用途,在符合相关法律法规的前提下,我们可能将通过某一项服务所收集的信息,以汇集信息或者个性化的方式,用于我们的其他服务。例如,在您使用我们的一项服务时所收集的信息,可能在另一服务中用于向您提供特定内容,或向您展示与您相关的、非普遍推送的信息。如果我们在相关服务中提供了相应选项,您也可以授权我们将该服务所提供和储存的信息用于我们的其他服务。
+		</view>
+		<view class="title">您如何访问和控制自己的个人信息</view>
+		<view class="content">
+			我们将尽一切可能采取适当的技术手段,保证您可以访问、更新和更正自己的注册信息或使用我们的服务时提供的其他个人信息。在访问、更新、更正和删除前述信息时,我们可能会要求您进行身份验证,以保障账户安全。
+		</view>
+		<view class="title">注销账户</view>
+		<view class="content">
+			一、注销账号的后果 您可以通过客服的联系方式联系我们要求注销账户或在我们的产品中直接申请注销账号。
+			敬请您注意并知悉,您提交注销申请后,我们需要15天时间处理您的账户注销。如您在15天内没有再次使用该注销账号登录,我们将在15天后清除您的账号信息,完成注销,如果您在15天内进行了此账号的登录,则视为您主动放弃此次注销操作的申请。当您注销账号后,将(可能)产生包括但不限于如下后果:
+		</view>
+		<view class="content">1.注销账号后,您将无法登录、使用该账号及账号原验证手机或邮箱登录咪兔和合商城与服务,即您将无法再以此账号登录、使用咪兔和合商城与服务。</view>
+		<view class="content">
+			2.注销账号后,您曾通过该账号登录、使用的咪兔和合商城与服务下的所有内容、信息、数据、记录将会被全部删除或匿名化处理(但国家法律法规、规章、规范性文件,政府的政策、命令等另有要求或为履行我们的合规义务的除外),您也无法再检索、访问、获取、继续使用和找回这些信息或数据,包括但不限于:
+		</view>
+		<view class="content">(1)该账号下的您自主设置的个人资料(如:头像、昵称等);</view>
+		<view class="content">(2)该账号下您主动提供或在使用过程中授权我们收集的个人信息(如:绑定的手机号、邮箱等);</view>
+		<view class="content">(3)其他与该账号相关的内容、信息、数据、历史记录或服务记录等。</view>
+		<view class="content">3.注销账号后,您在使用咪兔和合商城产品与服务期间产生的账号内资产和虚拟权益将视为自动放弃,无法予以退还或退换,包括但不限于:</view>
+		<view class="content">(1)您在咪兔和合商城产品与服务中的账户等级、会员等级等各类身份权益、积分、金币等;</view>
+		<view class="content">(2)其他已产生但未消耗完毕的权益及资产或未来的预期收益。</view>
+		<view class="content">
+			4.账号注销具有不可逆转和不可撤销性,账号一旦注销完成,将无法恢复,您的原账号对应的数字ID将可能分配给其他新注册的用户。如果您在注销后以相同手机号码或相同电子邮箱再次向我们申请账号,此时该账号将默认为新的用户账号。
+		</view>
+		<view class="content">
+			5.账号一旦注销,您将不再享有您与我们签署的相关用户协议、其他权利义务性文件中约定的适用于注册用户的权利,但法律法规、规章、规范性文件,政府的政策、命令等另有要求或用户服务协议中另有规定的除外。
+		</view>
+		<view class="content">二、注销须满足的条件</view>
+		<view class="content">在您向我们申请注销账号前,为保障您的账号安全和财产权益,您的账号需同时满足以下条件:</view>
+		<view class="content">1.该账号是您通过我们的官方渠道注册的账号,且为您本人注册、使用的账号;</view>
+		<view class="content">2.该账号内无未处理完毕的交易或已提供服务但未支付的订单或服务;</view>
+		<view class="content">3.该账号下无未处理完毕的纠纷(如:与其他用户的侵权纠纷、投诉举报或被投诉举报)。</view>
+		<view class="title">我们可能分享的信息</view>
+		<view class="content">除以下情形外,未经您同意,我们以及我们的关联公司不会与任何第三方分享您的个人信息:</view>
+		<view class="content">
+			1.我们以及我们的关联公司,可能将您的个人信息与我们的关联公司、合作伙伴及第三方服务供应商、承包商及代理(例如代表我们发出电子邮件或推送通知的通讯服务提供商、为我们提供位置数据的地图服务供应商)分享(他们可能并非位于您所在的法域),用作下列用途:
+		</view>
+		<view class="content">(1)向您提供我们的服务;</view>
+		<view class="content">(2)实现“我们可能如何使用信息”部分所述目的;</view>
+		<view class="content">(3)履行我们在《服务协议》或本《隐私政策》中的义务和行使我们的权利;</view>
+		<view class="content">(4)理解、维护和改善我们的服务。</view>
+		<view class="content">3、我们通过间接获得方式收集到的您的个人信息</view>
+		<view class="content">
+			如我们或我们的关联公司与任何上述第三方分享您的个人信息,我们将努力确保该等第三方在使用您的个人信息时遵守本《隐私政策》及我们要求其遵守的其他适当的保密和安全措施。
+		</view>
+		<view class="content">
+			2.随着我们业务的持续发展,我们以及我们的关联公司有可能进行合并、收购、资产转让或类似的交易,您的个人信息有可能作为此类交易的一部分而被转移。我们将在转移前通知您。
+			我们或我们的关联公司还可能为以下需要而保留、保存或披露您的个人信息:
+		</view>
+		<view class="content">(1)遵守适用的法律法规;</view>
+		<view class="content">(2)遵守法院命令或其他法律程序的规定;</view>
+		<view class="content">(3)遵守相关政府机关的要求;</view>
+		<view class="content">(4)为遵守适用的法律法规、维护社会公共利益,或保护我们的客户、我们或我们的集团公司、其他用户或雇员的人身和财产安全或合法权益所合理必需的用途。</view>
+		<view class="title">信息安全</view>
+		<view class="content">我们仅在本《隐私政策》所述目的所必需的期间和法律法规要求的时限内保留您的个人信息。</view>
+		<view class="content">
+			我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如 SSL
+			)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。
+		</view>
+		<view class="title">您分享的信息</view>
+		<view class="content">
+			我们的多项服务,可让您不仅与自己的社交网络,也与使用该服务的所有用户公开分享您的相关信息,例如,您在我们的服务中所上传或发布的信息(包括您公开的个人信息、您建立的名单)、您对其他人上传或发布的信息作出的回应,以及包括与这些信息有关的位置数据和日志信息。使用我们服务的其他用户也有可能分享与您有关的信息(包括位置数据和日志信息)。特别是,我们的社交媒体服务,是专为使您与世界各地的用户共享信息而设计,您可以使共享信息实时、广泛地传递。只要您不删除共享信息,有关信息会一直留存在公共领域;即使您删除共享信息,有关信息仍可能由其他用户或不受我们控制的非关联第三方独立地缓存、复制或储存,或由其他用户或该等第三方在公共领域保存。
+		</view>
+		<view class="content">
+			因此,请您谨慎考虑通过我们的服务上传、发布和交流的信息内容。在一些情况下,您可通过我们某些服务的隐私设定来控制有权浏览您共享信息的用户范围。如要求从我们的服务中删除您的相关信息,请通过该等特别服务条款提供的方式操作。
+		</view>
+		<view class="title">您分享的敏感个人信息</view>
+		<view class="content">某些个人信息因其特殊性可能被认为是敏感个人信息,例如您的种族、宗教、个人健康和医疗信息等。相比其他个人信息,敏感个人信息受到更加严格的保护。</view>
+		<view class="content">
+			请注意,您在使用我们的服务时所提供、上传或发布的内容和信息(例如有关您社交活动的照片等信息),可能会泄露您的敏感个人信息。您需要谨慎地考虑,是否在使用我们的服务时披露相关敏感个人信息。
+		</view>
+		<view class="content">您同意按本《隐私政策》所述的目的和方式来处理您的敏感个人信息。</view>
+		<view class="title">我们可能如何收集信息</view>
+		<view class="content">我们或我们的第三方合作伙伴,可能通过 cookies 和 web, beacon 收集和使用您的信息,并将该等信息储存为日志信息。</view>
+		<view class="content">我们使用自己的 cookies 和 web beacon ,目的是为您提供更个性化的用户体验和服务,并用于以下用途:</view>
+		<view class="content">1.记住您的身份。例如: cookies 和 web beacon 有助于我们辨认您作为我们的注册用户的身份,或保存您向我们提供的有关您的喜好或其他信息;</view>
+		<view class="content">2.分析您使用我们服务的情况。例如,我们可利用 cookies 和 web beacon 来了解您使用我们的服务进行什么活动,或哪些网页或服务最受您的欢迎;</view>
+		<view class="content">
+			3.广告优化。 Cookies 和 web beacon 有助于我们根据您的信息,向您提供与您相关的广告而非进行普遍的广告投放。我们为上述目的使用 cookies 和 web beacon 的同时,可能将通过
+			cookies 和 web beacon 收集的非个人身份信息,经统计加工后提供给广告商或其他合作伙伴,用于分析用户如何使用我们的服务,并用于广告服务。
+		</view>
+		<view class="content">
+			我们的产品和服务上可能会有广告商或其他合作方放置的 cookies 和 web beacon 。这些 cookies 和 web beacon
+			可能会收集与您相关的非个人身份信息,以用于分析用户如何使用该等服务、向您发送您可能感兴趣的广告,或用于评估广告服务的效果。这些第三方 cookies 和 web beacon
+			收集和使用该等信息,不受本《隐私政策》约束,而是受相关使用者的隐私政策约束,我们不对第三方的 cookies 或 web beacon 承担责任。
+		</view>
+		<view class="content">
+			您可以通过浏览器设置拒绝或管理 cookies 或 web beacon 。但请注意,如果停用 cookies 或 web beacon
+			,您有可能无法享受最佳的服务体验,某些服务也可能无法正常使用。同时,您还会收到同样数量的广告,但这些广告与您的相关性会降低。
+		</view>
+		<view class="title">广告服务</view>
+		<view class="content">我们可能使用您的相关信息,向您提供与您更加相关的广告。</view>
+		<view class="content">我们也可能使用您的信息,通过我们的服务、电子邮件或其他方式向您发送营销信息,提供或推广我们或第三方的如下商品和服务</view>
+		<view class="content">
+			1.我们的商品或服务,我们的关联公司和合作伙伴的商品或服务,包括即时通讯服务、网上媒体服务、互动娱乐服务、社交网络服务、付款服务、互联网搜索服务、位置和地图服务、应用软件和服务、数据管理软件和服务、网上广告服务、互联网金融,以及其他社交媒体、娱乐、电子商务、资讯和通讯软件或服务(统称“互联网服务”);:
+		</view>
+		<view class="content">
+			2.第三方互联网服务供应商,以及与下列有关的第三方商品或服务:食物和餐饮、体育、音乐、电影、电视、现场表演及其他艺术和娱乐、书册、杂志和其他刊物、服装和配饰、珠宝、化妆品、个人健康和卫生、电子、收藏品、家用器皿、电器、家居装饰和摆设、宠物、汽车、酒店、交通和旅游、银行、保险及其他金融服务、会员积分和奖励计划,以及我们认为可能与您相关的其他商品或服务。
+		</view>
+		<view class="content">
+			如您不希望我们将您的个人信息用作前述广告用途,您可以通过我们在广告中提供的相关提示,或在特定服务中提供的指引,要求我们停止为上述用途使用您的个人信息。
+		</view>
+		<view class="title">我们可能向您发送的邮件和信息。</view>
+		<view class="title">1.邮件和信息推送</view>
+		<view class="content">
+			您在使用我们的服务时,我们可能使用您的信息向您的设备发送电子邮件、新闻或推送通知。如您不希望收到这些信息,可以按照我们的相关提示,在设备上选择取消订阅。
+		</view>
+		<view class="title">2.与服务有关的公告</view>
+		<view class="content">我们可能在必要时(例如因系统维护而暂停某一项服务时)向您发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于推广的公告。</view>
+		<view class="title">隐私政策的适用例外</view>
+		<view class="content">
+			我们的服务可能包括或链接至第三方提供的社交媒体或其他服务(包括网站)。例如:您利用“分享”键将某些内容分享到我们的服务,或您利用第三方连线服务登录我们的服务。这些功能可能会收集您的相关信息(包括您的日志信息),并可能在您的电脑装置
+			cookies ,从而正常运行上述功能;
+		</view>
+		<view class="content">
+			我们通过广告或我们服务的其他方式向您提供链接,使您可以接入第三方的服务或网站。
+			该等第三方社交媒体或其他服务可能由相关的第三方或我们运营。您使用该等第三方的社交媒体服务或其他服务(包括您向该等第三方提供的任何个人信息),须受该第三方的服务条款及隐私政策(而非《通用服务条款》或本《隐私政策》)约束,您需要仔细阅读其条款。本《隐私政策》仅适用于我们所收集的信息,并不适用于任何第三方提供的服务或第三方的信息使用规则,我们对任何第三方使用由您提供的信息不承担任何责任。
+		</view>
+		<view class="title">未成年人使用我们的服务</view>
+		<view class="content">
+			我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人鼓励他们的父母或监护人阅读本《隐私政策》,并建议未成年人在提交的个人信息之前寻求父母或监护人的同意和指导。
+		</view>
+		<view class="title">隐私政策的适用范围</view>
+		<view class="content">
+			除某些特定服务外,我们所有的服务均适用本《隐私政策》。这些特定服务将适用特定的隐私政策。针对某些特定服务的特定隐私政策,将更具体地说明我们在该等服务中如何使用您的信息。该特定服务的隐私政策构成本《隐私政策》的一部分。如相关特定服务的隐私政策与本《隐私政策》有不一致之处,适用该特定服务的隐私政策。
+		</view>
+		<view class="content">除本《隐私政策》另有规定外,本《隐私条款》所用词语将与《服务协议》所定义的词语具有相同的涵义。请您注意,本《隐私政策》不适用于以下情况:</view>
+		<view class="content">1.通过我们的服务而接入的第三方服务(包括任何第三方网站)收集的信息;</view>
+		<view class="content">2.通过在我们服务中进行广告服务的其他公司或机构所收集的信息。</view>
+		<view class="title">变更</view>
+		<view class="content">
+			我们可能适时修订本《隐私政策》的条款,该等修订构成本《隐私政策》的一部分。如该等修订造成您在本《隐私政策》下权利的实质减少,我们将在修订生效前通过在主页上显著位置提示或向您发送电子邮件或以其他方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的本《隐私政策》的约束。
+		</view>
+		<view class="content">
+			本《隐私政策》尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本《隐私政策》会按照本隐私权政策的规定使用和披露您的个人信息。但本《隐私政策》将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本《隐私政策》不会将这些信息对外披露或向第三方提供。本《隐私政策》会不时更新本隐私权政策。您在同意本《隐私政策》服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本《隐私政策》服务使用协议不可分割的一部分。
+		</view>
+		<!-- <view class="title">开发者:宁德市谦沐商务有限公司</view>
+		<view class="title">应用名:微乐购</view>
+		<view class="title">公司名称:宁德市谦沐商务有限公司</view>
+		<view class="title">注册地址:福建省宁德市福安市阳头街道工业路150号荣宏外滩C幢1单元303室</view>
+		<view class="title">办公地址:福建省宁德市福安市阳头街道工业路150号荣宏外滩C幢1单元303室</view>
+		<view class="title">负责人电话:17706035557</view> -->
+	</view>
+</template>
+
+<script>
+export default {};
+</script>
+
+<style>
+.box {
+	padding: 30rpx;
+}
+.title {
+	font-size: 32rpx;
+	font-weight: 700;
+	line-height: 2;
+}
+.content {
+	font-size: 28rpx;
+	color: #666;
+	line-height: 2;
+}
+.pb10 {
+	font-size: 28rpx;
+}
+</style>

+ 138 - 0
pages/contract/start.vue

@@ -0,0 +1,138 @@
+<template>
+	<view class="start">
+		<view class="background"></view>
+		<view class="popup">
+			<view class="title">温馨提示</view>
+			<scroll-view :scroll-y="true" class="content">
+				<text>欢迎使用和合商城APP。我们非常重视您的用户权益和个人信息的保护,在您使用和合商城APP服务前,请认真阅读</text>
+				<text class="money" @click="goUser">《用户协议》</text>
+				<text>和</text>
+				<text class="money" @click="goYs">《隐私政策》</text>
+				<text>
+					全部条款。我们将通过上述协议向您说明我们如何为您提供服务并保障您的用户权益,
+					如何收集、使用、保存、共享和保护您的相关信息,以及我们为您提供的访问、更正、删除和申诉您信息相关问题的方式。
+					我们会严格按照您的授权,在上述协议约定的范围内收集、存储和使用您的注册信息、设备信息、位置信息、日志信息或其他经您授权的信息。
+					您点击“同意并继续”视为您已同意上述协议的全部内容
+				</text>
+			</scroll-view>
+			<view class="button flex">
+				<text class="disagree" @click="disagree">不同意</text>
+				<text class="agree" @click="agree">同意并继续</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {};
+	},
+	onLoad() {
+		let agree = uni.getStorageSync('agree');
+		if (agree) {
+			// this.agree()
+			console.log(uni.getStorageSync('agree'),'2222232');
+			uni.redirectTo({ url: '/pages/index/index' });
+		}
+	},
+	methods: {
+		//前往用户协议
+		goUser() {
+			uni.navigateTo({ url: './agreement' });
+		},
+		goYs() {
+			uni.navigateTo({ url: './privacy' });
+		},
+		//不同意
+		disagree() {
+			plus.runtime.quit();
+		},
+		//同意
+		agree() {
+			uni.setStorageSync('agree', true);
+			uni.switchTab({
+				url: '/pages/index/index',
+				success(e) {
+					console.log(e);
+				},
+				fail(e) {
+					console.log(e);
+				}
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.money {
+	color: $base-color;
+}
+.disagree {
+	padding: 10rpx 30rpx;
+	font-size: 28rpx;
+	width: 200rpx;
+	height: 64rpx;
+	color: $base-color;
+	border-radius: 999rpx;
+	border: 2rpx solid $base-color;
+}
+.agree {
+	padding: 10rpx 30rpx;
+	width: 210rpx;
+	height: 64rpx;
+	font-size: 28rpx;
+	color: #fff;
+	background-color: $base-color;
+	border-radius: 999rpx;
+	border: 2rpx solid $base-color;
+}
+.button {
+	position: absolute;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	z-index: 0;
+	display: flex;
+	padding: 24rpx;
+	justify-content: center;
+	text-align: center;
+	justify-content: space-around;
+}
+.content {
+	position: absolute;
+	left: 0;
+	right: 0;
+	top: 100rpx;
+	bottom: 120rpx;
+	z-index: 0;
+	font-size: 28rpx;
+	padding: 0 50rpx;
+	line-height: 44rpx;
+}
+.title {
+	font-size: 36rpx;
+	padding: 20rpx 50rpx;
+}
+.background {
+	position: fixed;
+	left: 0;
+	right: 0;
+	top: 0;
+	bottom: 0;
+	z-index: 0;
+	background-color: rgba(0, 0, 0, 0.4);
+}
+.popup {
+	position: absolute;
+	z-index: 0;
+	left: 50%;
+	top: 50%;
+	transform: translate(-50%, -50%);
+	width: 600rpx;
+	height: 700rpx;
+	background-color: #fff;
+	border-radius: 30rpx;
+}
+</style>

+ 105 - 109
pages/game/game.vue

@@ -1,16 +1,13 @@
 <template>
 	<view class="center">
-		<view class="box" v-for="(item,index) in gameList " >
-			
-			<view class="game-box" @click="goGame(item.id,index)">
-				<view class="box-title">
-					怪兽名称:{{item.name}}
-				</view>
-				<image :src="'../../static/img/game0'+(index%5+1)+'.png'" mode=""></image>
-				<view class="game-box-content">开打时间
-					<view class="game-box-content1">
-						每天{{item.add_time}}
-					</view>
+		<view class="box" v-for="(item, index) in gameList">
+			<view class="game-box" @click="goGame(item.id, index)">
+				<view class="title">超有趣的种茶游戏</view>
+				<view class="box-title">{{ item.name }}</view>
+				<image :src="'../../static/img/game0' + ((index % 4) + 1) + '.png'" mode=""></image>
+				<view class="game-box-content">
+					施肥时间
+					<view class="game-box-content1">每天{{ item.add_time }}</view>
 				</view>
 			</view>
 		</view>
@@ -54,114 +51,113 @@
 </template>
 
 <script>
-	import {
-		getGame
-	} from '@/api/game.js'
-	import {
-		tabbar
-	} from '@/utils/tabbar.js';
-	export default {
-		data() {
-			return {
-			
-				tabbar: tabbar,
-				current: 2,
-				add_time: '', //开始事件
-				end_time: '', //结束时间
-				gameList: '', //游戏列表
-			};
-		},
-		onShow() {
-			getGame().then(res => {
-				// console.log(res, 'res');
-				this.gameList = res.data.data
-				res.data.data.forEach(e=>{
-					// this.end_time = 
-				 var end = 	e.add_time.split(' ')
-				 e.add_time = end[1]
-					
-				})
-				
-			})
-		},
-		methods: {
-			goGame(e,index) {
-				console.log(e, '点击跳转');
-				uni.navigateTo({
-					url: './gameDetail?id=' + e+'&index='+index
-				})
-			}
-		},
-	};
+import { getGame } from '@/api/game.js';
+export default {
+	data() {
+		return {
+			add_time: '', //开始事件
+			end_time: '', //结束时间
+			gameList: '' //游戏列表
+		};
+	},
+	onShow() {
+		getGame().then(res => {
+			// console.log(res, 'res');
+			this.gameList = res.data.data;
+			res.data.data.forEach(e => {
+				// this.end_time =
+				var end = e.add_time.split(' ');
+				e.add_time = end[1];
+			});
+		});
+	},
+	methods: {
+		goGame(e, index) {
+			console.log(e, '点击跳转');
+			uni.navigateTo({
+				url: './gameDetail?id=' + e + '&index=' + index
+			});
+		}
+	}
+};
 </script>
 
 <style lang="scss">
-	.center {
-		width: 750rpx;
-		padding: 0;
-		margin: 20rpx;
-	}
-
-	.game-box {
-		position: relative;
-		// margin: 10rpx;
-		width: 690rpx;
-		height: 280rpx;
+.center {
+	width: 750rpx;
+	padding: 0;
+	margin: 20rpx;
+}
 
-		image {
-			width: 100%;
-			height: 100%;
+.game-box {
+	position: relative;
+	// margin: 10rpx;
+	width: 690rpx;
+	height: 280rpx;
 
-		}
-		.box-title{
-			font-family:Cursive;
-			font-weight: 500;
-			position: absolute;
-			z-index: 99;
-			top: 120rpx;
-			left: 60rpx;
-			display: flex;
-			color: #FFFFFF;
-			font-size: 40rpx;
-			font-weight: 500;
-		}
+	image {
+		width: 100%;
+		height: 100%;
 	}
-
-
-	.game-box-content {
-		top: 200rpx;
+	.title {
+		font-size: 42rpx;
+		font-family: zihun100hao;
+		font-weight: normal;
+		color: #29554e;
+		position: absolute;
+		z-index: 99;
+		top: 40rpx;
 		left: 60rpx;
-		line-height: 40rpx;
+		display: flex;
+	}
+	.box-title {
+		font-family: Cursive;
+		font-weight: 500;
 		position: absolute;
-		font-size: 26rpx;
+		z-index: 99;
+		top: 120rpx;
+		left: 60rpx;
+		display: flex;
+		color: #29554e;
+		font-size: 40rpx;
 		font-weight: 500;
-		color: #8F6AFD;
-		padding-left: 20rpx;
-		width: 340rpx;
-		height: 40rpx;
-		background: #FFFFFF;
-		border-radius: 27rpx;
-		align-items: center;
+	}
+}
 
-		.game-box-content1 {
-			align-items: center;
-			position: absolute;
-			right: 0;
-			top: 0;
-			line-height: 40rpx;
-			text-align: center;
-			width: 200rpx;
-			height: 40rpx;
-			background: #754AF0;
-			border-radius: 27rpx;
-			font-size: 26rpx;
-			font-weight: 500;
-			color: #FFFFFF;
-		}
+.game-box-content {
+	top: 180rpx;
+	left: 60rpx;
+	line-height: 60rpx;
+	position: absolute;
+	font-size: 30rpx;
+	font-weight: 500;
+	color: #8f6afd;
+	padding-left: 20rpx;
+	width: 360rpx;
+	height: 60rpx;
+	background: #ffffff;
+	border-radius: 30rpx;
+	align-items: center;
+
+	.game-box-content1 {
+		align-items: center;
+		position: absolute;
+		right: 0;
+		top: 0;
+		line-height: 60rpx;
+		text-align: center;
+		width: 220rpx;
+		height: 60rpx;
+		background: #754af0;
+		border-radius: 30rpx;
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #ffffff;
 	}
+}
 
-	// .kong {
-	// 	height: 100vh;
-	// 	width: 750rpx;
-	// }
+// .kong {
+// 	height: 100vh;
+// 	width: 750rpx;
+// }
 </style>

+ 736 - 633
pages/game/gameDetail.vue

@@ -2,115 +2,132 @@
 	<view class="content">
 		<view class="game-top-bg">
 			<image src="../../static/game/game06.png" mode=""></image>
+			<view class="hl"><image src="../../static/game/game3.gif" mode=""></image></view>
+			<view class="tz"><image src="../../static/game/game2.gif" mode=""></image></view>
 			<view class="game-top-time">
-				第{{guaishouList.stage}}期
+				第{{ guaishouList.stage }}期
 
 				<view class="yueyue" v-if="isGb">
-					&nbsp;&nbsp;距离打怪
-					<span>{{state==0?'开始':'结束'}}</span>
+					&nbsp;&nbsp;距离种茶
+					<span>{{ state == 0 ? '开始' : '结束' }}</span>
 					仅剩
-					<span>{{hour.day}}</span>天<span>{{hour.hours}}</span>时<span>{{hour.minutes}}</span>分<span>{{hour.seconds}}</span>秒
+					<span v-if="state == 0">
+						<span>{{ kai.day }}</span>
+						天
+						<span>{{ kai.hours }}</span>
+						时
+						<span>{{ kai.minutes }}</span>
+						分
+						<span>{{ kai.seconds }}</span>
+						秒
+					</span>
+					<span v-else>
+						<span>{{ hour.day }}</span>
+						天
+						<span>{{ hour.hours }}</span>
+						时
+						<span>{{ hour.minutes }}</span>
+						分
+						<span>{{ hour.seconds }}</span>
+						秒
+					</span>
 				</view>
-				<view class="yueyue" style="margin-left: 200rpx;" v-else>
-					已结束
-				</view>
-
+				<view class="yueyue" style="margin-left: 200rpx;" v-else>已结束</view>
 			</view>
 			<view class="game-top-xl">
-				<view class="xl" v-if="guaishouList.number!=guaishouList.money*1">
-					血量值:&nbsp;{{guaishouList.number}}/{{guaishouList.money*1}}
-				</view>
-				<view class="xl" v-else>
-					打怪成功!
-				</view>
+				<view class="xl" v-if="guaishouList.number != guaishouList.money * 1">血量值:&nbsp;{{ guaishouList.number }}/{{ guaishouList.money * 1 }}</view>
+				<view class="xl" v-else>种茶成功!</view>
 				<view class="xl-t">
 					<!-- 血量进度条 暂未开发! -->
 					<!-- <prog value= "80"></prog> -->
 					<!-- change进度条变化时候触发 -->
-					<bing-progress change="change" :value="getJd" width="474rpx" noActiveColor="#EB97E4" infoColor="#fff"
-						:isActiveCircular="false" barBorderRadius="20px" :disabled="true" infoContent="value"
-						infoEndText="%" handleWidth="0" infoFontSize="26px" strokeWidth="34rpx" :continuous="true"
-						:subContinuous="true" infoAlign="center" activeColor="#D461CD">
-					</bing-progress>
-
+					<bing-progress
+						change="change"
+						:value="getJd"
+						width="474rpx"
+						noActiveColor="#08D29B"
+						infoColor="#fff"
+						:isActiveCircular="false"
+						barBorderRadius="20px"
+						:disabled="true"
+						infoContent="value"
+						infoEndText="%"
+						handleWidth="0"
+						infoFontSize="24px"
+						strokeWidth="34rpx"
+						:continuous="true"
+						:subContinuous="true"
+						infoAlign="center"
+						activeColor="#08D29B"
+					></bing-progress>
 				</view>
 			</view>
-			<view class="xgs">
-				<image :src="'../../static/game/reb0'+(index%5+1)+'.png'" mode=""></image>
-			</view>
-			<view class="id">
-				名称:{{guaishouList.name}}&nbsp&nbsp&nbsp期数Id:{{guaishouList.stage}}
-			</view>
-			<view class="gl">
-				<image src="../../static/game/game08.png" mode=""></image>
-
-			</view>
-		</view>
-		<view class="edu">
-			本次参与额度:1~{{guaishouList.upper_limit*1}}
+			<!-- <view class="xgs"><image :src="'../../static/game/reb0' + ((index % 5) + 1) + '.png'" mode=""></image></view> -->
+			<view class="id">名称:{{ guaishouList.name }}&nbsp&nbsp&nbsp期数Id:{{ guaishouList.stage }}</view>
+			<!-- <view class="gl"><image src="../../static/game/game08.png" mode=""></image></view> -->
 		</view>
-		<view class="button">
-			<image v-if="isGoumai==false" src="../../static/game/game07.png" mode="" @click="yue"></image>
-			<image v-else src="../../static/game/game10.png" mode=""></image>
+		<view class="edu">本次参与额度:1~{{ guaishouList.upper_limit * 1 }}</view>
+		<view class="bottom-box flex">
+			<image class="gl" @click="navTo('/pages/game/gl')" src="../../static/game/game08.png" mode=""></image>
+			<view class="button">
+				<image v-if="isGoumai == false" src="../../static/game/game07.png" mode="" @click="yue"></image>
+				<image v-else src="../../static/game/game10.png" mode=""></image>
+			</view>
+			<image class="ssh" src="" mode=""></image>
 		</view>
 		<view class="u-table">
 			<view class="column">
-				<view class="table-box" @click="navTo('../user/whiteJf')">
-					<view class="table-img">
-						<image src="../../static/game/game04.png" mode=""></image>
-					</view>
+				<view class="table-box" @click="navTo('../user/purpleJf')">
+					<view class="table-img"><image src="../../static/game/game04.png" mode=""></image></view>
 					<view class="table-title">
-						<view class="table-top">
-							{{userInfo.white_integral*1}}
-						</view>
-						<view class="table-top">
-							红积分
-						</view>
+						<view class="table-top">{{ userInfo.purple_integral * 1 }}</view>
+						<view class="table-top">我的阳光</view>
 					</view>
 				</view>
-				<view class="table-box" @click="navTo('../user/purpleJf')">
-					<view class="table-img">
-						<image src="../../static/game/game05.png" mode=""></image>
-					</view>
+				<view class="table-box" @click="navTo('../user/shopJf')">
+					<view class="table-img2"><image src="../../static/game/game05.png" mode=""></image></view>
 					<view class="table-title">
-						<view class="table-top">
-							{{userInfo.purple_integral*1}}
-						</view>
-						<view class="table-top">
-							阳光积分
-						</view>
+						<view class="table-top">{{ userInfo.business_integral * 1 }}</view>
+						<view class="table-top">能量金豆</view>
 					</view>
 				</view>
 			</view>
-			<view class="aa">
-			</view>
-			<view class="bb">
-			</view>
+			<view class="aa"></view>
+			<view class="bb"></view>
 			<view class="column">
-				<view class="table-box" @click="navTo('../user/myGreenCard')">
-					<view class="table-img">
-						<image src="../../static/game/game03.png" mode=""></image>
+				<view class="table-box" @click="navTo('../user/whiteJf')">
+					<view class="table-img3"><image src="../../static/game/game03.png" mode=""></image></view>
+					<view class="table-title">
+						<view class="table-top">{{ userInfo.white_integral * 1 }}</view>
+						<view class="table-top">我的肥料</view>
 					</view>
+				</view>
+				<view class="table-box" @click="navTo('/pages/user/greenJf')">
+					<view class="table-img4"><image src="../../static/game/game02.png" mode=""></image></view>
 					<view class="table-title">
-						<view class="table-top">
-							{{greenDe}}
-						</view>
-						<view class="table-top">
-							绿卡
-						</view>
+						<view class="table-top">{{ greenDe }}</view>
+						<view class="table-top">我的水滴</view>
 					</view>
 				</view>
-				<view class="table-box" @click="navTo('../money/wallet')">
-					<view class="table-img">
-						<image src="../../static/game/game02.png" mode=""></image>
+			</view>
+		</view>
+		<view class="daoj-box">
+			<view class="daoj-title">道具专区</view>
+			<view class="daoj-main flex" @click="navTo('/pages/user/greenChange')">
+				<view class="daoj-item flex">
+					<image class="daoj-bg" src="../../static/game/game12.png" mode=""></image>
+					<view class="daoj-info">
+						<view class="daoj-font">洒水桶*1</view>
+						<view class="daoj-font">70水滴</view>
+						<view class="btn">立即兑换</view>
 					</view>
-					<view class="table-title">
-						<view class="table-top">
-							{{userInfo.now_money*1}}
-						</view>
-						<view class="table-top">
-							余额
-						</view>
+				</view>
+				<view class="daoj-item flex daoj-item2">
+					<image class="daoj-bg" src="../../static/game/game13.png" mode=""></image>
+					<view class="daoj-info">
+						<view class="daoj-font">洒水桶*5</view>
+						<view class="daoj-font">350水滴</view>
+						<view class="btn2">立即兑换</view>
 					</view>
 				</view>
 			</view>
@@ -131,15 +148,11 @@
 		</uni-popup> -->
 		<uni-popup ref="popupYue" type="center">
 			<view class="yue-box">
-				<view class="yue-tit">
-					抢购数量
-				</view>
+				<view class="yue-tit">抢购数量</view>
 				<!-- numberChange购买数量变化   goodsNumberMax最大可购买数 -->
-				<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax"
-					@eventChange="numberChange"></uni-number-box>
-				<view class="yue-content">
-					请填写积分数量
-				</view>
+				<!-- <uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box> -->
+				<input class="input" type="text" v-model="goodsNumber" placeholder-class="placeholder" placeholder="请填写积分数量" />
+				<!-- <view class="yue-content">请填写积分数量</view> -->
 				<view class="comfirm-box">
 					<view class="cancel" @click="quxiao()">取消</view>
 					<view class="comfirm" @click="quire()">确定</view>
@@ -165,7 +178,7 @@
 
 
 								<image src="../../static/game/game02.png" mode=""></image>
-								<text>红积分支付</text>
+								<text>肥料支付</text>
 							</view>
 							<radio style="transform:scale(0.7); color:#ff0000" v-model="hong" />
 						</label>
@@ -213,638 +226,728 @@
 </template>
 
 <script>
-	import {
-		greenList,
-		userinfo
-	} from '@/api/user.js'
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getTime,
-		timeComputed,
-
-	} from '@/utils/rocessor.js'
-	import {
-		getGameDetail,
-		getPurchase
-	} from '@/api/game.js'
-	import bingProgress from '@/components/bing-progress/bing-progress.vue'
-	import uniNumberBox from '@/components/uni-number-box.vue'
-	export default {
-		components: {
-			uniNumberBox
+import { greenList, userinfo } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+import { getTime, timeComputed } from '@/utils/rocessor.js';
+import { getGameDetail, getPurchase } from '@/api/game.js';
+import bingProgress from '@/components/bing-progress/bing-progress.vue';
+import uniNumberBox from '@/components/uni-number-box.vue';
+export default {
+	components: {
+		uniNumberBox
+	},
+	data() {
+		return {
+			kai: {}, //开始时间
+			state: 0, //活动状态
+			xuhaolan: 1690,
+			name: '',
+			isGb: true,
+			// goodsNumberMin: 1,
+			greenDe: 0, //绿积分
+			index: 0,
+			timer: '',
+			hour: {},
+			guaishouList: [], //怪兽详情
+			id: 0, //详情id
+			isGoumai: false, //是否购买
+			passWord: '', //交易密码
+			bai: 0,
+			hong: 0,
+			zi: 0,
+			// goodsNumberMax: 1000, //最大可购买数
+			goodsNumber: '', //购买数量
+			number: 8,
+			bianhua: 0, //变化
+			xiaoguaishou: '',
+			imageList: [
+				{
+					image: '../../static/game/game01.png'
+					// color: '#7F69D8'
+				},
+				{
+					image: '../../static/game/reb02.png'
+				},
+				{
+					image: '../../static/game/reb03.png'
+				},
+				{
+					image: '../../static/game/reb01.png'
+				},
+				{
+					image: '../../static/game/reb04.png'
+				}
+			] //小怪兽图片
+		};
+	},
+	computed: {
+		...mapState('user', ['hasLogin', 'userInfo']),
+		getJd() {
+			return (this.guaishouList.number / this.guaishouList.money) * 1 * 100;
+		}
+	},
+	// beforeDestroy() {
+	// 	clearInterval(this.timer)
+	// },
+	onLoad(option) {
+		console.log(this.userInfo, 'userInfo');
+		// this.xiaoguaishou = this.imageList[option.id].image
+		this.uid = option.id;
+		this.index = option.index;
+		this.getDTime();
+		let obj = this;
+		const time = setInterval(function() {
+			obj.bianhua++;
+			if (obj.bianhua == 2) {
+				clearInterval(time);
+			}
+		}, 6);
+	},
+	onShow() {
+		// this.getDTime();
+		this.jtDg();
+		// this.getDetail()
+		if (this.timer) {
+			clearInterval(this.timer);
+		}
+		// let getTimes = uni.getStorageSync('time')
+		// this.isGb !=getTimes
+		// // uni.clearStorage('time')
+		// console.log(getTimes, 'uni.setStorageSync');
+
+		this.getGreen();
+		this.getUerInfo();
+	},
+	methods: {
+		//监听打怪状态
+		jtDg() {
+			console.log(this.xuhaolan == this.guaishouList.money * 1, '2323');
 		},
-		data() {
-			return {
-				state: 0, //活动状态
-				xuhaolan: 1690,
-				name: '',
-				isGb: true,
-				goodsNumberMin: 1,
-				greenDe: 0, //绿积分
-				index: 0,
-				timer: '',
-				hour: {},
-				guaishouList: [], //怪兽详情
-				id: 0, //详情id
-				isGoumai: false, //是否购买
-				passWord: "", //交易密码
-				bai: 0,
-				hong: 0,
-				zi: 0,
-				goodsNumberMax: 1000, //最大可购买数
-				goodsNumber: 1, //购买数量
-				number: 8,
-				bianhua: 0, //变化
-				xiaoguaishou: '',
-				imageList: [{
-						image: "../../static/game/game01.png",
-						// color: '#7F69D8'
-					},
-					{
-						image: "../../static/game/reb02.png"
-					},
-					{
-						image: "../../static/game/reb03.png"
-					},
-					{
-						image: "../../static/game/reb01.png"
-					},
-					{
-						image: "../../static/game/reb04.png"
-					}
-				] //小怪兽图片
-			};
+		...mapMutations('user', ['setUserInfo']),
+		getUerInfo() {
+			userinfo({})
+				.then(({ data }) => {
+					this.setUserInfo(data);
+				})
+				.catch(e => {
+					console.log(e);
+				});
 		},
-		computed: {
-			...mapState('user', ['hasLogin', 'userInfo']),
-			getJd() {
-				return (this.guaishouList.number / this.guaishouList.money * 1) * 100
-			}
+		navTo(url) {
+			uni.navigateTo({
+				url
+			});
 		},
-		// beforeDestroy() {
-		// 	clearInterval(this.timer)
-		// },
-		onLoad(option) {
-			console.log(this.userInfo, 'userInfo');
-			// this.xiaoguaishou = this.imageList[option.id].image
-			this.uid = option.id
-			this.index = option.index
-			this.getDTime()
-			let obj = this
-			const time = setInterval(function() {
-				obj.bianhua++;
-				if (obj.bianhua == 2) {
-					clearInterval(time)
-				}
-
-			}, 6)
+		getGreen() {
+			greenList().then(res => {
+				this.greenDe = res.data.count;
+				// console.log(res, '率积分');
+			});
 		},
-		onShow() {
-			this.getDTime()
-			this.jtDg()
-			// this.getDetail()
-			if (this.timer) {
-				clearInterval(this.timer)
-			}
-			// let getTimes = uni.getStorageSync('time')
-			// this.isGb !=getTimes
-			// // uni.clearStorage('time')
-			// console.log(getTimes, 'uni.setStorageSync');
-
-
-			this.getGreen()
-			this.getUerInfo()
-
+		getDetail() {
+			getGameDetail({
+				id: this.uid
+			}).then(res => {
+				this.guaishouList = res.data;
+				console.log(res.data, 'res.data');
+			});
 		},
-		methods: {
-			//监听打怪状态
-			jtDg() {
-				console.log(this.xuhaolan == this.guaishouList.money * 1, '2323');
-
-			},
-			...mapMutations('user', ['setUserInfo']),
-			getUerInfo() {
-				userinfo({})
-					.then(({
-						data
-					}) => {
-						this.setUserInfo(data);
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			navTo(url) {
-				uni.navigateTo({
-					url
-				})
-			},
-			getGreen() {
-				greenList().then(res => {
-					this.greenDe = res.data.count
-					// console.log(res, '率积分');
-				})
-			},
-			getDetail() {
-				getGameDetail({
-					id: this.uid
-				}).then(res => {
-					this.guaishouList = res.data
-					console.log(res.data, 'res.data');
-				})
-			},
-			//计算倒计时
-			getDTime() {
-				let obj = this
-				getGameDetail({
-					id: this.uid
-				}).then(res => {
-					this.guaishouList = res.data
-					console.log(res, 'res');
-					if (this.guaishouList.number == this.guaishouList.money * 1) {
-						this.$api.msg('打怪成功!')
-					}
-					this.bianhua = 3000
-					//当前时间
-					let dqTime = Math.round(new Date().getTime()/1000).toString();
-					
-					console.log(dqTime,'if()');
-					//开始事件
-					let add_time = res.data.add_time
-					if(dqTime >= add_time){
-						this.state = 1
-					}
-					// this.getDTime()
-					//获取结束时间
-					let endTime = res.data.end_time
-					// console.log(endTime, 'this.guaishouList.end_time');
-					//开启倒计时
-					obj.timer = setInterval(getShijian, 1000)
-
-					function getShijian() {
-						let da = timeComputed(endTime * 1000)
-						obj.hour = da
-						Object.values(obj.hour).forEach(e => {})
-						if (obj.hour.day == 0 && obj.hour.hours == 0 && obj.hour.minutes == 0 && obj.hour
-							.seconds == 0) {
-							obj.isGb = false
-						}
+		//计算倒计时
+		getDTime() {
+			let obj = this;
+			getGameDetail({
+				id: this.uid
+			}).then(res => {
+				this.guaishouList = res.data;
+				console.log(res, 'res');
+				if (this.guaishouList.number == this.guaishouList.money * 1) {
+					this.$api.msg('种植成功!');
+				}
+				this.bianhua = 3000;
+				//当前时间
+				let dqTime = Math.round(new Date().getTime() / 1000).toString();
+
+				console.log(dqTime, 'if()');
+				//开始事件
+				let add_time = res.data.add_time;
+				if (dqTime >= add_time) {
+					this.state = 1;
+				}
+				// this.getDTime()
+				//获取结束时间
+				let endTime = res.data.end_time;
+				// console.log(endTime, 'this.guaishouList.end_time');
+				//开启倒计时
+				obj.timer = setInterval(getShijian, 1000);
+
+				function getShijian() {
+					let kai = timeComputed(add_time * 1000);
+					obj.kai = kai;
+					// console.log(obj.kai,'kai');
+					let da = timeComputed(endTime * 1000);
+					obj.hour = da;
+					Object.values(obj.hour).forEach(e => {});
+					if (obj.hour.day == 0 && obj.hour.hours == 0 && obj.hour.minutes == 0 && obj.hour.seconds == 0) {
+						obj.isGb = false;
 					}
-
-				})
-
-
-			},
-			radioChange() {},
-			//购买积分
-			buy() {
-				this.$refs.popupButton.close()
-				this.$refs.popupPass.open()
-
-			},
-			//交易密码取消
-			quxiaoPass() {
-				this.$refs.popupPass.close()
-			},
-			//交易密码确认
-			quirePass() {
-				console.log(this.passWord, 'passWord');
-				this.$refs.popupPass.close()
-				this.isGoumai = true
-
-			},
-			//购买数量
-			numberChange(e) {
-				this.goodsNumber = e.number
-				// console.log(this.goodsNumber, 'e');
-				// this.$refs.popupButton.open()
-			},
-			//抢购数量取消
-			quxiao() {
-				this.$refs.popupYue.close()
-
-
-			},
-			//抢购数量确认
-			quire() {
-				console.log(this.goodsNumber, 'this.goodsNumber');
-
-				this.$refs.popupYue.close()
-				// this.$refs.popupButton.open()
-				//投注
-				getPurchase({
-					//众筹场次id
-					id: this.uid,
-					price: this.goodsNumber
-					//投注额度
-				}).then(res => {
-					console.log(res, '投注信息');
-
-					uni.showToast({
-						title: '投注成功',
-						duration: 2000
-					});
-					this.getUerInfo()
-					this.getDetail()
-				})
-
-			},
-			//预约界面使用
-			comfirm() {
-				this.$refs.popup.close()
-				this.$refs.popupYue.open()
-			},
-			//预约界面不使用
-			kfClose() {
-				this.$refs.popup.close()
-			},
-
-			//点击抢购
-			yue() {
-				console.log('asda');
-				if (this.isGb == false) {
-					this.$refs.popupYue.close()
-					// uni.showModal({
-					// 	title:"活动已结束!"
-					// })
-					// uni.showLoading({
-					// 	title:"活动已结束!"
-					// })
-					this.$api.msg("活动已结束!")
-				} else {
-					this.$refs.popupYue.open()
 				}
-				// this.$refs.popupYue.open()
-
+			});
+		},
+		radioChange() {},
+		//购买积分
+		buy() {
+			this.$refs.popupButton.close();
+			this.$refs.popupPass.open();
+		},
+		//交易密码取消
+		quxiaoPass() {
+			this.$refs.popupPass.close();
+		},
+		//交易密码确认
+		quirePass() {
+			console.log(this.passWord, 'passWord');
+			this.$refs.popupPass.close();
+			this.isGoumai = true;
+		},
+		//购买数量
+		numberChange(e) {
+			this.goodsNumber = e.number;
+			// console.log(this.goodsNumber, 'e');
+			// this.$refs.popupButton.open()
+		},
+		//抢购数量取消
+		quxiao() {
+			this.$refs.popupYue.close();
+		},
+		//抢购数量确认
+		quire() {
+			console.log(this.goodsNumber, 'this.goodsNumber');
+
+			this.$refs.popupYue.close();
+			// this.$refs.popupButton.open()
+			//投注
+			getPurchase({
+				//众筹场次id
+				id: this.uid,
+				price: this.goodsNumber
+				//投注额度
+			}).then(res => {
+				console.log(res, '投注信息');
+
+				uni.showToast({
+					title: '投注成功',
+					duration: 2000
+				});
+				this.getUerInfo();
+				this.getDetail();
+			});
+		},
+		//预约界面使用
+		comfirm() {
+			this.$refs.popup.close();
+			this.$refs.popupYue.open();
+		},
+		//预约界面不使用
+		kfClose() {
+			this.$refs.popup.close();
+		},
 
+		//点击抢购
+		yue() {
+			console.log('asda');
+			if (this.isGb == false) {
+				this.$refs.popupYue.close();
+				// uni.showModal({
+				// 	title:"活动已结束!"
+				// })
+				// uni.showLoading({
+				// 	title:"活动已结束!"
+				// })
+				this.$api.msg('活动已结束!');
+			} else {
+				this.$refs.popupYue.open();
 			}
-
+			// this.$refs.popupYue.open()
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		background: #ECE7F8;
-		width: 750rpx;
+page {
+	background: #f2ffec;
+	width: 750rpx;
+	height: 100%;
+	padding: 0;
+	margin: 0;
+}
+.content {
+	padding-bottom: 50rpx;
+}
+
+.popup {
+	width: 100rpx;
+	height: 100rpx;
+}
+
+.game-top-bg {
+	position: relative;
+	width: 750rpx;
+	height: 650rpx;
+
+	image {
+		width: 100%;
 		height: 100%;
-		padding: 0;
-		margin: 0;
-
 	}
-
-	.popup {
-		width: 100rpx;
-		height: 100rpx;
+}
+
+.hl {
+	position: absolute;
+	top: 320rpx;
+	left: 30rpx;
+	width: 225rpx;
+	height: 218rpx;
+}
+
+.tz {
+	position: absolute;
+	top: 400rpx;
+	left: 0;
+	width: 100%;
+	height: 360rpx;
+}
+
+.game-top-time {
+	line-height: 50rpx;
+	padding-left: 100rpx;
+	position: absolute;
+	top: 30rpx;
+	left: 20rpx;
+	width: 710rpx;
+	height: 50rpx;
+	background: #000000;
+	opacity: 0.61;
+	border-radius: 25rpx;
+	font-size: 32rpx;
+	font-weight: 500;
+	color: #fff;
+
+	.yueyue {
+		margin-left: 10rpx;
+		display: inline-block;
+		font-size: 28rpx;
 	}
 
-	.game-top-bg {
-		position: relative;
-		width: 750rpx;
-		height: 550rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
+	span {
+		width: 42rpx;
+		height: 42rpx;
+		background: #5655ef;
+		border-radius: 10rpx;
 	}
+}
 
-	.game-top-time {
-		line-height: 50rpx;
-		padding-left: 100rpx;
-		position: absolute;
-		top: 30rpx;
-		left: 20rpx;
-		width: 710rpx;
-		height: 50rpx;
-		background: #000000;
-		opacity: 0.61;
-		border-radius: 25rpx;
-		font-size: 32rpx;
-		font-weight: 500;
-		color: #fff;
-
-		.yueyue {
-			margin-left: 10rpx;
-			display: inline-block;
-		}
+.game-top-xl {
+	position: absolute;
+	text-align: center;
+	left: 140rpx;
+	top: 90rpx;
 
-		span {
-			width: 42rpx;
-			height: 42rpx;
-			background: #5655EF;
-			border-radius: 10rpx;
-		}
+	// line-height: 75rpx;
+	.xl {
+		font-size: 34rpx;
+		font-weight: 500;
+		color: #ffffff;
 	}
 
-	.game-top-xl {
-		position: absolute;
-		text-align: center;
-		left: 140rpx;
-		top: 90rpx;
-
-		// line-height: 75rpx;
-		.xl {
-			font-size: 34rpx;
-			font-weight: 500;
-			color: #FFFFFF;
-		}
-
-		.xl-t {
-			margin-top: 10rpx;
-			// width: 474rpx;
-			// height: 31rpx;
-			// background: #A38CF4;
-			// border: 3rpx solid #FFFFFF;
-			// border-radius: 13rpx;
-		}
+	.xl-t {
+		margin-top: 10rpx;
+		// width: 474rpx;
+		// height: 31rpx;
+		// background: #A38CF4;
+		// border: 3rpx solid #FFFFFF;
+		// border-radius: 13rpx;
 	}
+}
 
-	.xgs {
-		position: absolute;
-		top: 200rpx;
-		left: 210rpx;
-		width: 330rpx;
-		height: 260rpx;
+.xgs {
+	position: absolute;
+	top: 200rpx;
+	left: 210rpx;
+	width: 330rpx;
+	height: 260rpx;
 
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+
+.id {
+	text-align: center;
+	position: absolute;
+	top: 575rpx;
+	left: 210rpx;
+	width: 340rpx;
+	height: 60rpx;
+	background: #000000;
+	opacity: 0.64;
+	border-radius: 20rpx;
+	font-size: 32rpx;
+	font-weight: bold;
+	color: #ffffff;
+	line-height: 60rpx;
+}
+
+.edu {
+	margin: 20rpx 190rpx;
+	width: 370rpx;
+	height: 50rpx;
+	font-size: 30rpx;
+	font-weight: 500;
+	color: #ffffff;
+	background: #1b1e2f;
+	opacity: 0.57;
+	border-radius: 25rpx;
+	line-height: 50rpx;
+	text-align: center;
+}
+
+.bottom-box {
+	padding: 0 20rpx;
+	.gl {
+		width: 140rpx;
+		height: 166rpx;
+	}
+	.button {
+		width: 430rpx;
+		height: 120rpx;
 		image {
 			width: 100%;
 			height: 100%;
 		}
 	}
-
-	.id {
-		text-align: center;
+	.ssh {
+		width: 140rpx;
+		height: 166rpx;
+	}
+}
+.u-table {
+	display: flex;
+	flex-direction: column;
+	justify-content: space-around;
+	margin: 20rpx 30rpx;
+	width: 688rpx;
+	height: 488rpx;
+	background: #ffffff;
+	border: 3rpx solid #08d29b;
+	box-shadow: 0px 0px 20rpx 0rpx rgba(50, 50, 52, 0.06);
+	border-radius: 20rpx;
+	position: relative;
+
+	.aa {
+		width: 685rpx;
+		top: 244rpx;
 		position: absolute;
-		top: 475rpx;
-		left: 210rpx;
-		width: 340rpx;
-		height: 60rpx;
-		background: #000000;
-		opacity: 0.64;
-		border-radius: 20rpx;
-		font-size: 32rpx;
-		font-weight: bold;
-		color: #FFFFFF;
-		line-height: 60rpx;
+		height: 2rpx;
+		background: #08d29b;
 	}
 
-	.gl {
-		top: 400rpx;
-		left: 36rpx;
+	.bb {
+		width: 2rpx;
+		height: 488rpx;
+		background: #08d29b;
+		margin-left: 343rpx;
+		top: 0;
 		position: absolute;
-		width: 90rpx;
-		height: 106rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
 	}
 
-	.edu {
-		margin: 20rpx 190rpx;
-		width: 370rpx;
-		height: 50rpx;
-		font-size: 30rpx;
-		font-weight: 500;
-		color: #FFFFFF;
-		background: #1B1E2F;
-		opacity: 0.57;
-		border-radius: 25rpx;
-		line-height: 50rpx;
-		text-align: center;
+	.column {
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
 	}
 
-	.button {
-		margin: 0 160rpx;
-		width: 430rpx;
-		height: 120rpx;
+	.table-box {
+		margin-left: 70rpx;
+		width: 50%;
+		display: flex;
+		align-items: center;
 
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
+		.table-img {
+			width: 130rpx;
+			height: 130rpx;
 
-	.u-table {
-		display: flex;
-		flex-direction: column;
-		justify-content: space-around;
-		margin: 20rpx 30rpx;
-		width: 688rpx;
-		height: 309rpx;
-		background: #FFFFFF;
-		border: 3rpx solid #7F69D8;
-		box-shadow: 0px 0px 20rpx 0rpx rgba(50, 50, 52, 0.06);
-		border-radius: 20rpx;
-		position: relative;
-
-		.aa {
-			width: 685rpx;
-			top: 152rpx;
-			position: absolute;
-			height: 2rpx;
-			background: #7F69D8;
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
+		.table-img2 {
+			width: 108rpx;
+			height: 106rpx;
 
-		.bb {
-			width: 2rpx;
-			height: 305rpx;
-			background: #7F69D8;
-			margin-left: 343rpx;
-			top: 0;
-			position: absolute;
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
+		.table-img3 {
+			width: 100rpx;
+			height: 110rpx;
 
-		.column {
-
-			display: flex;
-			align-items: center;
-			justify-content: space-around;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.table-img4 {
+			width: 72rpx;
+			height: 110rpx;
 
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
 
-		.table-box {
-			margin-left: 70rpx;
-			width: 50%;
+		.table-title {
+			padding-left: 15rpx;
 			display: flex;
-			align-items: center;
-
-			.table-img {
-				width: 65rpx;
-				height: 65rpx;
-
-				image {
-					width: 100%;
-					height: 100%;
+			flex-direction: column;
+
+			.table-top {
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+				width: 180rpx;
+				font-size: 30rpx;
+				font-weight: bold;
+				color: #333333;
+				// line-height: 75px;
+			}
+		}
+	}
+}
+
+.daoj-box {
+	margin: 20rpx auto 0;
+	width: 688rpx;
+	background: #ffffff;
+	border: 4rpx solid #08d29b;
+	box-shadow: 0px 0px 29rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 29rpx;
+	.daoj-title {
+		width: 250rpx;
+		height: 80rpx;
+		line-height: 90rpx;
+		background: #08d29b;
+		border-radius: 14rpx 0px 86rpx 0px;
+		font-size: 38rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+		line-height: 80rpx;
+		text-align: center;
+	}
+	.daoj-main {
+		padding: 30rpx 20rpx 50rpx;
+		.daoj-item2 {
+			background: linear-gradient(90deg, #7679ef, #5255c4) !important;
+		}
+		.daoj-item {
+			justify-content: flex-start;
+			width: 314rpx;
+			background: linear-gradient(90deg, #ffc65e, #fca315);
+			border-radius: 14rpx;
+			padding: 10rpx 14rpx 20rpx 10rpx;
+			.daoj-bg {
+				width: 140rpx;
+				height: 140rpx;
+			}
+			.daoj-info {
+				margin-left: 10rpx;
+				.daoj-font {
+					font-size: 32rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #ffffff;
+				}
+				.btn {
+					width: 150rpx;
+					height: 40rpx;
+					background: #ffffff;
+					border-radius: 35rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #fca315;
+					line-height: 40rpx;
+					text-align: center;
+				}
+				.btn2 {
+					width: 150rpx;
+					height: 40rpx;
+					background: #ffffff;
+					border-radius: 35rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #5557c7;
+					line-height: 40rpx;
+					text-align: center;
 				}
 			}
+		}
+	}
+}
 
-			.table-title {
+.yue-box {
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	justify-content: space-around;
 
-				padding-left: 15rpx;
-				display: flex;
-				flex-direction: column;
+	width: 582rpx;
+	height: 377rpx;
+	background: #ffffff;
+	border-radius: 20rpx;
 
-				.table-top {
-					overflow: hidden;
-					white-space: nowrap;
-					text-overflow: ellipsis;
-					width: 180rpx;
-					font-size: 30rpx;
-					font-weight: bold;
-					color: #333333;
-					// line-height: 75px;
-				}
-			}
+	.yue-tit {
+		align-items: center;
+		font-size: 42rpx;
+		font-weight: 500;
+		color: #0c1732;
+		line-height: 56rpx;
+	}
 
-			;
-		}
+	.input {
+		width: 400rpx;
+		height: 60rpx;
+		font-size: 40rpx;
 	}
 
-	.yue-box {
-		display: flex;
-		flex-direction: column;
+	.placeholder {
+		font-size: 40rpx;
+	}
+
+	.password {
+		text-align: center;
 		align-items: center;
-		justify-content: space-around;
+	}
 
+	.yue-content {
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #0c1732;
+	}
 
-		width: 582rpx;
-		height: 377rpx;
-		background: #FFFFFF;
-		border-radius: 20rpx;
+	.comfirm-box {
+		width: 90%;
+		display: flex;
+		justify-content: space-between;
 
-		.yue-tit {
-			align-items: center;
-			font-size: 42rpx;
+		.cancel {
+			text-align: center;
+			line-height: 78rpx;
+			width: 248rpx;
+			height: 78rpx;
+			border: 2rpx solid #999999;
+			border-radius: 10rpx;
+			font-size: 34rpx;
 			font-weight: 500;
-			color: #0C1732;
-			line-height: 56rpx;
+			color: #333333;
 		}
 
-		.password {
+		.comfirm {
 			text-align: center;
-			align-items: center;
-		}
-
-		.yue-content {
-			font-size: 30rpx;
+			width: 248rpx;
+			height: 78rpx;
+			background: #ff5454;
+			border-radius: 10rpx;
+			font-size: 34rpx;
 			font-weight: 500;
-			color: #0C1732;
+			color: #ffffff;
+			line-height: 78rpx;
 		}
+	}
+}
 
-		.comfirm-box {
-			width: 90%;
-			display: flex;
-			justify-content: space-between;
-
-			.cancel {
-				text-align: center;
-				line-height: 78rpx;
-				width: 248rpx;
-				height: 78rpx;
-				border: 2rpx solid #999999;
-				border-radius: 10rpx;
-				font-size: 34rpx;
-				font-weight: 500;
-				color: #333333;
-			}
+.zhifu-box {
+	padding: 25rpx 0 0 25rpx;
+	width: 750rpx;
+	height: 495rpx;
+	background: #ffffff;
+	border-radius: 10rpx 10rpx 0rpx 0rpx;
 
-			.comfirm {
-				text-align: center;
-				width: 248rpx;
-				height: 78rpx;
-				background: #FF5454;
-				border-radius: 10rpx;
-				font-size: 34rpx;
-				font-weight: 500;
-				color: #FFFFFF;
-				line-height: 78rpx;
-			}
-		}
+	.zhifu-title {
+		display: flex;
+		flex-direction: left;
+		font-size: 28rpx;
+		font-weight: bold;
+		color: #333333;
 	}
 
-	.zhifu-box {
-		padding: 25rpx 0 0 25rpx;
-		width: 750rpx;
-		height: 495rpx;
-		background: #FFFFFF;
-		border-radius: 10rpx 10rpx 0rpx 0rpx;
-
-		.zhifu-title {
-			display: flex;
-			flex-direction: left;
-			font-size: 28rpx;
-			font-weight: bold;
-			color: #333333;
-		}
+	.zhifu-content {
+		display: flex;
+		justify-content: space-between;
 
-		.zhifu-content {
+		.bai {
+			margin: 30rpx 0;
 			display: flex;
-			justify-content: space-between;
-
-			.bai {
-				margin: 30rpx 0;
-				display: flex;
 
-				align-items: center;
+			align-items: center;
 
-				image {
-					width: 45rpx;
-					height: 45rpx;
-				}
+			image {
+				width: 45rpx;
+				height: 45rpx;
+			}
 
-				text {
-					margin-left: 20rpx;
-					font-size: 28rpx;
-					font-weight: 400;
-					color: #3F454B;
-				}
+			text {
+				margin-left: 20rpx;
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #3f454b;
 			}
 		}
+	}
+
+	.zhifu-bottom {
+		width: 750rpx;
+		position: absolute;
+		bottom: 0;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
 
-		.zhifu-bottom {
-			width: 750rpx;
-			position: absolute;
-			bottom: 0;
+		.zhifu-left {
 			display: flex;
 			align-items: center;
-			justify-content: space-between;
-
-			.zhifu-left {
-				display: flex;
-				align-items: center;
-
-				text:nth-child(1) {
-					font-size: 28rpx;
-					font-weight: 400;
-					color: #3F454B;
-				}
 
-				text {
-					font-size: 36rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #FF4C4C;
-					line-height: 55px;
-				}
+			text:nth-child(1) {
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #3f454b;
 			}
 
-			.zhifu-right {
-				line-height: 98rpx;
-				text-align: center;
-				width: 360rpx;
-				height: 98rpx;
-				background: #FF4C4C;
-				font-size: 32rpx;
+			text {
+				font-size: 36rpx;
+				font-family: PingFang SC;
 				font-weight: bold;
-				color: #FFFFFF;
+				color: #ff4c4c;
+				line-height: 55px;
 			}
 		}
 
+		.zhifu-right {
+			line-height: 98rpx;
+			text-align: center;
+			width: 360rpx;
+			height: 98rpx;
+			background: #ff4c4c;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #ffffff;
+		}
 	}
+}
 </style>

+ 75 - 0
pages/game/gl.vue

@@ -0,0 +1,75 @@
+<template>
+	<view class="center">
+		<view class="bg"><image src="../../static/img/game-bg.png" mode=""></image></view>
+		<view class="main-box">
+			<view class="title">玩法说明</view>
+			<view class="main-item">
+				<view class="main-title">种植技巧</view>
+				<view class="main-info">1、种植需要消耗肥料,肥料通过购买商品获得。</view>
+				<view class="main-info">2、参与种植成功后,三期后可以拿到107%种植肥料的阳光和30%种植肥料的商城积分。</view>
+				<view class="main-info">
+					3、参与种植如果失败,例如第四期失败将返还第一期和第四期种植肥料总和的101%的阳光,第二期和第三期种植肥料总和的70%的阳光和总和的30%的水滴和总和的30%的商城积分
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script></script>
+
+<style lang="less">
+.center,
+page {
+	padding-top: 268rpx;
+	height: auto;
+	min-height: 100%;
+	background: #a4e5d3;
+}
+.bg {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	width: 750rpx;
+	height: 1500rpx;
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+.main-box {
+	margin: 0 auto;
+	width: 626rpx;
+	padding: 114rpx 64rpx 98rpx 50rpx;
+	background: #ffffff;
+	border-radius: 34rpx;
+	position: relative;
+	border: #369275 2px solid;
+	.title {
+		position: absolute;
+		left: 50%;
+		top: -35rpx;
+		width: 324rpx;
+		height: 70rpx;
+		margin-left: -162rpx;
+		text-align: center;
+		line-height: 70rpx;
+		background-color: #369275;
+		border-radius: 50rpx;
+		color: #ffffff;
+		border-radius: 2px #fff solid;
+		font-size: 42rpx;
+	}
+	.main-item {
+		.main-title {
+			font-size: 32rpx;
+			font-family: SourceHanSansCN;
+			font-weight: bold;
+			color: #324658;
+		}
+		.main-info {
+			margin-top: 10rpx;
+		}
+	}
+}
+</style>

+ 97 - 0
pages/index/detail.vue

@@ -0,0 +1,97 @@
+<template>
+	<view class="center">
+		<view class="title clamp">{{ item.title }}</view>
+		<view class="time">{{ item.add_time }}</view>
+		<view class="main" v-for="(ls, index) in item.content" :key="index">
+			<view v-if="ls.type == 'rich-text'" v-html="ls.value" class="main"></view>
+			<video v-if="ls.type == 'video' && ls.value" :src="ls.value" style="width:100%;height: 300px" frameborder="0"></video>
+		</view>
+	</view>
+</template>
+
+<script>
+import { details } from '@/api/user.js';
+export default {
+	data() {
+		return {
+			id: '',
+			item: ''
+		};
+	},
+	onLoad(option) {
+		this.id = option.id;
+		this.loadData();
+	},
+	methods: {
+		loadData() {
+			details({}, this.id).then(({ data }) => {
+				console.log(data);
+				data.content = data.content.replace(/<img/g, '<img class="rich-img"').replace(/<p>\s*<img/g, '<p class="pHeight"><img');
+				data.content = this.getVideo(data.content);
+				this.item = data;
+			});
+		},
+		// 富文本视频解析
+		getVideo(data) {
+			let videoList = [];
+			let videoReg = /<video.*?(?:>|\/>)/gi; //匹配到字符串中的 video 标签
+			let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; //匹配到字符串中的 video 标签 的路径
+			let arr = data.match(videoReg) || []; // arr 为包含所有video标签的数组
+			let articleList = data.split('</video>'); // 把字符串  从视频标签分成数组
+			arr.forEach((item, index) => {
+				var src = item.match(srcReg);
+				videoList.push(src[1]); //所要显示的字符串中 所有的video 标签 的路径
+			});
+			let needArticleList = [];
+			articleList.forEach((item, index) => {
+				if (item != '' && item != undefined) {
+					//  常见的标签渲染
+					needArticleList.push({
+						type: 'rich-text',
+						value: item + '</video>'
+					});
+				}
+				let articleListLength = articleList.length; // 插入到原有video 标签位置
+				if (index < articleListLength && videoList[index] != undefined) {
+					needArticleList.push({
+						type: 'video',
+						value: videoList[index]
+					});
+				}
+			});
+			return needArticleList;
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.center {
+	min-height: 100%;
+	height: auto;
+	background: #ffffff;
+	padding: 30rpx 24rpx 0;
+}
+.title {
+	font-size: 32rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #333333;
+}
+.time {
+	font-size: 24rpx;
+	font-family: PingFangSC;
+	font-weight: 500;
+	color: #999999;
+	margin-top: 40rpx;
+}
+.main {
+	margin-top: 60rpx;
+}
+/deep/ .main {
+	.rich-img {
+		width: 100% !important;
+		height: auto;
+	}
+}
+</style>

+ 634 - 694
pages/index/index.vue

@@ -2,9 +2,7 @@
 	<view class="container">
 		<view class="carousel-section">
 			<!-- 背景色区域 -->
-			<view class="bg">
-				<image src="../../static/index/index13.png" mode=""></image>
-			</view>
+			<view class="bg"><image src="../../static/index/index13.png" mode=""></image></view>
 			<!-- 标题栏和状态栏占位符 -->
 			<view class="titleNview-placing"></view>
 			<!-- 搜素栏 -->
@@ -20,8 +18,7 @@
 					</view>
 				</view>
 			</view>
-			<swiper class="carousel" autoplay="true" duration="400" interval="5000" :indicator-dots="true"
-				indicator-active-color="#FFFFFF">
+			<swiper class="carousel" autoplay="true" duration="400" interval="5000" :indicator-dots="true" indicator-active-color="#FFFFFF">
 				<!-- <swiper class="carousel" autoplay="true" duration="400" interval="5000"> -->
 				<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item">
 					<image :src="item.pic" mode="aspectFill" @click="bannerNavToUrl(item)"></image>
@@ -50,16 +47,10 @@
 			</view>
 		</view>
 		<view class="product-box" v-if="bastList.length != 0">
-			<view class="cnxh">
-				<view class="hx">
-
-				</view>
-				<view class="">
-					红积分专区
-				</view>
-				<view class="hx">
-
-				</view>
+			<view class="product-title">
+				<image class="pt-image" src="../../static/index/index15.png" mode=""></image>
+				<view class="pt-title">热销商品</view>
+				<view class="pt-tip">好货不用挑</view>
 			</view>
 			<view class="hotgoods">
 				<view class="hotgoods-item" v-for="item in bastList" :key="item.id" @click="navToDetailPage(item)">
@@ -69,7 +60,7 @@
 					</view>
 					<view class="title clamp2">{{ item.store_name }}</view>
 					<view class="hot-price">
-						<view class="hotPrice-box">会员价</view>
+						<!-- <view class="hotPrice-box">会员价</view> -->
 						<view class="price">
 							<text class="font-size-sm">¥</text>
 							{{ item.price * 1 }}
@@ -82,9 +73,7 @@
 		<!-- 客服 -->
 		<uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
-				<view class="img">
-					<image src="../../static/img/img009.png" mode=""></image>
-				</view>
+				<view class="img"><image src="../../static/img/img009.png" mode=""></image></view>
 				<view class="mian">
 					<view class="delivery">
 						<view class="title">已经为您定制专属客服</view>
@@ -102,788 +91,739 @@
 </template>
 
 <script>
-	import {
-		lookSubpoints,
-		lookOneself
-	} from '../../api/user.js';
-	import seckill from '../../components/seckill/seckill.vue';
-	import {
-		loadIndexs
-	} from '@/api/index.js';
-	import {
-		getUserInfo,
-		spread
-	} from '@/api/user.js';
-	import {
-		setCoupons
-	} from '@/api/functionalUnit.js';
-	import {
-		getBargainList,
-		getProducts
-	} from '@/api/product.js';
-	import {
-		interceptor
-	} from '@/utils/loginUtils';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		tabbar
-	} from '@/utils/tabbar.js';
-	// #ifdef H5
-	import {
-		weixindata,
-		shareLoad
-	} from '@/utils/wxAuthorized';
+import { lookSubpoints, lookOneself } from '../../api/user.js';
+import seckill from '../../components/seckill/seckill.vue';
+import { loadIndexs } from '@/api/index.js';
+import { getUserInfo, spread } from '@/api/user.js';
+import { setCoupons } from '@/api/functionalUnit.js';
+import { getBargainList, getProducts } from '@/api/product.js';
+import { interceptor } from '@/utils/loginUtils';
+import { mapState, mapMutations } from 'vuex';
+// #ifdef H5
+import { weixindata, shareLoad } from '@/utils/wxAuthorized';
+// #endif
+import uniCopy from '@/js_sdk/xb-copy/uni-copy.js';
+export default {
+	components: {
+		seckill
+	},
+	data() {
+		return {
+			text: 'x18258617070',
+			shareShow: false, //分享海报
+			pageProportion: 0, //保存页面基于750宽度的比例
+			swiperHeight: 0,
+			checkid: 0,
+			titleNViewBackground: '',
+			longitude: 0, //经度
+			latitude: 0, //纬度
+			swiperCurrent: 0,
+			swiperLength: 0,
+			carouselList: [], //轮播列表
+			bastList: [], //会员礼包
+			shoplist: [], //商店列表
+			page: 1,
+			limit: 5,
+			bargainlist: []
+		};
+	},
+	computed: {
+		...mapState(['loginInterceptor', 'baseURL']),
+		...mapState('user', ['hasLogin', 'userInfo'])
+	},
+	onLoad: function(option) {
+		this.getaddress();
+		// #ifdef MP
+		if (option.scene) {
+			// 存储小程序邀请人
+			uni.setStorage({
+				key: 'spread_code',
+				data: option.scene
+			});
+		}
+		// #endif
+		// #ifdef H5
+		this.IndexShare();
+		//#endif
+	},
+	onShow: function() {
+		// 判断是否强制登录
+		// if (!this.hasLogin) {
+		// 	// 登录拦截
+		// 	interceptor();
+		// }
+		this.loadData();
+		this.getProduct();
+		// this.getBargainList();
+	},
+	//下拉刷新
+	onPullDownRefresh() {
+		this.loadData();
+	},
+	// #ifndef MP
+	// 监听导航栏输入框点击事件
+	onNavigationBarSearchInputClicked(e) {
+		//跳转到搜索页面
+		this.clickSearch();
+	},
+	//点击导航栏 buttons 时触发
+	onNavigationBarButtonTap(e) {
+		const index = e.index;
+		if (index === 0) {
+			this.$api.msg('点击了扫描');
+		} else if (index === 1) {
+			// #ifdef APP-PLUS
+			const pages = getCurrentPages();
+			const page = pages[pages.length - 1];
+			const currentWebview = page.$getAppWebview();
+			currentWebview.hideTitleNViewButtonRedDot({
+				index
+			});
+			// #endif
+			uni.navigateTo({
+				url: '/pages/user/notice'
+			});
+		}
+	},
 	// #endif
-	import uniCopy from '@/js_sdk/xb-copy/uni-copy.js';
-	export default {
-		components: {
-			seckill
-		},
-		data() {
-			return {
-				text: 'x18258617070',
-				tabbar: tabbar,
-				current: 0,
-				shareShow: false, //分享海报
-				pageProportion: 0, //保存页面基于750宽度的比例
-				swiperHeight: 0,
-				checkid: 0,
-				titleNViewBackground: '',
-				longitude: 0, //经度
-				latitude: 0, //纬度
-				swiperCurrent: 0,
-				swiperLength: 0,
-				carouselList: [], //轮播列表
-				bastList: [], //会员礼包
-				shoplist: [], //商店列表
-				page: 1,
-				limit: 5,
-				bargainlist: []
-			};
-		},
-		computed: {
-			...mapState(['loginInterceptor', 'baseURL']),
-			...mapState('user', ['hasLogin', 'userInfo'])
+	methods: {
+		...mapMutations(['setLat', 'setLon']),
+		kfClose() {
+			this.$refs.popupkf.close();
 		},
-		onLoad: function(option) {
-			this.getaddress();
-			// #ifdef MP
-			if (option.scene) {
-				// 存储小程序邀请人
-				uni.setStorage({
-					key: 'spread_code',
-					data: option.scene
+		// 复制
+		comfirm(text) {
+			console.log(text);
+			const result = uniCopy(text);
+			if (result === false) {
+				uni.showToast({
+					title: '不支持'
+				});
+			} else {
+				uni.showToast({
+					title: '复制成功',
+					icon: 'none'
 				});
 			}
-			// #endif
-			// #ifdef H5
-			this.IndexShare();
-			//#endif
+			this.$refs.popupkp.close();
 		},
-		onShow: function() {
-			// 判断是否强制登录
-			// if (!this.hasLogin) {
-			// 	// 登录拦截
-			// 	interceptor();
-			// }
-			this.loadData();
-			this.getProduct()
-			// this.getBargainList();
+		// #ifdef H5
+		IndexShare() {
+			let obj = this;
+			let pages = getCurrentPages();
+			// 获取当前页面
+			let page = pages[pages.length - 1];
+			let path = '#/' + page.route + '?';
+			// 保存传值
+			for (let i in page.options) {
+				path += i + '=' + page.options[i] + '&';
+			}
+			console.log(obj.Path);
+			// 保存邀请人
+			path += 'spread=' + this.userInfo.uid;
+			let data = {
+				link: this.baseURL + '/index/' + path,
+				title: this.userInfo.nickname + '邀请您进入响亮商城',
+				desc: '欢迎加入响亮商城',
+				imgUrl: 'https://xl.liuniu946.com/index/static/img/logo.jpg'
+			};
+			console.log(data, '分享数据');
+			shareLoad(data);
 		},
-		//下拉刷新
-		onPullDownRefresh() {
-			this.loadData();
+		// #endif
+		getaddress() {
+			console.log('dizhi+++++++++++');
+			let obj = this;
+			// uni.getLocation({
+			// 	type: 'gcj02',
+			// 	success: res => {
+			// 		console.log(res, 123456);
+			// 		obj.setLat(res.latitude);
+			// 		obj.setLon(res.longitude);
+			// 	},
+			// 	fail: err => {
+			// 		console.log(err, 'shi+++++++++++++++');
+			// 		openMap().then(e => {
+			// 			this.getaddress();
+			// 		});
+			// 	}
+			// });
+			weixindata().then(wxOjb => {
+				console.log(wxOjb, '获取微信');
+				wxOjb.getLocation({
+					type: 'gcj02',
+					success: res => {
+						console.log(res, 123456);
+						obj.setLat(res.latitude);
+						obj.setLon(res.longitude);
+					},
+					fail: err => {
+						console.log(err, 'shi+++++++++++++++');
+						openMap().then(e => {
+							this.getaddress();
+						});
+					}
+				});
+			});
 		},
-		// #ifndef MP
-		// 监听导航栏输入框点击事件
-		onNavigationBarSearchInputClicked(e) {
-			//跳转到搜索页面
-			this.clickSearch();
+		//砍价商品推荐详情页
+		navToDetailPages(item) {
+			let id = item.product_id;
+			//let type = 2;
+
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id
+			});
 		},
-		//点击导航栏 buttons 时触发
-		onNavigationBarButtonTap(e) {
-			const index = e.index;
-			if (index === 0) {
-				this.$api.msg('点击了扫描');
-			} else if (index === 1) {
-				// #ifdef APP-PLUS
-				const pages = getCurrentPages();
-				const page = pages[pages.length - 1];
-				const currentWebview = page.$getAppWebview();
-				currentWebview.hideTitleNViewButtonRedDot({
-					index
-				});
-				// #endif
+		navTo(url) {
+			if (url == '') {
+				this.$api.msg('暂未开通,敬请期待');
+			} else {
 				uni.navigateTo({
-					url: '/pages/user/notice'
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						});
+					}
 				});
 			}
 		},
-		// #endif
-		methods: {
-			...mapMutations(['setLat', 'setLon']),
-			kfClose() {
-				this.$refs.popupkf.close()
-			},
-			// 复制
-			comfirm(text) {
-				console.log(text);
-				const result = uniCopy(text);
-				if (result === false) {
-					uni.showToast({
-						title: '不支持'
-					});
-				} else {
-					uni.showToast({
-						title: '复制成功',
-						icon: 'none'
-					});
-				}
-				this.$refs.popupkp.close();
-			},
-			// #ifdef H5
-			IndexShare() {
-				let obj = this;
-				let pages = getCurrentPages();
-				// 获取当前页面
-				let page = pages[pages.length - 1];
-				let path = '#/' + page.route + '?';
-				// 保存传值
-				for (let i in page.options) {
-					path += i + '=' + page.options[i] + '&';
-				}
-				console.log(obj.Path);
-				// 保存邀请人
-				path += 'spread=' + this.userInfo.uid;
-				let data = {
-					link: this.baseURL + '/index/' + path,
-					title: this.userInfo.nickname + '邀请您进入响亮商城',
-					desc: '欢迎加入响亮商城',
-					imgUrl: 'https://xl.liuniu946.com/index/static/img/logo.jpg'
-				};
-				console.log(data, '分享数据');
-				shareLoad(data);
-			},
+		openSubscribe: function(e) {
+			let page = e;
+			// #ifndef MP
+			uni.navigateTo({
+				url: page
+			});
 			// #endif
-			getaddress() {
-				console.log('dizhi+++++++++++');
-				let obj = this;
-				// uni.getLocation({
-				// 	type: 'gcj02',
-				// 	success: res => {
-				// 		console.log(res, 123456);
-				// 		obj.setLat(res.latitude);
-				// 		obj.setLon(res.longitude);
-				// 	},
-				// 	fail: err => {
-				// 		console.log(err, 'shi+++++++++++++++');
-				// 		openMap().then(e => {
-				// 			this.getaddress();
-				// 		});
-				// 	}
-				// });
-				weixindata().then(wxOjb => {
-					console.log(wxOjb, '获取微信');
-					wxOjb.getLocation({
-						type: 'gcj02',
-						success: res => {
-							console.log(res, 123456);
-							obj.setLat(res.latitude);
-							obj.setLon(res.longitude);
-						},
-						fail: err => {
-							console.log(err, 'shi+++++++++++++++');
-							openMap().then(e => {
-								this.getaddress();
-							});
-						}
-					});
-				});
-			},
-			//砍价商品推荐详情页
-			navToDetailPages(item) {
-				let id = item.product_id;
-				//let type = 2;
-
-				uni.navigateTo({
-					url: '/pages/product/product?id=' + id
-				});
-			},
-			navTo(url) {
-				if (url == '') {
-					this.$api.msg('暂未开通,敬请期待');
-				} else {
+			// #ifdef MP
+			uni.showLoading({
+				title: '正在加载'
+			});
+			openBargainSubscribe()
+				.then(res => {
+					uni.hideLoading();
 					uni.navigateTo({
-						url,
-						fail() {
-							uni.switchTab({
-								url
-							})
-						}
+						url: page
 					});
-				}
-			},
-			openSubscribe: function(e) {
-				let page = e;
-				// #ifndef MP
-				uni.navigateTo({
-					url: page
-				});
-				// #endif
-				// #ifdef MP
-				uni.showLoading({
-					title: '正在加载'
+				})
+				.catch(err => {
+					uni.hideLoading();
 				});
-				openBargainSubscribe()
-					.then(res => {
-						uni.hideLoading();
-						uni.navigateTo({
-							url: page
-						});
-					})
-					.catch(err => {
-						uni.hideLoading();
-					});
-				// #endif
-			},
-			getBargainList() {
-				let that = this;
-
-				getBargainList({
-						page: that.page,
-						limit: that.limit
-					})
-					.then(function(res) {
-						that.$set(that, 'bargainlist', res.data.slice(0, 2));
-						console.log(that.bargainlist)
-					})
-					.catch(res => {
-						console.log(res, 'getBargainList');
-					});
-			},
-			Mask() {
-				this.MaskShow = false;
-				this.shareShow = true;
-				uni.setStorage({
-					key: 'FirstEntry',
-					data: true,
-					success: function() {
-						console.log(uni.getStorageSync('FirstEntry'), 'Mask');
-					}
+			// #endif
+		},
+		getBargainList() {
+			let that = this;
+
+			getBargainList({
+				page: that.page,
+				limit: that.limit
+			})
+				.then(function(res) {
+					that.$set(that, 'bargainlist', res.data.slice(0, 2));
+					console.log(that.bargainlist);
+				})
+				.catch(res => {
+					console.log(res, 'getBargainList');
 				});
-			},
-			Toshare() {
-				if (this.userInfo == '') {
-					getUserInfo({})
-						.then(({
-							data
-						}) => {
-							this.setUserInfo(data);
-							this.userInfo = data;
-						})
-						.catch(e => {});
-				} else {
-					this.shareShow = false;
-					uni.navigateTo({
-						url: '/pages/user/shareQrCode?spread=' + this.userInfo.uid
-					});
+		},
+		Mask() {
+			this.MaskShow = false;
+			this.shareShow = true;
+			uni.setStorage({
+				key: 'FirstEntry',
+				data: true,
+				success: function() {
+					console.log(uni.getStorageSync('FirstEntry'), 'Mask');
 				}
-			},
-			Tocancel() {
+			});
+		},
+		Toshare() {
+			if (this.userInfo == '') {
+				getUserInfo({})
+					.then(({ data }) => {
+						this.setUserInfo(data);
+						this.userInfo = data;
+					})
+					.catch(e => {});
+			} else {
 				this.shareShow = false;
-			},
-			// 监听切换事件
-			listChange(e) {
-				this.checkid = e.detail.current;
-			},
-			// 點擊搜索框
-			clickSearch() {
 				uni.navigateTo({
-					url: '/pages/product/search'
+					url: '/pages/user/shareQrCode?spread=' + this.userInfo.uid
 				});
-			},
-			// 点击触发领取优惠券
-			setCoupons(item) {
-				// 判断是否已经领取了优惠券
-				let obj = this;
-				uni.showModal({
-					title: '领取提示',
-					content: '是否领取优惠券',
-					success(e) {
-						if (e.confirm) {
-							setCoupons({
-								couponId: item.id
-							}).then(e => {
-								item.is_use = true;
-								uni.showToast({
-									title: '领取成功',
-									type: 'top',
-									duration: 2000
-								});
+			}
+		},
+		Tocancel() {
+			this.shareShow = false;
+		},
+		// 监听切换事件
+		listChange(e) {
+			this.checkid = e.detail.current;
+		},
+		// 點擊搜索框
+		clickSearch() {
+			uni.navigateTo({
+				url: '/pages/product/search'
+			});
+		},
+		// 点击触发领取优惠券
+		setCoupons(item) {
+			// 判断是否已经领取了优惠券
+			let obj = this;
+			uni.showModal({
+				title: '领取提示',
+				content: '是否领取优惠券',
+				success(e) {
+					if (e.confirm) {
+						setCoupons({
+							couponId: item.id
+						}).then(e => {
+							item.is_use = true;
+							uni.showToast({
+								title: '领取成功',
+								type: 'top',
+								duration: 2000
 							});
-						}
+						});
 					}
-				});
-			},
-			//商品种类切换
-			change(item) {
-				let id = item;
-				this.checkid = id;
-				if (this.checkid == 1) {
-					// console.log(1);
-					this.detail = this.selected_detail;
-				} else if (this.checkid == 2) {
-					// console.log(2);
-					this.detail = this.new_product;
-				} else {
-					this.detail = this.cheap_good;
 				}
-			},
-			// 监听图片加载完成
-			onImageError(key, index) {
-				this[key][index].image = '/static/error/errorImage.jpg';
-			},
-			// 请求载入数据
-			async loadData() {
-				loadIndexs({})
-					.then(({
-						data
-					}) => {
-						let goods = data.info;
-						this.carouselList = data.banner;
-						console.log(this.carouselList, 'this.carouselList++++++++')
-						this.swiperLength = this.carouselList.length;
-						// this.bastList = data.giftInfo; //会员礼包
-						uni.stopPullDownRefresh();
-					})
-					.catch(e => {
-						uni.stopPullDownRefresh();
-					});
-			},
-			//轮播图切换修改背景色
-			swiperChange(e) {
-				const index = e.detail.current;
-				this.swiperCurrent = index;
-				this.titleNViewBackground = this.carouselList[index].background;
-			},
-			//详情页
-			navToDetailPage(item) {
-				let id = item.id;
-				uni.navigateTo({
-					url: '/pages/product/product?id=' + id + '&isVip=1'
-				});
-			},
-
-			// 轮播图跳转
-			bannerNavToUrl(item) {
-				// #ifdef H5
-				console.log(item.wap_url.indexOf('http'), 'banner');
-				if (item.wap_url.indexOf('http') >= 0) {
-					window.location.href = item.wap_url;
-				}
-				// #endif
-				//测试数据没有写id,用title代替
-				uni.navigateTo({
-					url: item.wap_url
-				});
-			},
-			getProduct() {
-				getProducts().then(res => {
-					console.log(res.data)
-					this.bastList = res.data
+			});
+		},
+		//商品种类切换
+		change(item) {
+			let id = item;
+			this.checkid = id;
+			if (this.checkid == 1) {
+				// console.log(1);
+				this.detail = this.selected_detail;
+			} else if (this.checkid == 2) {
+				// console.log(2);
+				this.detail = this.new_product;
+			} else {
+				this.detail = this.cheap_good;
+			}
+		},
+		// 监听图片加载完成
+		onImageError(key, index) {
+			this[key][index].image = '/static/error/errorImage.jpg';
+		},
+		// 请求载入数据
+		async loadData() {
+			loadIndexs({})
+				.then(({ data }) => {
+					let goods = data.info;
+					this.carouselList = data.banner;
+					console.log(this.carouselList, 'this.carouselList++++++++');
+					this.swiperLength = this.carouselList.length;
+					// this.bastList = data.giftInfo; //会员礼包
+					uni.stopPullDownRefresh();
 				})
+				.catch(e => {
+					uni.stopPullDownRefresh();
+				});
+		},
+		//轮播图切换修改背景色
+		swiperChange(e) {
+			const index = e.detail.current;
+			this.swiperCurrent = index;
+			this.titleNViewBackground = this.carouselList[index].background;
+		},
+		//详情页
+		navToDetailPage(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id + '&isVip=1'
+			});
+		},
+
+		// 轮播图跳转
+		bannerNavToUrl(item) {
+			// #ifdef H5
+			console.log(item.wap_url.indexOf('http'), 'banner');
+			if (item.wap_url.indexOf('http') >= 0) {
+				window.location.href = item.wap_url;
 			}
+			// #endif
+			//测试数据没有写id,用title代替
+			uni.navigateTo({
+				url: item.wap_url
+			});
+		},
+		getProduct() {
+			getProducts().then(res => {
+				console.log(res.data);
+				this.bastList = res.data;
+			});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	.carousel-section {
-		position: relative;
-		padding-top: 10px;
-
-		.bg {
-			position: absolute;
-			top: 0;
-			left: 0;
-			width: 750rpx;
-			height: 378rpx;
+.carousel-section {
+	position: relative;
+	padding-top: 10px;
+
+	.bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 750rpx;
+		height: 378rpx;
 
-			image {
-				width: 100%;
-				height: 100%;
-			}
+		image {
+			width: 100%;
+			height: 100%;
 		}
+	}
 
-		.titleNview-placing {
-			height: var(--status-bar-height);
-			box-sizing: content-box;
-		}
+	.titleNview-placing {
+		height: var(--status-bar-height);
+		box-sizing: content-box;
+	}
 
-		.search {
-			justify-content: flex-start;
-			padding: 10rpx 32rpx 20rpx;
-			align-items: center;
+	.search {
+		justify-content: flex-start;
+		padding: 10rpx 32rpx 20rpx;
+		align-items: center;
 
-			.address {
-				width: 32rpx;
-				height: 38rpx;
-			}
+		.address {
+			width: 32rpx;
+			height: 38rpx;
+		}
 
-			.shop-name {
-				height: 38rpx;
-				position: relative;
-				top: -4rpx;
-				z-index: 100;
-				font-size: 30rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #ffffff;
-				padding-left: 10rpx;
-			}
+		.shop-name {
+			height: 38rpx;
+			position: relative;
+			top: -4rpx;
+			z-index: 100;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			padding-left: 10rpx;
+		}
 
-			.shop-jt {
-				margin-left: 8rpx;
-				width: 16rpx;
-				height: 10rpx;
-			}
+		.shop-jt {
+			margin-left: 8rpx;
+			width: 16rpx;
+			height: 10rpx;
+		}
+
+		.input-box {
+			margin-left: 10rpx;
+			position: relative;
+			z-index: 99;
+			width: 700rpx;
+			height: 60rpx;
+			background: rgba(255, 255, 255, 0.4);
+			border-radius: 30rpx;
 
-			.input-box {
-				margin-left: 10rpx;
+			.input-content {
 				position: relative;
-				z-index: 99;
-				width: 700rpx;
-				height: 60rpx;
+				z-index: 11;
+				border-radius: 99rpx;
+				flex-grow: 1;
+				padding: 5rpx 30rpx;
 				background: rgba(255, 255, 255, 0.4);
-				border-radius: 30rpx;
 
-				.input-content {
-					position: relative;
-					z-index: 11;
-					border-radius: 99rpx;
+				.iconsearch {
+					font-size: 50rpx;
+					color: #ffffff;
+				}
+
+				.input {
+					margin-left: 19rpx;
 					flex-grow: 1;
-					padding: 5rpx 30rpx;
-					background: rgba(255, 255, 255, 0.4);
+					color: #ffffff;
 
-					.iconsearch {
-						font-size: 50rpx;
-						color: #ffffff;
-					}
+					input {
+						font-size: 28rpx;
 
-					.input {
-						margin-left: 19rpx;
-						flex-grow: 1;
 						color: #ffffff;
-
-						input {
-							font-size: 28rpx;
-
-							color: #ffffff;
-						}
 					}
 				}
+			}
 
-				.input-button {
-					padding-left: 20rpx;
-					font-size: $font-base;
-					height: 100%;
-				}
+			.input-button {
+				padding-left: 20rpx;
+				font-size: $font-base;
+				height: 100%;
 			}
 		}
 	}
+}
 
-	.carousel {
-		position: relative;
-		z-index: 3;
-		width: 100%;
-		height: 360rpx;
+.carousel {
+	position: relative;
+	z-index: 3;
+	width: 100%;
+	height: 360rpx;
 
-		.carousel-item {
-			width: 100%;
-			height: 100%;
-			padding: 0 28rpx;
-			overflow: hidden;
-		}
+	.carousel-item {
+		width: 100%;
+		height: 100%;
+		padding: 0 28rpx;
+		overflow: hidden;
+	}
 
-		image {
-			width: 100%;
-			height: 100%;
-			border-radius: $border-radius-sm;
-		}
+	image {
+		width: 100%;
+		height: 100%;
+		border-radius: $border-radius-sm;
 	}
+}
 
-	.navbar {
-		position: relative;
-		z-index: 2;
-		margin-top: -200rpx;
-		width: 750rpx;
-		height: 462rpx;
-		background: #ffffff;
-		border-radius: 40rpx;
+.navbar {
+	position: relative;
+	z-index: 2;
+	margin-top: -200rpx;
+	width: 750rpx;
+	height: 462rpx;
+	background: #ffffff;
+	border-radius: 40rpx;
 
-		.navbar-box {
-			padding-top: 250rpx;
+	.navbar-box {
+		padding-top: 250rpx;
 
-			.navbar-item {
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-				width: 25%;
+		.navbar-item {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			width: 25%;
 
-				.nitem-image {
-					width: 98rpx;
-					height: 98rpx;
-				}
+			.nitem-image {
+				width: 130rpx;
+				height: 130rpx;
+			}
 
-				.nitem-font {
-					margin-top: 22rpx;
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #000000;
-				}
+			.nitem-font {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #000000;
 			}
 		}
 	}
+}
 
-	.product-box {
-		margin-top: 20rpx;
-		background: #ffffff;
-		padding: 26rpx 30rpx 20rpx;
+.product-box {
+	margin-top: 20rpx;
+	background: #ffffff;
+	padding: 26rpx 30rpx 20rpx;
 
-		.product-title {
-			display: flex;
-			align-items: center;
+	.product-title {
+		display: flex;
+		align-items: center;
 
-			.pt-image {
-				width: 36rpx;
-				height: 36rpx;
-			}
+		.pt-image {
+			width: 26rpx;
+			height: 34rpx;
+		}
 
-			.pt-title {
-				margin-left: 8rpx;
-				font-size: 32rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-			}
+		.pt-title {
+			margin-left: 8rpx;
+			font-size: 36rpx;
+			font-family: SourceHanSansCN;
+			font-weight: bold;
+			color: #666666;
+		}
 
-			.pt-tip {
-				margin-left: 16rpx;
-				font-size: 20rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #95a0b1;
-			}
+		.pt-tip {
+			margin-left: 16rpx;
+			font-size: 24rpx;
+			font-family: SourceHanSansCN;
+			font-weight: bold;
+			color: #aaaaaa;
 		}
+	}
 
-		.hotgoods {
-			margin-top: 38rpx;
-			width: 100%;
-			display: flex;
-			flex-wrap: wrap;
-			padding: 0 0 30rpx;
+	.hotgoods {
+		margin-top: 38rpx;
+		width: 100%;
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 0 30rpx;
 
-			.hotgoods-item {
-				width: 48%;
-				background-color: #ffffff;
-				border-radius: 12rpx;
+		.hotgoods-item {
+			width: 48%;
+			background-color: #ffffff;
+			border-radius: 12rpx;
+
+			&:nth-child(2n + 1) {
+				margin-right: 24rpx;
+			}
+
+			.image-wrapper {
+				width: 100%;
+				height: 330rpx;
+				border-radius: 3px;
+				overflow: hidden;
+				position: relative;
 
-				&:nth-child(2n + 1) {
-					margin-right: 24rpx;
+				.image-bg {
+					position: absolute;
+					top: 0;
+					left: 0;
+					right: 0;
+					bottom: 0;
+					width: 100%;
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+					z-index: 2;
 				}
 
-				.image-wrapper {
+				.image {
 					width: 100%;
-					height: 330rpx;
-					border-radius: 3px;
-					overflow: hidden;
-					position: relative;
-
-					.image-bg {
-						position: absolute;
-						top: 0;
-						left: 0;
-						right: 0;
-						bottom: 0;
-						width: 100%;
-						height: 100%;
-						opacity: 1;
-						border-radius: 12rpx 12rpx 0 0;
-						z-index: 2;
-					}
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+				}
+			}
 
-					.image {
-						width: 100%;
-						height: 100%;
-						opacity: 1;
-						border-radius: 12rpx 12rpx 0 0;
-					}
+			.title {
+				margin-top: 24rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
+			}
+
+			.hot-price {
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				padding: 14rpx 0 30rpx;
+
+				.hotPrice-box {
+					padding: 2rpx 6rpx;
+
+					background: linear-gradient(90deg, #c79a4c, #f9df7f);
+					border-radius: 5rpx;
+					text-align: center;
+					line-height: 28rpx;
+					font-size: 20rpx;
+					font-family: Source Han Sans CN;
+					font-weight: 400;
+					color: #ffffff;
 				}
 
-				.title {
-					margin-top: 24rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
+				.price {
+					margin-left: 10rpx;
+					font-size: 40rpx;
+					color: #ff0000;
 					font-weight: 500;
-					color: #333333;
 				}
 
-				.hot-price {
-					display: flex;
-					justify-content: flex-start;
-					align-items: center;
-					padding: 14rpx 0 30rpx;
-
-					.hotPrice-box {
-						width: 70rpx;
-						height: 28rpx;
-						background: linear-gradient(90deg, #c79a4c, #f9df7f);
-						border-radius: 5rpx;
-						text-align: center;
-						line-height: 28rpx;
-						font-size: 20rpx;
-						font-family: Source Han Sans CN;
-						font-weight: 400;
-						color: #ffffff;
-					}
-
-					.price {
-						margin-left: 10rpx;
-						font-size: 40rpx;
-						color: #ff0000;
-						font-weight: 500;
-					}
-
-					.yuanPrice {
-						margin-left: 10rpx;
-						font-size: 20rpx;
-						font-family: PingFang SC;
-						font-weight: 500;
-						text-decoration: line-through;
-						color: #999999;
-					}
+				.yuanPrice {
+					margin-left: 10rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					text-decoration: line-through;
+					color: #999999;
+				}
 
-					.cart-icon {
-						image {
-							width: 44rpx;
-							height: 44rpx;
-						}
+				.cart-icon {
+					image {
+						width: 44rpx;
+						height: 44rpx;
 					}
 				}
 			}
 		}
 	}
+}
 
-	.popup-box {
-		width: 522rpx;
-		height: 605rpx;
-		background-color: #ffffff;
-		border-radius: 20rpx;
+.popup-box {
+	width: 522rpx;
+	height: 605rpx;
+	background-color: #ffffff;
+	border-radius: 20rpx;
+	position: relative;
+
+	.img {
 		position: relative;
+		top: -56rpx;
+		left: 0;
+		width: 522rpx;
+		height: 132rpx;
+		display: flex;
+		justify-content: center;
 
-		.img {
-			position: relative;
-			top: -56rpx;
-			left: 0;
-			width: 522rpx;
+		image {
+			border-radius: 20rpx 20rpx 0 0;
+			width: 450rpx;
 			height: 132rpx;
+		}
+	}
+
+	.mian {
+		margin-top: -44rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		// padding: 32rpx 32rpx;
+		background-color: #ffffff;
+		border-radius: 0 0 20rpx 20rpx;
+		text-align: center;
+
+		.delivery {
+			font-size: 40rpx;
+			color: #333333;
 			display: flex;
-			justify-content: center;
+			align-items: center;
+			flex-direction: column;
+
+			.title {
+			}
 
 			image {
-				border-radius: 20rpx 20rpx 0 0;
-				width: 450rpx;
-				height: 132rpx;
+				margin-top: 48rpx;
+				width: 172rpx;
+				height: 160rpx;
 			}
 		}
 
-		.mian {
-			margin-top: -44rpx;
+		.nocancel {
+			font-size: 32rpx;
+			color: #333333;
+			margin-top: 14rpx;
+		}
+
+		.comfirm-box {
+			margin-top: 52rpx;
 			display: flex;
-			flex-direction: column;
-			align-items: center;
-			// padding: 32rpx 32rpx;
-			background-color: #ffffff;
-			border-radius: 0 0 20rpx 20rpx;
-			text-align: center;
+			// margin-bottom: 32rpx;
 
-			.delivery {
-				font-size: 40rpx;
-				color: #333333;
+			// justify-content: space-around;
+			.cancel {
 				display: flex;
 				align-items: center;
-				flex-direction: column;
-
-				.title {}
-
-				image {
-					margin-top: 48rpx;
-					width: 172rpx;
-					height: 160rpx;
-				}
-			}
+				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				border: 1px solid #dcc786;
+				border-radius: 38rpx;
 
-			.nocancel {
 				font-size: 32rpx;
-				color: #333333;
-				margin-top: 14rpx;
+				color: #605128;
 			}
 
-			.comfirm-box {
-				margin-top: 52rpx;
+			.comfirm {
+				margin-left: 32rpx;
 				display: flex;
-				// margin-bottom: 32rpx;
-
-				// justify-content: space-around;
-				.cancel {
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 197rpx;
-					height: 74rpx;
-					border: 1px solid #dcc786;
-					border-radius: 38rpx;
-
-					font-size: 32rpx;
-					color: #605128;
-				}
-
-				.comfirm {
-					margin-left: 32rpx;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 197rpx;
-					height: 74rpx;
-					background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
-					border-radius: 38px;
-					font-size: 32rpx;
-					color: #605128;
-				}
+				align-items: center;
+				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
+				border-radius: 38px;
+				font-size: 32rpx;
+				color: #605128;
 			}
 		}
-
-	}
-
-	.cnxh {
-		text-align: center;
-		font-size: 30rpx;
-		font-weight: 500;
-		color: #363636;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		padding: 20rpx 0;
-
-		.hx {
-			width: 120rpx;
-			height: 1rpx;
-			background: #989898;
-			margin: 0 40rpx;
-		}
 	}
+}
 </style>

+ 110 - 28
pages/index/jieshao.vue

@@ -1,43 +1,125 @@
 <template>
 	<view class="content">
-		<view class="img">
-			<image src="../../static/index/js01.png" mode=""></image>
-		</view>
-		<view class="img">
-			<image src="../../static/index/js02.png" mode=""></image>
-		</view>
-		<view class="img">
-			<image src="../../static/index/js03.png" mode=""></image>
-		</view>
-		<view class="img">
-			<image src="../../static/index/js04.png" mode=""></image>
-		</view>
-		<view class="img">
-			<image src="../../static/index/js05.png" mode=""></image>
-		</view>
-		<view class="img">
-			<image src="../../static/index/js06.png" mode=""></image>
+		<view class="main">
+			<view v-for="(item, index) in list">
+				<view class="first" v-if="index == 0" @click="navToList(item.id)">
+					<view class="title">{{ item.title }}</view>
+					<view class="image"><image :src="item.image_input[0]" mode=""></image></view>
+					<view class="time">更新时间:{{ item.add_time }}</view>
+				</view>
+				<view class="item flex" @click="navToList(item.id)" v-else>
+					<view class="item-left"><image :src="item.image_input[0]" mode=""></image></view>
+					<view class="item-right">
+						<view class="item-font clamp">{{ item.title }}</view>
+						<view class="item-time">更新时间:{{ item.add_time }}</view>
+					</view>
+				</view>
+			</view>
 		</view>
 	</view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				
-			};
+import { article } from '@/api/user.js';
+export default {
+	data() {
+		return {
+			list: []
+		};
+	},
+	onLoad() {
+		this.loadData();
+	},
+	methods: {
+		// 载入数据
+		async loadData() {
+			let obj = this;
+			article({ page: 1, limit: 1000 }, 1).then(({ data }) => {
+				this.list = data;
+			});
+		},
+		navToList(id) {
+			uni.navigateTo({
+				url: '/pages/index/detail?id=' + id
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-.img{
-	width: 750rpx;
-	height: 420rpx;
-	image{
-		width: 100%;
-		height: 100%;
+page,
+.content {
+	height: auto;
+	min-height: 100%;
+	background: #f5f5f5;
+}
+.main {
+	margin-top: 20rpx;
+	background: #ffffff;
+	.first {
+		padding: 50rpx 0 18rpx;
+		margin: 0 22rpx;
+		border-bottom: 1px solid #e0e0e0;
+		.title {
+			font-size: 32rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+		.image {
+			width: 710rpx;
+			height: 400rpx;
+			background: #4cd964;
+			margin-top: 20rpx;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.time {
+			margin-top: 20rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+	}
+	.item {
+		padding: 26rpx 0 18rpx;
+		margin: 0 22rpx;
+		justify-content: flex-start;
+		align-items: flex-start;
+		border-bottom: 1px solid #e0e0e0;
+		.item-left {
+			width: 224rpx;
+			height: 160rpx;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.item-right {
+			width: 458rpx;
+			height: 160rpx;
+			margin-left: 24rpx;
+			padding: 18rpx 0;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			.item-font {
+				font-size: 32rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
+			.item-time {
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+			}
+		}
 	}
 }
 </style>

+ 0 - 187
pages/index/sign.vue

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

+ 6 - 6
pages/money/pay.vue

@@ -6,14 +6,14 @@
 		</view>
 		<view class="pay-type-list">
 			<!-- v-if="ispg == 'android'" -->
-			<view class="type-item b-b"  @click="changePayType(1)">
+			<!-- <view class="type-item b-b"  @click="changePayType(1)">
 				<text class="icon iconfont iconweixin"></text>
 				<view class="con">
 					<text class="tit">微信支付</text>
 					<text>推荐使用微信支付</text>
 				</view>
 				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 1"></radio></label>
-			</view>
+			</view> -->
 			<!-- <view class="type-item b-b" @click="changePayType(2)">
 				<text class="icon iconfont iconzhifubao"></text>
 				<view class="con"><text class="tit">支付宝支付</text></view>
@@ -62,7 +62,7 @@ export default {
 		// #endif
 	},
 	onLoad(options) {
-		console.log(options,'options');
+		console.log(options, 'options');
 		this.ispg = uni.getSystemInfoSync().platform;
 		console.log(this.ispg);
 		if (options.type == 1) {
@@ -134,7 +134,7 @@ export default {
 					//#ifndef APP-PLUS
 					if (obj.payName == 'weixin' || obj.payName == 'routine') {
 						let da = e.data.result.jsConfig;
-						console.log(da,'支付打印');
+						console.log(da, '支付打印');
 						let data = {
 							// #ifdef H5
 							timestamp: da.timestamp,
@@ -239,7 +239,7 @@ export default {
 		//确认支付
 		confirm: async function() {
 			let obj = this;
-			
+
 			// 判断是否余额不足
 			if (obj.payName == 'yue' && +obj.now_money < obj.money) {
 				uni.showModal({
@@ -423,4 +423,4 @@ export default {
 .clickbg {
 	background-color: $color-gray !important;
 }
-</style>
+</style>

+ 16 - 16
pages/money/paySuccess.vue

@@ -18,19 +18,19 @@ export default {
 	},
 	onLoad(opt) {
 		// 保存订单号
-	// 	if ('type' in opt) {
-	// 		this.type = opt.type;
-	// 	}
-	// 	if (this.type == 1) {
-	// 		uni.setNavigationBarTitle({
-	// 			title: '兑换成功'
-	// 		});
-	// 	}
-	// 	if (this.type == 2) {
-	// 		uni.setNavigationBarTitle({
-	// 			title: '预约成功'
-	// 		});
-	// 	}
+		// 	if ('type' in opt) {
+		// 		this.type = opt.type;
+		// 	}
+		// 	if (this.type == 1) {
+		// 		uni.setNavigationBarTitle({
+		// 			title: '兑换成功'
+		// 		});
+		// 	}
+		// 	if (this.type == 2) {
+		// 		uni.setNavigationBarTitle({
+		// 			title: '预约成功'
+		// 		});
+		// 	}
 	},
 	methods: {}
 };
@@ -67,7 +67,7 @@ export default {
 	justify-content: center;
 	width: 301rpx;
 	height: 78rpx;
-	background: #EF0E74;
+	background: #08d29b;
 	border-radius: 10rpx;
 	font-size: $font-lg;
 	font-size: 30rpx;
@@ -77,8 +77,8 @@ export default {
 	&.hollow {
 		margin-left: 36rpx;
 		background: #fff;
-		color: #EF0E74;
-		border: 1px solid #EF0E74;
+		color: #08d29b;
+		border: 1px solid #08d29b;
 	}
 }
 </style>

+ 11 - 11
pages/money/withdmoenys.vue

@@ -4,7 +4,7 @@
 			<view class="flex" v-if="type == 'xl'">
 				<view class="buttom">
 					<view class="icon">{{ userInfo.business_integral | getMoneyStyle }}</view>
-					<text class="text">可用喜嗨积分</text>
+					<text class="text">可用能量金豆</text>
 				</view>
 			</view>
 			<view class="flex" v-if="type == 'yue'">
@@ -42,7 +42,7 @@
 
 <script>
 import { getMoneyStyle } from '@/utils/rocessor.js';
-import { getUserInfo, transfer, yuetransfer, cashtransfer,yueXhg } from '@/api/user.js';
+import { getUserInfo, transfer, yuetransfer, cashtransfer, yueXhg } from '@/api/user.js';
 import { mapMutations, mapState } from 'vuex';
 export default {
 	filters: {
@@ -119,13 +119,13 @@ export default {
 					content: '不要输入自己的用户账号'
 				});
 			} else {
-			console.log(obj.type,'type');
+				console.log(obj.type, 'type');
 				if (obj.type == 'xl') {
 					yueXhg({
-					phone: obj.card, //编号
-					money: obj.withdrawal ,//金额
-					type:2
-				})
+						phone: obj.card, //编号
+						money: obj.withdrawal, //金额
+						type: 2
+					})
 						.then(e => {
 							console.log('输入了');
 							// 允许按钮点击
@@ -147,10 +147,10 @@ export default {
 				}
 				if (obj.type == 'yue') {
 					yueXhg({
-					phone: obj.card, //编号
-					money: obj.withdrawal ,//金额
-					type:1
-				})
+						phone: obj.card, //编号
+						money: obj.withdrawal, //金额
+						type: 1
+					})
 						.then(e => {
 							console.log('输入了');
 							// 允许按钮点击

+ 294 - 321
pages/money/withdrawal.vue

@@ -5,7 +5,7 @@
 			<view class="flex " style="width: 750rpx;justify-content: space-around;margin-left: 0;">
 				<view class="buttom">
 					<view class="icon">{{ money | getMoneyStyle }}</view>
-					<text class="text">可提现{{showType}}</text>
+					<text class="text">可提现{{ showType }}</text>
 				</view>
 			</view>
 		</view>
@@ -14,8 +14,7 @@
 			<view class="title">提现金额</view>
 			<view class="row">
 				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" placeholder="请输入提现金额"
-					placeholder-class="placeholder" />
+				<input class="input" type="number" v-model="withdrawal" placeholder="请输入提现金额" placeholder-class="placeholder" />
 				<view class="buttom" @click="withdrawal = money">全部提现</view>
 			</view>
 		</view>
@@ -43,16 +42,12 @@
 								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
 							</view>
 						</view>
-						<view class="right">
-							<radio value="alipay" color="#ff0060" :checked="type == 'alipay'" />
-						</view>
+						<view class="right"><radio value="alipay" color="#ff0060" :checked="type == 'alipay'" /></view>
 					</view>
 				</label>
 				<label>
 					<view class="box">
-						<view class="icon iconfont">
-							<image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image>
-						</view>
+						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
 						<view class="title-box">
 							<view class="title">
 								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
@@ -62,9 +57,7 @@
 								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
 							</view>
 						</view>
-						<view class="right">
-							<radio value="bank" color="#ff0060" :checked="type == 'bank'" />
-						</view>
+						<view class="right"><radio value="bank" color="#ff0060" :checked="type == 'bank'" /></view>
 					</view>
 				</label>
 			</radio-group>
@@ -72,383 +65,363 @@
 		<!-- #endif -->
 		<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" />
+			<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" />
+			<input class="input" type="text" v-model="alipay_name" placeholder="请输入支付宝姓名" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type == 'bank'">
 			<text class="tit">银行卡号</text>
-			<input class="input" type="text" v-model="bank_code" placeholder="请输入银行卡号"
-				placeholder-class="placeholder" />
+			<input class="input" type="text" v-model="bank_code" placeholder="请输入银行卡号" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type == 'bank'">
 			<text class="tit">姓名</text>
-			<input class="input" type="text" v-model="bank_people" placeholder="请输入银行卡姓名"
-				placeholder-class="placeholder" />
+			<input class="input" type="text" v-model="bank_people" placeholder="请输入银行卡姓名" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type == 'bank'">
 			<text class="tit">所属银行</text>
-			<input class="input" type="text" v-model="bank_name" placeholder="请输入所属银行"
-				placeholder-class="placeholder" />
+			<input class="input" type="text" v-model="bank_name" placeholder="请输入所属银行" placeholder-class="placeholder" />
 		</view>
-		<button class="add-btn up" @click="confirm" :class="{'loading': load}">提交申请</button>
+		<button class="add-btn up" @click="confirm" :class="{ loading: load }">提交申请</button>
 		<!-- <button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button> -->
 	</view>
 </template>
 
 <script>
-	import {
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
+import { orderData, getUserInfo } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
+export default {
+	filters: {
 		getMoneyStyle
-	} from '@/utils/rocessor.js';
-	import {
-		extractCash,
-		extractBank,
-		aliInfo,
-		bankInfo
-	} from '@/api/wallet.js';
-	import {
-		orderData,
-		getUserInfo
-	} from '@/api/user.js';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-	export default {
-		filters: {
-			getMoneyStyle
+	},
+	components: {
+		uniNoticeBar
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	data() {
+		return {
+			load: true,
+			showType: '',
+			from: '',
+			type: 'alipay', //提现方式
+			money: '0.00', //可提现金额
+			freeze: '0.0', //冻结金额
+			withdrawal: '', //提现金额
+			minPrice: '', //最少提现金额
+			aliData: {},
+			bankData: {},
+			alipay_code: '',
+			alipay_name: '',
+			bank_code: '',
+			bank_people: '',
+			bank_name: '',
+			// #ifdef H5
+			weichatBsrowser: false
+			// #endif
+		};
+	},
+	onLoad(options) {
+		// #ifdef H5
+		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+		// #endif
+		if (options.type) {
+			this.from = options.type;
+			if (this.from == 'purple') {
+				this.showType = '阳光';
+			}
+			if (this.from == 'shop') {
+				this.showType = '商家积分';
+			}
+		}
+		//加载提现信息
+		this.loadData();
+		// // 加载提款账号信息
+		// this.loadAli();
+		// this.loadBank();
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		// 加载余额信息
+		async loadData() {
+			let obj = this;
+			getUserInfo({})
+				.then(({ data }) => {
+					console.log(data);
+					this.setUserInfo(data);
+					if (obj.from == 'purple') {
+						obj.money = data.purple_integral;
+					}
+					if (obj.from == 'shop') {
+						obj.money = data.business_integral;
+					}
+					obj.load = false;
+				})
+				.catch(e => {
+					console.log(e);
+				});
 		},
-		components: {
-			uniNoticeBar
+		// 跳转
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
 		},
-		computed: {
-			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e.detail.value;
 		},
-		data() {
-			return {
-				load: true,
-				showType: '',
-				from: '',
-				type: 'alipay', //提现方式
-				money: '0.00', //可提现金额
-				freeze: '0.0', //冻结金额
-				withdrawal: '', //提现金额
-				minPrice: '', //最少提现金额
-				aliData: {},
-				bankData: {},
-				alipay_code: '',
-				alipay_name: '',
-				bank_code: '',
-				bank_people: '',
-				bank_name: '',
-				// #ifdef H5
-				weichatBsrowser: false
-				// #endif
+		// 提交
+		confirm() {
+			if (this.load) {
+				return;
+			}
+			let data = {
+				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
+				money: this.withdrawal, //金额
+				type: this.from == 'purple' ? 1 : 2 //0佣金1余额  1紫积分 2商家积分
 			};
-		},
-		onLoad(options) {
-			// #ifdef H5
-			this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-			// #endif
-			if (options.type) {
-				this.from = options.type
-				if (this.from == 'purple') {
-					this.showType = '紫积分'
-				}
-				if (this.from == 'shop') {
-					this.showType = '商家积分'
-				}
+			if (this.withdrawal % 100 != 0) {
+				uni.showToast({
+					title: '提现金额为100的倍数',
+					duration: 2000,
+					mask: false,
+					icon: 'none'
+				});
+				return;
 			}
-			//加载提现信息
-			this.loadData();
-			// // 加载提款账号信息
-			// this.loadAli();
-			// this.loadBank();
-		},
-		methods: {
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			// 加载余额信息
-			async loadData() {
-				let obj = this
-				getUserInfo({})
-					.then(({
-						data
-					}) => {
-						console.log(data)
-						this.setUserInfo(data);
-						if (obj.from == 'purple') {
-							obj.money = data.purple_integral
-						}
-						if (obj.from == 'shop') {
-							obj.money = data.business_integral
-						}
-						obj.load = false
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			// 跳转
-			navTo(url) {
-				uni.navigateTo({
-					url: url
+			if (this.withdrawal < this.minPrice) {
+				uni.showToast({
+					title: '提现金额不可少于' + this.minPrice,
+					duration: 2000,
+					mask: false,
+					icon: 'none'
 				});
-			},
-			// 切换选中对象
-			tabRadio(e) {
-				this.type = e.detail.value;
-			},
-			// 提交
-			confirm() {
-				if (this.load) {
-					return
-				}
-				let data = {
-					extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-					money: this.withdrawal, //金额
-					type: this.from == 'purple' ? 1 : 2 //0佣金1余额  1紫积分 2商家积分
-				};
-				if (this.withdrawal % 100 != 0) {
-					uni.showToast({
-						title: '提现金额为100的倍数',
-						duration: 2000,
-						mask: false,
-						icon: 'none'
-					});
-					return;
-				}
-				if (this.withdrawal < this.minPrice) {
+				return;
+			}
+			if (this.type == 'alipay') {
+				console.log('alipay');
+				data.name = this.alipay_name;
+				data.alipay_code = this.alipay_code;
+			}
+			if (this.type == 'bank') {
+				data.name = this.bank_people;
+				data.bankname = this.bank_name;
+				data.cardnum = this.bank_code;
+			}
+			this.load = true;
+			extractCash(data)
+				.then(e => {
+					this.loadData();
 					uni.showToast({
-						title: '提现金额不可少于' + this.minPrice,
+						title: '提交成功',
 						duration: 2000,
-						mask: false,
-						icon: 'none'
-					});
-					return;
-				}
-				if (this.type == 'alipay') {
-					console.log('alipay');
-					data.name = this.alipay_name;
-					data.alipay_code = this.alipay_code;
-				}
-				if (this.type == 'bank') {
-					data.name = this.bank_people;
-					data.bankname = this.bank_name;
-					data.cardnum = this.bank_code;
-				}
-				this.load = true
-				extractCash(data)
-					.then(e => {
-						this.loadData()
-						uni.showToast({
-							title: '提交成功',
-							duration: 2000,
-							position: 'top'
-						});
-					})
-					.catch(e => {
-						this.load = false
-						console.log();
+						position: 'top'
 					});
-			}
+				})
+				.catch(e => {
+					this.load = false;
+					console.log();
+				});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		height: 100%;
+page {
+	height: 100%;
+}
+
+.content-money {
+	padding: 30rpx 0;
+	background: #ffffff;
+}
+
+.flex {
+	background-color: #ffffff;
+	text-align: center;
+	margin: 0 30rpx;
+	border-radius: $border-radius-sm;
+
+	.buttom {
+		font-size: $font-lg;
+		width: 50%;
 	}
 
-	.content-money {
-		padding: 30rpx 0;
-		background: #ffffff;
+	.interval {
+		width: 2px;
+		height: 60rpx;
+		background-color: #eeeeee;
 	}
 
-	.flex {
-		background-color: #ffffff;
-		text-align: center;
-		margin: 0 30rpx;
-		border-radius: $border-radius-sm;
-
-		.buttom {
-			font-size: $font-lg;
-			width: 50%;
-		}
+	.icon {
+		background-size: 100%;
+		font-size: 42rpx;
+		color: $font-color-dark;
+		font-weight: bold;
+		background-repeat: no-repeat;
+		background-position: center;
+	}
 
-		.interval {
-			width: 2px;
-			height: 60rpx;
-			background-color: #eeeeee;
-		}
+	.text {
+		color: $font-color-light;
+	}
+}
 
-		.icon {
-			background-size: 100%;
-			font-size: 42rpx;
-			color: $font-color-dark;
-			font-weight: bold;
-			background-repeat: no-repeat;
-			background-position: center;
-		}
+.row-box {
+	margin-top: 30rpx;
+	padding: 20rpx 30rpx;
+	background: #fff;
 
-		.text {
-			color: $font-color-light;
-		}
+	.title {
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
 	}
 
-	.row-box {
-		margin-top: 30rpx;
-		padding: 20rpx 30rpx;
-		background: #fff;
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		height: 80rpx;
 
-		.title {
-			font-size: $font-base + 2rpx;
+		.tit {
+			flex-shrink: 0;
+			width: 40rpx;
+			font-size: 30rpx;
 			color: $font-color-dark;
 		}
 
-		.row {
-			display: flex;
-			align-items: center;
-			position: relative;
-			height: 80rpx;
-
-			.tit {
-				flex-shrink: 0;
-				width: 40rpx;
-				font-size: 30rpx;
-				color: $font-color-dark;
-			}
-
-			.input {
-				flex: 1;
-				font-size: 30rpx;
-				color: $font-color-dark;
-			}
+		.input {
+			flex: 1;
+			font-size: 30rpx;
+			color: $font-color-dark;
+		}
 
-			.iconlocation {
-				font-size: 36rpx;
-				color: $font-color-light;
-			}
+		.iconlocation {
+			font-size: 36rpx;
+			color: $font-color-light;
+		}
 
-			.buttom {
-				color: #ff0060;
-				font-size: $font-base;
-			}
+		.buttom {
+			color: #ff0060;
+			font-size: $font-base;
 		}
 	}
+}
 
-	.add-btn {
-		&.modified {
-			color: #ffffff;
-		}
+.add-btn {
+	&.modified {
+		color: #ffffff;
+	}
 
-		&.up {
-			background: linear-gradient(90deg, #ff0060, #ff0060);
-			color: #fff;
-		}
+	&.up {
+		background: linear-gradient(90deg, #ff0060, #ff0060);
+		color: #fff;
+	}
 
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 0 auto;
+	margin-top: 30rpx;
+	font-size: $font-lg;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.list {
+	padding-left: 30rpx;
+	margin-top: 30rpx;
+	background-color: #ffffff;
+
+	.box {
 		display: flex;
 		align-items: center;
-		justify-content: center;
-		width: 690rpx;
-		height: 80rpx;
-		margin: 0 auto;
-		margin-top: 30rpx;
-		font-size: $font-lg;
-		border-radius: 10rpx;
-		// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-	}
+		width: 100%;
+		height: 120rpx;
+		border-bottom: 1px solid $border-color-light;
 
-	.list {
-		padding-left: 30rpx;
-		margin-top: 30rpx;
-		background-color: #ffffff;
-
-		.box {
-			display: flex;
-			align-items: center;
-			width: 100%;
-			height: 120rpx;
-			border-bottom: 1px solid $border-color-light;
-
-			.icon {
-				font-size: 48rpx;
-				padding-right: 20rpx;
-
-				.icon-img {
-					height: 50rpx;
-					width: 50rpx;
-				}
-			}
+		.icon {
+			font-size: 48rpx;
+			padding-right: 20rpx;
 
-			.iconweixin1 {
-				color: #18bf16;
+			.icon-img {
+				height: 50rpx;
+				width: 50rpx;
 			}
+		}
 
-			.iconzhifubao {
-				color: #08aaec;
-			}
+		.iconweixin1 {
+			color: #18bf16;
+		}
+
+		.iconzhifubao {
+			color: #08aaec;
+		}
 
-			.title-box {
-				flex-grow: 1;
-				text-align: left;
+		.title-box {
+			flex-grow: 1;
+			text-align: left;
 
-				.title {
-					font-size: $font-base + 2rpx;
-					color: $font-color-base;
-				}
+			.title {
+				font-size: $font-base + 2rpx;
+				color: $font-color-base;
+			}
 
-				.node {
-					font-size: $font-sm;
-					color: $font-color-light;
-				}
+			.node {
+				font-size: $font-sm;
+				color: $font-color-light;
 			}
 		}
 	}
-
-	/deep/ .uni-radio-input {
-		width: 45rpx;
-		height: 45rpx;
+}
+
+/deep/ .uni-radio-input {
+	width: 45rpx;
+	height: 45rpx;
+}
+
+.row {
+	display: flex;
+	align-items: center;
+	position: relative;
+	padding: 0 30upx;
+	height: 110upx;
+	background: #fff;
+
+	.tit {
+		flex-shrink: 0;
+		width: 250upx;
+		font-size: 30upx;
+		color: $font-color-dark;
 	}
 
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		padding: 0 30upx;
-		height: 110upx;
-		background: #fff;
-
-		.tit {
-			flex-shrink: 0;
-			width: 250upx;
-			font-size: 30upx;
-			color: $font-color-dark;
-		}
-
-		.input {
-			flex: 1;
-			font-size: 30upx;
-			color: $font-color-dark;
-		}
-
-		.iconlocation {
-			font-size: 36upx;
-			color: $font-color-light;
-		}
+	.input {
+		flex: 1;
+		font-size: 30upx;
+		color: $font-color-dark;
 	}
 
-	.tip {
-		padding: 20rpx;
-		color: #fd3b39;
+	.iconlocation {
+		font-size: 36upx;
+		color: $font-color-light;
 	}
+}
 
-	.loading {
-		background: #999;
-	}
+.tip {
+	padding: 20rpx;
+	color: #fd3b39;
+}
+
+.loading {
+	background: #999;
+}
 </style>

Diff do ficheiro suprimidas por serem muito extensas
+ 7 - 25
pages/order/createOrder.vue


+ 8 - 8
pages/product/common/productBottom.vue

@@ -1,9 +1,9 @@
 <template>
 	<view class="page-bottom">
-		<navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
-			<text class="iconfont iconhome"></text>
-			<text>首页</text>
-		</navigator>
+		<view class="p-b-btn" :class="{ active: goodsObjact.userCollect }" @click="toFavorite(goodsObjact)">
+			<text class="iconfont " :class="{ iconlike: !goodsObjact.userCollect, iconlikefill: goodsObjact.userCollect }"></text>
+			<text>收藏</text>
+		</view>
 		<view class="action-btn-group">
 			<button type="primary" class=" action-btn no-border add-cart-btn" @click="buy(2)">加入购物车</button>
 			<button type="primary" class=" action-btn no-border buy-now-btn" @click="buy(1)">立即购买</button>
@@ -23,7 +23,7 @@ export default {
 				return {};
 			}
 		},
-		goodsid:{
+		goodsid: {
 			default: ''
 		}
 	},
@@ -32,7 +32,7 @@ export default {
 	},
 	methods: {
 		buy(type) {
-			this.$emit('specOPne',type);
+			this.$emit('specOPne', type);
 		},
 		//收藏
 		toFavorite(item) {
@@ -127,10 +127,10 @@ export default {
 			border-radius: 0;
 			background: transparent;
 			&.buy-now-btn {
-				background-color: #FF4C4C;
+				background-color: #ff4c4c;
 			}
 			&.add-cart-btn {
-				background-color: #FFB238;
+				background-color: #ffb238;
 			}
 		}
 	}

+ 640 - 655
pages/product/product.vue

@@ -13,7 +13,7 @@
 				<text class="iconfont iconenter"></text>
 			</view>
 			<view class="c-row b-b">
-				<text>每购买一个送{{goodsObjact.white_integral}}红积分</text>
+				<text>每购买一个送{{ goodsObjact.white_integral }}肥料</text>
 			</view>
 		</view>
 		<!-- 拼货时间及优惠 -->
@@ -21,8 +21,7 @@
 		<!-- 猜你喜欢 -->
 		<!-- <guess-like @Addcar='Addcar' @clickNavTo='navToDetailPage' :goodList = 'good_list||[]'></guess-like> -->
 		<!-- 评价 -->
-		<estimate @navTo="navTo('/pages/product/reply?id=' + goodsid)" v-if="reply" :reply="reply" :list="list">
-		</estimate>
+		<estimate @navTo="navTo('/pages/product/reply?id=' + goodsid)" v-if="reply" :reply="reply" :list="list"></estimate>
 		<!-- 规格信息 -->
 		<fresh-detail :goodsObjact="goodsObjact"></fresh-detail>
 		<!-- 图文详情 -->
@@ -51,8 +50,13 @@
 				<view v-for="(item, index) in specList" :key="index" class="attr-list">
 					<text>{{ item.attr_name }}</text>
 					<view class="item-list">
-						<text v-for="(childItem, childIndex) in item.attr_value" :key="childIndex" class="tit"
-							:class="{ selected: childItem.check }" @click="selectSpec(childItem, item, index)">
+						<text
+							v-for="(childItem, childIndex) in item.attr_value"
+							:key="childIndex"
+							class="tit"
+							:class="{ selected: childItem.check }"
+							@click="selectSpec(childItem, item, index)"
+						>
 							{{ childItem.attr }}
 						</text>
 					</view>
@@ -60,8 +64,7 @@
 				<view class="flex">
 					<view>购买数量</view>
 					<view class="item-list">
-						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax"
-							@eventChange="numberChange"></uni-number-box>
+						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
 					</view>
 				</view>
 				<button class="btn" @click.stop="buy">确定</button>
@@ -71,739 +74,721 @@
 </template>
 
 <script>
-	import uniNumberBox from '@/components/uni-number-box.vue';
-	import {
-		goodsDetail,
-		cartAdd
-	} from '@/api/product.js';
-	import {
-		mapState
-	} from 'vuex';
-	import store from '@/store/index.js';
-	import {
-		orderData,
-		userinfo
-	} from '@/api/user.js';
-	import {
-		saveUrl
-	} from '@/utils/loginUtils.js';
-	// #ifdef H5
-	import {
-		weixindata,
-		shareLoad
-	} from '@/utils/wxAuthorized';
-	// #endif
-	// 头部轮播图
-	import topSwiper from './common/topSwiper.vue';
-	// 标题
-	import productContent from './common/productContent.vue';
-	// 到货时间及优惠
-	import discounts from './common/discounts.vue';
-	// 规格信息
-	import freshDetail from './common/freshDetail.vue';
-	// 图文详情
-	import contentText from './common/contentText.vue';
-	// 底部按钮
-	import productBottom from './common/productBottom.vue';
-	// 猜你喜欢
-	import guessLike from './common/guessLike.vue';
-	// 评价
-	import estimate from './common/estimate.vue';
-	export default {
-		components: {
-			uniNumberBox,
-			guessLike,
-			topSwiper,
-			productContent,
-			discounts,
-			freshDetail,
-			contentText,
-			productBottom,
-			estimate
+import uniNumberBox from '@/components/uni-number-box.vue';
+import { goodsDetail, cartAdd } from '@/api/product.js';
+import { mapState } from 'vuex';
+import store from '@/store/index.js';
+import { orderData, userinfo } from '@/api/user.js';
+import { saveUrl } from '@/utils/loginUtils.js';
+// #ifdef H5
+import { weixindata, shareLoad } from '@/utils/wxAuthorized';
+// #endif
+// 头部轮播图
+import topSwiper from './common/topSwiper.vue';
+// 标题
+import productContent from './common/productContent.vue';
+// 到货时间及优惠
+import discounts from './common/discounts.vue';
+// 规格信息
+import freshDetail from './common/freshDetail.vue';
+// 图文详情
+import contentText from './common/contentText.vue';
+// 底部按钮
+import productBottom from './common/productBottom.vue';
+// 猜你喜欢
+import guessLike from './common/guessLike.vue';
+// 评价
+import estimate from './common/estimate.vue';
+export default {
+	components: {
+		uniNumberBox,
+		guessLike,
+		topSwiper,
+		productContent,
+		discounts,
+		freshDetail,
+		contentText,
+		productBottom,
+		estimate
+	},
+	data() {
+		return {
+			goodsStore: 0, //选中库存
+			specList: [],
+			buys_show: true,
+			buys_shows: false,
+			specSelected: [], //选中的分类
+			specClass: 'none', //显示隐藏弹窗
+			many: 1, //1是单规格  2是多规格
+			reply: '', //评论
+			list: '', //商品详情的数据
+			type: 1, //默认支付方式add为
+			goodsType: 0,
+			goodsNumber: 1, //购买数量
+			goodsid: '', //商品id
+			description: '', //商品描述
+			goodsObjact: {
+				percent: 1
+			}, //保存商品数据
+			//图片循环
+			imgList: [],
+			// 对比对象
+			actionPrice: 0, //默认选中商品价格
+			actionImage: '', //默认选中图片
+			good_list: '', //猜你喜欢列表
+			goodsNumberMax: 0, //最大可购买数量
+			// 倒计时数据保存
+			seckillObj: {
+				stopTime: 0, //结束时间
+				stop: false, //是否结束
+				stopTimeH: 0, //小时
+				stopTimeM: 0, //分钟
+				stopTimeS: 0, //秒钟
+				stopTimeD: 0, //天
+				upTime: 0 //更新组件内部组件用
+			},
+			// 拼团数据保存
+			pink: {
+				id: '', //拼团编号
+				uid: '', //用户编号
+				people: '', //拼团人数
+				price: '', //拼团价格
+				stop_time: '', //拼团结束时间
+				nickname: '', //团长昵称
+				avatar: '', //团长头像
+				count: '', //拼团剩余人数
+				h: '', //时
+				i: '', //分
+				s: '' //秒
+			},
+			userInfo: '',
+			isVip: '0'
+		};
+	},
+	filters: {
+		parseIntTo(percent) {
+			percent = +percent * 100;
+			if (percent % 1 === 0) {
+				return percent;
+			} else {
+				percent = percent.toFixed(1);
+				return percent;
+			}
+		}
+	},
+	async onLoad(options) {
+		let obj = this;
+		userinfo({}).then(({ data }) => {
+			obj.userInfo = data;
+			console.log(data, '123456');
+		});
+		//保存商品id
+		this.goodsid = options.id;
+		this.goodsType = options.type;
+		// 判断有无人邀请
+		if (options.spread) {
+			// 存储邀请人
+			uni.setStorageSync('spread', options.spread);
+		}
+		if (options.isVip) {
+			obj.isVip = options.isVip;
+		}
+		console.log(obj.isVip, 'vip');
+		saveUrl();
+		this.goodsDetail();
+		// 注册邀请信息
+		// #ifdef H5
+		let bool = uni.getStorageSync('weichatBrowser') || '';
+		if (bool) {
+			weixindata();
+		}
+		// #endif
+	},
+	computed: {
+		...mapState(['weichatObj', 'baseURL', 'urlFile'])
+	},
+	// 分享
+	// onShareAppMessage(options) {
+	// 	// 设置菜单中的转发按钮触发转发事件时的转发内容
+	// 	let pages = getCurrentPages(); //获取加载的页面
+	// 	let currentPage = pages[pages.length - 1]; //获取当前页面的对象
+	// 	let url = currentPage.route; //当前页面url
+	// 	let item = currentPage.options; //如果要获取url中所带的参数可以查看options
+	// 	let shareObj = {
+	// 		title: this.goodsObjact.store_name,
+	// 		desc: obj.goodsObjact.store_info,
+	// 		path: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
+	// 		imageUrl: this.goodsObjact.image,
+	// 		success: function(res) {
+	// 			// 转发成功之后的回调
+	// 			if (res.errMsg == 'shareAppMessage:ok') {
+	// 			}
+	// 		},
+	// 		fail: function() {
+	// 			// 转发失败之后的回调
+	// 			if (res.errMsg == 'shareAppMessage:fail cancel') {
+	// 				// 用户取消转发
+	// 			} else if (res.errMsg == 'shareAppMessage:fail') {
+	// 				// 转发失败,其中 detail message 为详细失败信息
+	// 			}
+	// 		}
+	// 	};
+
+	// 	return shareObj;
+	// },
+	methods: {
+		//选择规格
+		selectSpec(item, arr, ind) {
+			arr.attr_value.forEach(function(e) {
+				e.check = false;
+			});
+			item.check = true;
+			let obj = this;
+			obj.specSelected[ind] = item.attr;
+			let str = obj.specSelected.join(',');
+			// 获取当前选中的对象
+			if (obj.productValue[str]) {
+				obj.buys_show = true;
+				obj.buys_shows = false;
+				obj.actionPrice = obj.productValue[str].price;
+				obj.goodsNumberMax = obj.productValue[str].stock;
+				obj.actionImage = obj.productValue[str].image;
+				obj.uniqueId = obj.productValue[str].unique;
+				obj.goodsStore = obj.productValue[str].stock;
+			} else {
+				(obj.buys_show = false), (obj.buys_shows = true);
+			}
+			if (obj.goodsStore == 0) {
+				obj.buys_show = false;
+				obj.buys_shows = true;
+			}
+			obj.specSelected[ind] = item.attr;
 		},
-		data() {
-			return {
-				goodsStore: 0, //选中库存
-				specList: [],
-				buys_show: true,
-				buys_shows: false,
-				specSelected: [], //选中的分类
-				specClass: 'none', //显示隐藏弹窗
-				many: 1, //1是单规格  2是多规格
-				reply: '', //评论
-				list: '', //商品详情的数据
-				type: 1, //默认支付方式add为
-				goodsType: 0,
-				goodsNumber: 1, //购买数量
-				goodsid: '', //商品id
-				description: '', //商品描述
-				goodsObjact: {
-					percent: 1
-				}, //保存商品数据
-				//图片循环
-				imgList: [],
-				// 对比对象
-				actionPrice: 0, //默认选中商品价格
-				actionImage: '', //默认选中图片
-				good_list: '', //猜你喜欢列表
-				goodsNumberMax: 0, //最大可购买数量
-				// 倒计时数据保存
-				seckillObj: {
-					stopTime: 0, //结束时间
-					stop: false, //是否结束
-					stopTimeH: 0, //小时
-					stopTimeM: 0, //分钟
-					stopTimeS: 0, //秒钟
-					stopTimeD: 0, //天
-					upTime: 0 //更新组件内部组件用
-				},
-				// 拼团数据保存
-				pink: {
-					id: '', //拼团编号
-					uid: '', //用户编号
-					people: '', //拼团人数
-					price: '', //拼团价格
-					stop_time: '', //拼团结束时间
-					nickname: '', //团长昵称
-					avatar: '', //团长头像
-					count: '', //拼团剩余人数
-					h: '', //时
-					i: '', //分
-					s: '' //秒
-				},
-				userInfo: '',
-				isVip: '0'
-			};
+		// 打開彈窗
+		specOPne(type = 1) {
+			let obj = this;
+			obj.specClass = 'show';
+			obj.type = type;
 		},
-		filters: {
-			parseIntTo(percent) {
-				percent = +percent * 100;
-				if (percent % 1 === 0) {
-					return percent;
-				} else {
-					percent = percent.toFixed(1);
-					return percent;
-				}
+		//规格弹窗开关
+		toggleSpec(str) {
+			if (this.specClass === 'show') {
+				this.specClass = 'hide';
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 250);
+			} else if (this.specClass === 'none') {
+				this.specClass = 'show';
 			}
+			// 保存当前购买类型
+			this.type = str;
+		},
+		//领取优惠券
+		Getcoupon() {
+			uni.navigateTo({
+				url: '/pages/coupon/getcoupon'
+			});
 		},
-		async onLoad(options) {
+		// 购买数量变化
+		numberChange(e) {
+			this.goodsNumber = e.number;
+		},
+		// #ifdef H5
+		// 加载微信html5页面分享方法
+		shareDate() {
 			let obj = this;
-			userinfo({})
-				.then(({
-					data
-				}) => {
-					obj.userInfo = data;
-					console.log(data, "123456")
-				})
-			//保存商品id
-			this.goodsid = options.id;
-			this.goodsType = options.type;
-			// 判断有无人邀请
-			if (options.spread) {
-				// 存储邀请人
-				uni.setStorageSync('spread', options.spread);
-			}
-			if (options.isVip) {
-				obj.isVip = options.isVip;
-			}
-			console.log(obj.isVip, 'vip');
-			saveUrl();
-			this.goodsDetail();
-			// 注册邀请信息
-			// #ifdef H5
+			// 保存分享人id链接
+			let url = window.location.href + '&spread=' + this.userInfo.uid;
+			// 判断是否微信浏览器
 			let bool = uni.getStorageSync('weichatBrowser') || '';
 			if (bool) {
-				weixindata();
+				// 过滤微信强制添加的链接地址
+				url = url.replace(/[\?,&]from=singlemessage/g, '');
+				let data = {
+					link: url, // 分享链接
+					imgUrl: obj.goodsObjact.image, // 分享图标
+					desc: obj.goodsObjact.store_info,
+					title: obj.goodsObjact.store_name,
+					success: function(e) {
+						console.log(e);
+					}
+				};
+				console.log(data, '分享');
+				shareLoad(data);
 			}
-			// #endif
 		},
-		computed: {
-			...mapState(['weichatObj', 'baseURL', 'urlFile'])
+		// #endif
+		//详情页
+		navToDetailPage(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id
+			});
 		},
-		// 分享
-		// onShareAppMessage(options) {
-		// 	// 设置菜单中的转发按钮触发转发事件时的转发内容
-		// 	let pages = getCurrentPages(); //获取加载的页面
-		// 	let currentPage = pages[pages.length - 1]; //获取当前页面的对象
-		// 	let url = currentPage.route; //当前页面url
-		// 	let item = currentPage.options; //如果要获取url中所带的参数可以查看options
-		// 	let shareObj = {
-		// 		title: this.goodsObjact.store_name,
-		// 		desc: obj.goodsObjact.store_info,
-		// 		path: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
-		// 		imageUrl: this.goodsObjact.image,
-		// 		success: function(res) {
-		// 			// 转发成功之后的回调
-		// 			if (res.errMsg == 'shareAppMessage:ok') {
-		// 			}
-		// 		},
-		// 		fail: function() {
-		// 			// 转发失败之后的回调
-		// 			if (res.errMsg == 'shareAppMessage:fail cancel') {
-		// 				// 用户取消转发
-		// 			} else if (res.errMsg == 'shareAppMessage:fail') {
-		// 				// 转发失败,其中 detail message 为详细失败信息
-		// 			}
-		// 		}
-		// 	};
-
-		// 	return shareObj;
-		// },
-		methods: {
-			//选择规格
-			selectSpec(item, arr, ind) {
-				arr.attr_value.forEach(function(e) {
-					e.check = false;
+		// 跳转页面
+		navTo(url) {
+			uni.navigateTo({
+				url: '/pages/product/reply?id=' + this.goodsid
+			});
+		},
+		//加入购物车
+		Addcar(item) {
+			let obj = this;
+			cartAdd({
+				cartNum: '1', //商品数量
+				uniqueId: '', //商品标签
+				new: 0, //商品是否新增加到购物车1为不加入0为加入
+				mer_id: '',
+				productId: item.id //商品编号
+			})
+				.then(function(e) {
+					uni.showToast({
+						title: '成功加入购物车',
+						type: 'top',
+						duration: 500,
+						icon: 'none'
+					});
+
+					obj.goodsDetail();
+				})
+				.catch(e => {
+					console.log(e);
 				});
-				item.check = true;
-				let obj = this;
-				obj.specSelected[ind] = item.attr;
-				let str = obj.specSelected.join(',');
-				// 获取当前选中的对象
-				if (obj.productValue[str]) {
-					obj.buys_show = true;
-					obj.buys_shows = false;
+		},
+		goodsDetail() {
+			let obj = this;
+			// 获取普通商品信息
+			goodsDetail({}, this.goodsid).then(function({ data }) {
+				obj.list = data;
+				obj.good_list = data.good_list; //保存猜你喜欢列表
+				obj.reply = data.reply; //保存评论列表
+				let goods = data.storeInfo;
+				obj.goodsObjact = goods;
+				console.log(obj.goodsObjact, 'obj.goodsObjact');
+				if (obj.goodsObjact.description != null) {
+					obj.description = obj.goodsObjact.description.replace(/\<img/gi, '<img class="rich-img"');
+				} //小程序商品详情图超出屏幕问题
+				obj.imgList = goods.slider_image; //保存轮播图
+				obj.specList = data.productAttr; //保存分类列表
+				if (Array.isArray(data.productValue) != true) {
+					obj.many = 2;
+					obj.specList = data.productAttr; //保存产品属性
+					obj.productValue = data.productValue; //保存属性值
+					obj.specSelected = []; //初始化默认选择对象
+					for (let i = 0; i < obj.specList.length; i++) {
+						// 设置默认数据
+						let attrValue = obj.specList[i].attr_value[0];
+						attrValue.check = true;
+						obj.specSelected.push(attrValue.attr);
+					}
+					let str = obj.specSelected.join(',');
+					console.log(str, 'str');
+					// 设置默认值
 					obj.actionPrice = obj.productValue[str].price;
 					obj.goodsNumberMax = obj.productValue[str].stock;
 					obj.actionImage = obj.productValue[str].image;
 					obj.uniqueId = obj.productValue[str].unique;
-					obj.goodsStore = obj.productValue[str].stock;
+					obj.goodsStore = obj.productValue[str].quota;
 				} else {
-					(obj.buys_show = false), (obj.buys_shows = true);
-				}
-				if (obj.goodsStore == 0) {
-					obj.buys_show = false;
-					obj.buys_shows = true;
+					obj.many = 1;
+					obj.productValue = data.productValue; //保存分类查询数据
+					obj.actionPrice = goods.price; //保存默认选中商品价格
+					obj.actionImage = goods.image_base; //保存默认选中商品图片
+					obj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量
 				}
-				obj.specSelected[ind] = item.attr;
-			},
-			// 打開彈窗
-			specOPne(type = 1) {
-				let obj = this;
-				obj.specClass = 'show';
-				obj.type = type;
-			},
-			//规格弹窗开关
-			toggleSpec(str) {
-				if (this.specClass === 'show') {
-					this.specClass = 'hide';
-					setTimeout(() => {
-						this.specClass = 'none';
-					}, 250);
-				} else if (this.specClass === 'none') {
-					this.specClass = 'show';
-				}
-				// 保存当前购买类型
-				this.type = str;
-			},
-			//领取优惠券
-			Getcoupon() {
-				uni.navigateTo({
-					url: '/pages/coupon/getcoupon'
-				});
-			},
-			// 购买数量变化
-			numberChange(e) {
-				this.goodsNumber = e.number;
-			},
-			// #ifdef H5
-			// 加载微信html5页面分享方法
-			shareDate() {
-				let obj = this;
-				// 保存分享人id链接
-				let url = window.location.href + '&spread=' + this.userInfo.uid;
-				// 判断是否微信浏览器
-				let bool = uni.getStorageSync('weichatBrowser') || '';
-				if (bool) {
-					// 过滤微信强制添加的链接地址
-					url = url.replace(/[\?,&]from=singlemessage/g, '');
-					let data = {
-						link: url, // 分享链接
-						imgUrl: obj.goodsObjact.image, // 分享图标
-						desc: obj.goodsObjact.store_info,
-						title: obj.goodsObjact.store_name,
-						success: function(e) {
-							console.log(e);
-						}
-					};
-					console.log(data, '分享');
-					shareLoad(data);
-				}
-			},
-			// #endif
-			//详情页
-			navToDetailPage(item) {
-				let id = item.id;
-				uni.navigateTo({
-					url: '/pages/product/product?id=' + id
-				});
-			},
-			// 跳转页面
-			navTo(url) {
-				uni.navigateTo({
-					url: '/pages/product/reply?id=' + this.goodsid
-				});
-			},
-			//加入购物车
-			Addcar(item) {
-				let obj = this;
-				cartAdd({
-						cartNum: '1', //商品数量
-						uniqueId: '', //商品标签
-						new: 0, //商品是否新增加到购物车1为不加入0为加入
-						mer_id: '',
-						productId: item.id //商品编号
-					})
-					.then(function(e) {
+				obj.shopId = data.mer_id; //保存商店id
+				// #ifdef H5
+				obj.shareDate();
+				// #endif
+			});
+		},
+		// #ifdef H5
+		// 加载微信html5页面分享方法
+		shareDate() {
+			let obj = this;
+			// 保存分享人id链接
+			let url = window.location.href + '&spread=' + this.userInfo.uid;
+			// 判断是否微信浏览器
+			let bool = uni.getStorageSync('weichatBrowser') || '';
+			if (bool) {
+				// 过滤微信强制添加的链接地址
+				url = url.replace(/[\?,&]from=singlemessage/g, '');
+				let data = {
+					link: url, // 分享链接
+					imgUrl: obj.goodsObjact.image, // 分享图标
+					desc: obj.goodsObjact.store_info,
+					title: obj.goodsObjact.store_name,
+					success: function(e) {
+						console.log(e);
+					}
+				};
+				shareLoad(data);
+			}
+		},
+		// #endif
+		// 立即购买
+		buy() {
+			let obj = this;
+			// 创建传值对象
+			let data = {
+				cartNum: obj.goodsNumber, //商品数量
+				new: 1,
+				productId: obj.goodsid, //商品编号
+				uniqueId: obj.uniqueId
+			};
+
+			if (obj.type == 2) {
+				data.new = 0;
+			}
+			cartAdd(data)
+				.then(function(e) {
+					let da = e.data;
+					if (obj.type == 1) {
+						// 跳转到支付页
+						uni.navigateTo({
+							url: '/pages/order/createOrder?id=' + da.cartId
+						});
+					}
+					if (obj.type == 2) {
 						uni.showToast({
 							title: '成功加入购物车',
 							type: 'top',
-							duration: 500,
+							duration: 2000,
 							icon: 'none'
 						});
-
 						obj.goodsDetail();
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			goodsDetail() {
-				let obj = this;
-				// 获取普通商品信息
-				goodsDetail({}, this.goodsid).then(function({
-					data
-				}) {
-					obj.list = data;
-					obj.good_list = data.good_list; //保存猜你喜欢列表
-					obj.reply = data.reply; //保存评论列表
-					let goods = data.storeInfo;
-					obj.goodsObjact = goods;
-					console.log(obj.goodsObjact,'obj.goodsObjact');
-					if (obj.goodsObjact.description != null) {
-						obj.description = obj.goodsObjact.description.replace(/\<img/gi, '<img class="rich-img"');
-					} //小程序商品详情图超出屏幕问题
-					obj.imgList = goods.slider_image; //保存轮播图
-					obj.specList = data.productAttr; //保存分类列表
-					if (Array.isArray(data.productValue) != true) {
-						obj.many = 2;
-						obj.specList = data.productAttr; //保存产品属性
-						obj.productValue = data.productValue; //保存属性值
-						obj.specSelected = []; //初始化默认选择对象
-						for (let i = 0; i < obj.specList.length; i++) {
-							// 设置默认数据
-							let attrValue = obj.specList[i].attr_value[0];
-							attrValue.check = true;
-							obj.specSelected.push(attrValue.attr);
-						}
-						let str = obj.specSelected.join(',');
-						console.log(str, 'str');
-						// 设置默认值
-						obj.actionPrice = obj.productValue[str].price;
-						obj.goodsNumberMax = obj.productValue[str].stock;
-						obj.actionImage = obj.productValue[str].image;
-						obj.uniqueId = obj.productValue[str].unique;
-						obj.goodsStore = obj.productValue[str].quota;
-					} else {
-						obj.many = 1;
-						obj.productValue = data.productValue; //保存分类查询数据
-						obj.actionPrice = goods.price; //保存默认选中商品价格
-						obj.actionImage = goods.image_base; //保存默认选中商品图片
-						obj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量
 					}
-					obj.shopId = data.mer_id; //保存商店id
-					// #ifdef H5
-					obj.shareDate();
-					// #endif
+					obj.toggleSpec();
+				})
+				.catch(e => {
+					console.log(e);
 				});
-			},
-			// #ifdef H5
-			// 加载微信html5页面分享方法
-			shareDate() {
-				let obj = this;
-				// 保存分享人id链接
-				let url = window.location.href + '&spread=' + this.userInfo.uid;
-				// 判断是否微信浏览器
-				let bool = uni.getStorageSync('weichatBrowser') || '';
-				if (bool) {
-					// 过滤微信强制添加的链接地址
-					url = url.replace(/[\?,&]from=singlemessage/g, '');
-					let data = {
-						link: url, // 分享链接
-						imgUrl: obj.goodsObjact.image, // 分享图标
-						desc: obj.goodsObjact.store_info,
-						title: obj.goodsObjact.store_name,
-						success: function(e) {
-							console.log(e);
-						}
-					};
-					shareLoad(data);
-				}
-			},
-			// #endif
-			// 立即购买
-			buy() {
-				let obj = this;
-				// 创建传值对象
-				let data = {
-					cartNum: obj.goodsNumber, //商品数量
-					new: 1,
-					productId: obj.goodsid, //商品编号
-					uniqueId: obj.uniqueId
-				};
-
-				if (obj.type == 2) {
-					data.new = 0;
-				}
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId
-							});
-						}
-						if (obj.type == 2) {
-							uni.showToast({
-								title: '成功加入购物车',
-								type: 'top',
-								duration: 2000,
-								icon: 'none'
-							});
-							obj.goodsDetail();
-						}
-						obj.toggleSpec();
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			buy1() {
-				let obj = this;
-				let data = {
-					cartNum: obj.goodsNumber, //商品数量
-					new: 1,
-					productId: obj.goodsid, //商品编号
-					uniqueId: obj.uniqueId
-				};
+		},
+		buy1() {
+			let obj = this;
+			let data = {
+				cartNum: obj.goodsNumber, //商品数量
+				new: 1,
+				productId: obj.goodsid, //商品编号
+				uniqueId: obj.uniqueId
+			};
 
-				if (obj.type == 2) {
-					data.new = 0;
-				}
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId
-							});
-						}
-						if (obj.type == 2) {
-							uni.showToast({
-								title: '成功加入购物车',
-								type: 'top',
-								duration: 2000,
-								icon: 'none'
-							});
-							obj.goodsDetail();
-						}
-						obj.toggleSpec();
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			// 阻止触发上级事件
-			stopPrevent() {}
-		}
-	};
+			if (obj.type == 2) {
+				data.new = 0;
+			}
+			cartAdd(data)
+				.then(function(e) {
+					let da = e.data;
+					if (obj.type == 1) {
+						// 跳转到支付页
+						uni.navigateTo({
+							url: '/pages/order/createOrder?id=' + da.cartId
+						});
+					}
+					if (obj.type == 2) {
+						uni.showToast({
+							title: '成功加入购物车',
+							type: 'top',
+							duration: 2000,
+							icon: 'none'
+						});
+						obj.goodsDetail();
+					}
+					obj.toggleSpec();
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		// 阻止触发上级事件
+		stopPrevent() {}
+	}
+};
 </script>
 
 <style lang="scss">
-	/*  弹出层 */
-	.popup {
-		position: fixed;
-		left: 0;
-		top: 0;
-		right: 0;
-		bottom: 0;
-		z-index: 99;
+/*  弹出层 */
+.popup {
+	position: fixed;
+	left: 0;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	z-index: 99;
+
+	&.show {
+		display: block;
 
-		&.show {
-			display: block;
-
-			.mask {
-				animation: showPopup 0.2s linear both;
-			}
-
-			.layer {
-				animation: showLayer 0.2s linear both;
-			}
-		}
-
-		&.hide {
-			.mask {
-				animation: hidePopup 0.2s linear both;
-			}
-
-			.layer {
-				animation: hideLayer 0.2s linear both;
-			}
+		.mask {
+			animation: showPopup 0.2s linear both;
 		}
 
-		&.none {
-			display: none;
+		.layer {
+			animation: showLayer 0.2s linear both;
 		}
+	}
 
+	&.hide {
 		.mask {
-			position: fixed;
-			top: 0;
-			width: 100%;
-			height: 100%;
-			z-index: 1;
-			background-color: rgba(0, 0, 0, 0.4);
+			animation: hidePopup 0.2s linear both;
 		}
 
 		.layer {
-			position: fixed;
-			z-index: 99;
-			bottom: 0;
-			width: 100%;
-			min-height: 30vh;
-			border-radius: 10rpx 10rpx 0 0;
-			background-color: #fff;
-
-			.btn {
-				height: 66rpx;
-				line-height: 66rpx;
-				border-radius: 100rpx;
-				// background: $uni-color-primary;
-				background: #FF4C4C;
-				font-size: $font-base + 2rpx;
-				color: #fff;
-				margin: 30rpx auto 20rpx;
-			}
+			animation: hideLayer 0.2s linear both;
 		}
+	}
 
-		@keyframes showPopup {
-			0% {
-				opacity: 0;
-			}
-
-			100% {
-				opacity: 1;
-			}
-		}
+	&.none {
+		display: none;
+	}
 
-		@keyframes hidePopup {
-			0% {
-				opacity: 1;
-			}
+	.mask {
+		position: fixed;
+		top: 0;
+		width: 100%;
+		height: 100%;
+		z-index: 1;
+		background-color: rgba(0, 0, 0, 0.4);
+	}
 
-			100% {
-				opacity: 0;
-			}
+	.layer {
+		position: fixed;
+		z-index: 99;
+		bottom: 0;
+		width: 100%;
+		min-height: 30vh;
+		border-radius: 10rpx 10rpx 0 0;
+		background-color: #fff;
+
+		.btn {
+			height: 66rpx;
+			line-height: 66rpx;
+			border-radius: 100rpx;
+			// background: $uni-color-primary;
+			background: #ff4c4c;
+			font-size: $font-base + 2rpx;
+			color: #fff;
+			margin: 30rpx auto 20rpx;
 		}
+	}
 
-		@keyframes showLayer {
-			0% {
-				transform: translateY(120%);
-			}
+	@keyframes showPopup {
+		0% {
+			opacity: 0;
+		}
 
-			100% {
-				transform: translateY(0%);
-			}
+		100% {
+			opacity: 1;
 		}
+	}
 
-		@keyframes hideLayer {
-			0% {
-				transform: translateY(0);
-			}
+	@keyframes hidePopup {
+		0% {
+			opacity: 1;
+		}
 
-			100% {
-				transform: translateY(120%);
-			}
+		100% {
+			opacity: 0;
 		}
 	}
 
-	/* 规格选择弹窗 */
-	.attr-content {
-		padding: 10rpx 30rpx;
+	@keyframes showLayer {
+		0% {
+			transform: translateY(120%);
+		}
 
-		.a-t {
-			display: flex;
+		100% {
+			transform: translateY(0%);
+		}
+	}
 
-			image {
-				width: 170rpx;
-				height: 170rpx;
-				flex-shrink: 0;
-				border-radius: 8rpx;
-			}
+	@keyframes hideLayer {
+		0% {
+			transform: translateY(0);
+		}
 
-			.right {
-				display: flex;
-				flex-direction: column;
-				padding-left: 24rpx;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-base;
-				line-height: 42rpx;
+		100% {
+			transform: translateY(120%);
+		}
+	}
+}
 
-				.good-name {
-					padding-top: 20rpx;
-					max-width: 320rpx;
-					font-size: 30rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #1d2023;
-					line-height: 42rpx;
-					margin-bottom: 15rpx;
-				}
+/* 规格选择弹窗 */
+.attr-content {
+	padding: 10rpx 30rpx;
 
-				.price {
-					font-size: 60rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #ff6f0f;
-					// font-size: $font-lg;
-					// color: $uni-color-primary;
-					// margin-bottom: 10rpx;
-				}
+	.a-t {
+		display: flex;
 
-				.selected-text {
-					margin-right: 10rpx;
-				}
-			}
+		image {
+			width: 170rpx;
+			height: 170rpx;
+			flex-shrink: 0;
+			border-radius: 8rpx;
 		}
 
-		.attr-list {
+		.right {
 			display: flex;
 			flex-direction: column;
-			font-size: $font-base + 2rpx;
+			padding-left: 24rpx;
+			font-size: $font-sm + 2rpx;
 			color: $font-color-base;
-			padding-top: 30rpx;
-			padding-left: 10rpx;
-		}
+			line-height: 42rpx;
+
+			.good-name {
+				padding-top: 20rpx;
+				max-width: 320rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #1d2023;
+				line-height: 42rpx;
+				margin-bottom: 15rpx;
+			}
 
-		.item-list {
-			padding: 20rpx 0 0;
-			display: flex;
-			flex-wrap: wrap;
-
-			.tit {
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				background: #eee;
-				// margin-left: 10rpx;
-				margin-right: 20rpx;
-				margin-bottom: 20rpx;
-				border-radius: 100rpx;
-				min-width: 60rpx;
-				height: 60rpx;
-				padding: 0 20rpx;
-				font-size: $font-base;
-				color: $font-color-dark;
+			.price {
+				font-size: 60rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ff6f0f;
+				// font-size: $font-lg;
+				// color: $uni-color-primary;
+				// margin-bottom: 10rpx;
 			}
 
-			.selected {
-				background: #FCEFF1;
-				border: 1px solid #EF041F;
-				color: #EF041F;
+			.selected-text {
+				margin-right: 10rpx;
 			}
 		}
 	}
 
-	//默认商品底部高度
-	.goodsBottom {
-		height: 160rpx;
-	}
-
-	page {
-		background: #f0f0f0;
-	}
-
-	//秒杀、拼团底部高度
-	.contentBottomHeight {
-		height: 110rpx;
-	}
-
-	//默认商品底部高度
-	.goodsBottom {
-		height: 160rpx;
-	}
-
-	/deep/ .iconenter {
+	.attr-list {
+		display: flex;
+		flex-direction: column;
 		font-size: $font-base + 2rpx;
-		color: #888;
-	}
-
-	/deep/ .con_image {
-		width: 130rpx;
-		height: 130rpx;
-		display: inline-block;
-		padding: 15rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
+		color: $font-color-base;
+		padding-top: 30rpx;
+		padding-left: 10rpx;
 	}
 
-	/* 商品详情中限制图片大小 */
-	/deep/ .rich-img {
-		width: 100% !important;
-		height: auto;
-	}
+	.item-list {
+		padding: 20rpx 0 0;
+		display: flex;
+		flex-wrap: wrap;
 
-	.c-list {
-		margin-top: 20rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-base;
-		background: #fff;
-
-		.c-row {
+		.tit {
 			display: flex;
 			align-items: center;
-			padding: 20rpx 30rpx;
-			position: relative;
+			justify-content: center;
+			background: #eee;
+			// margin-left: 10rpx;
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 100rpx;
+			min-width: 60rpx;
+			height: 60rpx;
+			padding: 0 20rpx;
+			font-size: $font-base;
+			color: $font-color-dark;
 		}
 
-		.tit {
-			width: 140rpx;
+		.selected {
+			background: #fceff1;
+			border: 1px solid #ef041f;
+			color: #ef041f;
 		}
+	}
+}
+
+//默认商品底部高度
+.goodsBottom {
+	height: 160rpx;
+}
+
+page {
+	background: #f0f0f0;
+}
+
+//秒杀、拼团底部高度
+.contentBottomHeight {
+	height: 110rpx;
+}
+
+//默认商品底部高度
+.goodsBottom {
+	height: 160rpx;
+}
+
+/deep/ .iconenter {
+	font-size: $font-base + 2rpx;
+	color: #888;
+}
+
+/deep/ .con_image {
+	width: 130rpx;
+	height: 130rpx;
+	display: inline-block;
+	padding: 15rpx;
+
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+
+/* 商品详情中限制图片大小 */
+/deep/ .rich-img {
+	width: 100% !important;
+	height: auto;
+}
+
+.c-list {
+	margin-top: 20rpx;
+	font-size: $font-sm + 2rpx;
+	color: $font-color-base;
+	background: #fff;
+
+	.c-row {
+		display: flex;
+		align-items: center;
+		padding: 20rpx 30rpx;
+		position: relative;
+	}
 
-		.con {
-			flex: 1;
-			color: $font-color-dark;
+	.tit {
+		width: 140rpx;
+	}
 
-			.selected-text {
-				margin-right: 10rpx;
-			}
+	.con {
+		flex: 1;
+		color: $font-color-dark;
+
+		.selected-text {
+			margin-right: 10rpx;
 		}
+	}
 
-		.bz-list {
-			height: 40rpx;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-dark;
+	.bz-list {
+		height: 40rpx;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-dark;
 
-			text {
-				display: inline-block;
-				margin-right: 30rpx;
-			}
+		text {
+			display: inline-block;
+			margin-right: 30rpx;
 		}
+	}
 
-		.con-list {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			color: $font-color-dark;
-			line-height: 40rpx;
-		}
+	.con-list {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		color: $font-color-dark;
+		line-height: 40rpx;
+	}
 
-		.red {
-			color: $uni-color-primary;
-		}
+	.red {
+		color: $uni-color-primary;
 	}
+}
 </style>

+ 396 - 399
pages/public/login.vue

@@ -1,444 +1,441 @@
 <template>
 	<view class="container">
-		<view class="container_text">
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
+		<view class="top"><image src="../../static/img/login-bg.png" mode=""></image></view>
+		<view class="logo">
+			<view class="logo-img"><image src="../../static/img/logo.png" mode=""></image></view>
+			<view class="logo-title">微乐购</view>
 		</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 class="login-box">
+			<view class="username"><image src="../../static/img/phone.png" mode=""></image></view>
+			<view class="input-bbox">
+				<input class="input-user" type="text" v-model="phone" placeholder="请输入账号" />
+				<!-- <text class="select-box">
+					<select class="select" @change="change($event)" ref='hhh'>
+						<option value="1" @click="change">1</option>
+						<option value="2">2</option>
+					</select>
+				</text> -->
 			</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>
-		
-				<view class="forget" @click="navTog">忘记密码</view>
-		
-			<view class="flex other">
-				<view class="fenge"></view>
-				<view class="qita">其他方式登录</view>
-				<view class="fenge"></view>
+		</view>
+		<view class="login-box">
+			<view class="username" style="width: 30rpx; height: 36rpx;"><image src="../../static/img/zfpwd.png" mode=""></image></view>
+			<input class="input-box" type="password" v-model="password" placeholder="请输入密码" />
+		</view>
+
+		<view class="login" @click="toLogin">登录</view>
+		<view class="forget flex">
+			<view @click="navTo('/pages/public/forget')">忘记密码</view>
+			<view class="shu"></view>
+			<view class="login-tip"><text class="register" @click="navTo('/pages/public/register')">立即注册</text></view>
+		</view>
+		<label class="two" @click="checkboxChange">
+			<radio style="transform:scale(0.7)" color="#5dbc7c" :checked="istype" />
+			我已阅读并同意
+			<text @click.stop="navTo('/pages/contract/agreement')">《用户协议》</text>
+			&nbsp
+			<text @click.stop="navTo('/pages/contract/privacy')">《隐私政策》</text>
+		</label>
+		<!-- <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('weixin')"><image src="/static/img/login-weixin.png"></image></view>
+		<view class="weixin_text" @click="wecahtLogin('weixin')">微信登录</view> -->
+		<!-- #endif -->
+		<!-- #ifdef APP-PLUS -->
+		<!-- <block v-if="!is_ios">
+			<view class="weixin" @click="wecahtLogin('weixin')"><image src="/static/img/login-weixin.png" mode="scaleToFill"></image></view>
+			<view class="weixin_text" @click="wecahtLogin('weixin')">微信登录</view>
+		</block>
+		<block v-else>
+			<view class="ios_login flex" @click="wecahtLogin('weixin')">
+				<text class="iconfont iconweixin"></text>
+				<text class="weixin_text">微信登录</text>
 			</view>
-			<!-- #ifndef APP-PLUS -->
-			<view class="weixin" @click="wecahtLogin">
-				<image src="/static/img/img05.png"></image>
+			<view v-if="is_apple_login" class="ios_login flex" @click="wecahtLogin('apple')">
+				<image class="loginIcon" src="/static/static/icon/appleIcon.png" mode=" scaleToFill"></image>
+				<text class="weixin_text">通过Apple登录</text>
 			</view>
-			<view class="weixin_text" @click="wecahtLogin">微信登录</view>
-			<!-- #endif -->
-			<!-- #ifdef APP-PLUS -->
-			<block v-if="!is_ios">
-				<view class="weixin" @click="wecahtLogin('weixin')">
-					<image src="/static/img/img05.png" mode="scaleToFill"></image>
-				</view>
-				<view class="weixin_text" @click="wecahtLogin('weixin')">微信登录</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>
+		</block> -->
+		<!-- #endif -->
 	</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
-			};
+import { mapMutations } from 'vuex';
+import { login, loginWx } from '@/api/login.js';
+import { getUserInfo } from '@/api/user.js';
+import { getFileIndex, getFile, writerTxt, getFileText } from '@/utils/fileController.js';
+// #ifdef H5
+import { loginWinxin } from '@/utils/wxAuthorized';
+// #endif
+export default {
+	data() {
+		return {
+			phone: '',
+			password: '',
+			istype: false,
+			// #ifdef APP-PLUS
+			is_ios: false, //判断是否为ios手机
+			is_apple_login: false //是否有ios授权登录功能
+			// #endif
+		};
+	},
+	onLoad() {
+		uni.hideLoading();
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'login']),
+		checkboxChange() {
+			this.istype = !this.istype;
+			console.log(this.istype);
 		},
-		onLoad() {
+		change(e) {
+			this.phone = e.target.value;
+		},
+		//登录
+		wecahtLogin(type) {
 			let obj = this;
-			// #ifdef APP-PLUS
-			let system = uni.getStorageSync('platform');
-			// 判断是否为ios
-			if (system == 'ios') {
-				obj.is_ios = true;
+			// #ifdef H5
+			let weichatBrowser = uni.getStorageSync('weichatBrowser');
+			if (weichatBrowser) {
+				loginWinxin();
 			}
-			uni.getSystemInfo({
-				success(e) {
-					if (+e.system.split('.')[0] >= 13) {
-						obj.is_apple_login = true;
-					}
-				}
-			})
 			// #endif
-		},
-		methods: {
-			navTog(){
-				uni.navigateTo({
-					url:'../set/password'
-				})
-			},
-			...mapMutations('user', ['setUserInfo', 'login']),
-			// 微信登录
-			wecahtLogin(type) {
-				console.log(type,'123456');
-				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') {
-								console.log(es,'123456789');
-									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() {}
-											});
+			// #ifdef APP-PLUS
+			uni.login({
+				provider: type,
+				success(e) {
+					console.log(e, 'e12345678989789');
+					uni.getUserInfo({
+						provider: type,
+						success(es) {
+							console.log(es, 'es123456789');
+							if (type === 'weixin') {
+								console.log('weixin');
+								loginWx(es.userInfo)
+									.then(e => {
+										uni.showLoading({
+											title: '登录中'
 										});
-								}
-								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);
-											uni.showModal({
-												content: JSON.stringify(e),
-										  success() {},
-												fail() {}
+										console.log(e, '123456');
+										uni.setStorageSync('token', e.data.token);
+										getUserInfo({}).then(e => {
+											obj.login();
+											// 保存返回用户数据
+											obj.setUserInfo(e.data);
+											uni.hideLoading();
+											//成功跳转首页
+											uni.switchTab({
+												url: '/pages/index/index'
 											});
 										});
-								}
-							},
-							fail(es) {
-								uni.showModal({
-									content: JSON.stringify(es),
-									success() {
-										// 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() {}
+										});
+									});
 							}
-						});
-					},
-					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',
+							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() {
+			uni.showLoading({
+				title: '正在登陆中'
+			});
+			let obj = this;
+			obj.logining = true;
+			if (obj.phone == '') {
+				obj.$api.msg('请输入账号');
+				return;
+			}
+			if (obj.password == '') {
+				obj.$api.msg('请输入密码');
+				return;
+			}
+			if (!obj.istype) {
+				obj.$api.msg('请查看并同意用户协议和隐私政策');
+				return;
+			}
+			login({
+				account: obj.phone,
+				password: obj.password
+			})
+				.then(function(e) {
+					uni.setStorageSync('token', e.data.token);
+					getUserInfo({}).then(e => {
+						obj.login();
+						//#ifdef APP-PLUS
+						getFileIndex().then(info => {
+							getFile(info, 'userInfo').then(data => {
+								writerTxt(data, e.data);
+							});
+						});
+						//#endif
+						// 保存返回用户数据
+						obj.setUserInfo(e.data);
+
+						uni.switchTab({
+							url: '/pages/index/index'
 						});
-					})
-					.catch(function(e) {
-						console.log(e);
 					});
-			},
-			//跳转注册页
-			register() {
-				uni.navigateTo({
-					url: `/pages/public/register`
+					uni.hideLoading();
+				})
+				.catch(function(e) {
+					console.log(e);
 				});
-			},
-			// 后退
-			navBack() {
-				uni.navigateBack();
-			}
+		},
+		navTo(url) {
+			uni.navigateTo({
+				url
+			});
+		},
+		// 后退
+		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 {
+page {
+	min-height: 100%;
+	background-color: #ffffff;
+}
+.top {
+	width: 750rpx;
+	height: 470rpx;
+	image {
 		width: 100%;
 		height: 100%;
-		background-size: 100%;
 	}
-
-	.container_text {
-		width: 100%;
-		height: 500rpx;
-		top: 0rpx;
-
-		.banner-img {
+}
+.logo {
+	position: absolute;
+	left: 50%;
+	right: 0;
+	top: 110rpx;
+	margin-left: -80rpx;
+	.logo-img {
+		width: 160rpx;
+		height: 160rpx;
+		box-shadow: 0px 12rpx 13rpx 0px rgba(51, 145, 255, 0.47);
+		border-radius: 50%;
+		image {
 			width: 100%;
 			height: 100%;
+			border-radius: 50%;
 		}
 	}
-
-	.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 {
+	.logo-title {
+		width: 160rpx;
+		text-align: center;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 400;
+		color: #ffffff;
+		margin-top: 10rpx;
+	}
+}
+.loginTitle {
+	font-weight: bold;
+	color: #333333;
+	font-size: 58rpx;
+	padding-bottom: 34rpx;
+}
+.loginText {
+	font-weight: 500;
+	color: #333333;
+	font-size: 34rpx;
+	padding-bottom: 34rpx;
+}
+.login-box {
+	display: flex;
+	justify-content: flex-start;
+	border-bottom: 1px solid #eeeeee;
+	margin: 90rpx 72rpx 0;
+	padding-bottom: 28rpx;
+	.username {
+		width: 26rpx;
+		height: 43rpx;
+		font-weight: 500;
+		color: #333333;
+		font-size: 32rpx;
+		flex-shrink: 0;
+		image {
 			width: 100%;
 			height: 100%;
 		}
-
-		.weixin_text {
-			text-align: center;
-			font-size: 28rpx;
-			color: #999999;
+	}
+	.input-box {
+		margin-left: 40rpx;
+		width: 100%;
+	}
+	.input-bbox {
+		margin-left: 40rpx;
+		width: 100%;
+		position: relative;
+		.input-user {
+			background: #ffffff;
+			position: absolute;
+			z-index: 10;
+			top: 0;
+			left: 0;
+			width: 90%;
 		}
-
-		.forget {
-			font-size: 28rpx;
+		.select-box {
+			background: #ffffff;
+			position: absolute;
+			top: 0;
+			left: 0;
+			bottom: 0;
 			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;
+			.select {
+				background: #ffffff;
+				outline: none;
+				height: 100%;
+				border: none;
+				width: 100%;
+			}
 		}
 	}
-
-	.loginTitle {
-		position: absolute;
-		top: 250rpx;
-		width: 100%;
-		text-align: center;
-		color: white;
-		font-size: 40rpx;
+}
+.forget {
+	justify-content: center;
+	text-align: right;
+	margin: 36rpx 0rpx;
+	font-weight: 500;
+	color: #1dcbe4;
+	font-size: 28rpx;
+	.mui-checkbox {
+		font-weight: 500;
+		color: #333333;
+		font-size: 35rpx;
+	}
+	.shu {
+		height: 26rpx;
+		width: 1px;
+		background-color: #1dcbe4;
+		margin: 0 10rpx;
+	}
+}
+.login {
+	margin: 100rpx auto 0;
+	width: 604rpx;
+	height: 90rpx;
+	background: #08d29b;
+	box-shadow: 0px 12rpx 13rpx 0px rgba(51, 145, 255, 0.2);
+	border-radius: 10rpx;
+	font-size: 34rpx;
+	font-family: SourceHanSansCN;
+	font-weight: 400;
+	color: #ffffff;
+	line-height: 90rpx;
+	text-align: center;
+}
+.login-tip {
+	text-align: center;
+	font-weight: 500;
+	color: #333333;
+	font-size: 28rpx;
+	.register {
+		color: #08d29b;
+	}
+}
+.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;
+}
+.two {
+	margin: 20rpx 40rpx;
+	font-size: 28rpx;
+	text-align: center;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #999999;
+	text {
+		color: #5dbc7c;
 	}
+}
 </style>

+ 175 - 169
pages/public/register.vue

@@ -1,9 +1,7 @@
 <template>
 	<view class="container">
-		<view class="status_bar">
-			<!-- 这里是状态栏 -->
-		</view>
-		<view class="loginTitle">欢迎注册喜嗨购商城</view>
+		<view class="status_bar"><!-- 这里是状态栏 --></view>
+		<view class="loginTitle">欢迎注册微乐购商城</view>
 		<view class="loginText">请认真填写个人信息</view>
 		<view class="login-box">
 			<view class="username">账号</view>
@@ -28,195 +26,203 @@
 			<view class="username">邀请码</view>
 			<input class="input-box" type="text" v-model="invitation" placeholder="请输入邀请码" />
 		</view>
+		<label class="two" @click="checkboxChange">
+			<radio style="transform:scale(0.7)" color="#5dbc7c" :checked="istype" />
+			我已阅读并同意
+			<text @click.stop="navTo('/pages/contract/agreement')">《用户协议》</text>
+			&nbsp
+			<text @click.stop="navTo('/pages/contract/privacy')">《隐私政策》</text>
+		</label>
 		<view class="login" @click="register">注册</view>
 	</view>
 </template>
 
 <script>
-	import {
-		register,
-		verify
-	} from '@/api/login.js';
-	export default {
-		data() {
-			return {
-				phone: '', //用户
-				loginPass: '', //密码
-				payPass: '',
-				invitation: '', //邀请码
-				code: '', //验证码
-				time: '', //保存倒计时对象
-				countDown: 0 //倒计时
-			};
-		},
-		onLoad() {
-			// 获取扫码邀请人id
-			this.invitation = uni.getStorageSync('spread') || '';
-		},
-		watch: {
-			// 监听倒计时
-			countDown(i) {
-				if (i == 0) {
-					clearInterval(this.time);
-				}
+import { register, verify } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			phone: '', //用户
+			loginPass: '', //密码
+			payPass: '',
+			invitation: '', //邀请码
+			code: '', //验证码
+			time: '', //保存倒计时对象
+			countDown: 0 //倒计时
+		};
+	},
+	onLoad() {
+		// 获取扫码邀请人id
+		this.invitation = uni.getStorageSync('spread') || '';
+	},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
 			}
+		}
+	},
+	methods: {
+		checkboxChange() {
+			this.istype = !this.istype;
+			console.log(this.istype);
 		},
-		methods: {
-			// 注册
-			register() {
-				let obj = this;
-				if (obj.phone == '') {
-					obj.$api.msg('请输入账号');
-					return;
-				}
-				if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && (!
-						/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone))) {
-					obj.$api.msg('请输入正确的邮箱或手机');
-					return;
-				}
-				if (obj.loginPass == '') {
-					obj.$api.msg('请输入登录密码');
-					return;
-				}
-				if (obj.code == '') {
-					obj.$api.msg('请输入验证码');
-					return;
-				}
-				// if (obj.invitation == '') {
-				// 	obj.$api.msg('请输入邀请码');
-				// 	return;
-				// }
-				register({
-					account: obj.phone, //账号
-					captcha: obj.code, //验证码
-					password: obj.loginPass,
-					trade_password: obj.payPass,
-					spread: obj.invitation
-				}).then(function(e) {
-					uni.showToast({
-						title: '注册成功',
-						duration: 2000,
-						position: 'top',
-						icon: 'none'
-					});
-					setTimeout(function() {
-						uni.navigateTo({
-							url: '/pages/public/login'
-						});
-					}, 1000);
+		// 注册
+		register() {
+			let obj = this;
+			if (obj.phone == '') {
+				obj.$api.msg('请输入账号');
+				return;
+			}
+			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && !/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone)) {
+				obj.$api.msg('请输入正确的邮箱或手机');
+				return;
+			}
+			if (obj.loginPass == '') {
+				obj.$api.msg('请输入登录密码');
+				return;
+			}
+			if (obj.code == '') {
+				obj.$api.msg('请输入验证码');
+				return;
+			}
+			if (obj.invitation == '') {
+				obj.$api.msg('请输入邀请码');
+				return;
+			}
+			if (!obj.istype) {
+				obj.$api.msg('请查看并同意用户协议和隐私政策');
+				return;
+			}
+			register({
+				account: obj.phone, //账号
+				captcha: obj.code, //验证码
+				password: obj.loginPass,
+				trade_password: obj.payPass,
+				spread: obj.invitation
+			}).then(function(e) {
+				uni.showToast({
+					title: '注册成功',
+					duration: 2000,
+					position: 'top',
+					icon: 'none'
 				});
-				//调用注册接口,成功跳转登录页
-			},
-			//发送验证码
-			verification() {
-				let obj = this;
-				if (this.phone == '') {
-					this.$api.msg('请输入账号');
-					return;
-				}
-				if (!/^([a-zA-Z]|[0-9])(\w|\-|\.)+@[a-zA-Z0-9]+(\.([a-zA-Z]{2,4}))+$/.test(obj.phone) && (!
-						/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone))) {
-					obj.$api.msg('请输入正确的账号');
-					return;
-				}
-				// 判断是否在倒计时
-				if (obj.countDown > 0) {
-					return false;
-				} else {
-					obj.countDown = 60;
-					obj.time = setInterval(() => {
-						obj.countDown--;
-					}, 1000);
-					//调用验证码接口
-					verify({
-							phone: obj.phone,
-							type: 'register'
-						})
-						.then(({
-							data
-						}) => {
-							uni.showToast({
-								title: '验证码已发送',
-								duration: 2000,
-								position: 'top',
-								icon: 'none'
-							});
-						})
-						.catch(err => {
-							console.log(err);
+				setTimeout(function() {
+					uni.navigateTo({
+						url: '/pages/public/login'
+					});
+				}, 1000);
+			});
+			//调用注册接口,成功跳转登录页
+		},
+		//发送验证码
+		verification() {
+			let obj = this;
+			if (this.phone == '') {
+				this.$api.msg('请输入账号');
+				return;
+			}
+			if (!/^([a-zA-Z]|[0-9])(\w|\-|\.)+@[a-zA-Z0-9]+(\.([a-zA-Z]{2,4}))+$/.test(obj.phone) && !/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone)) {
+				obj.$api.msg('请输入正确的账号');
+				return;
+			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				verify({
+					phone: obj.phone,
+					type: 'register'
+				})
+					.then(({ data }) => {
+						uni.showToast({
+							title: '验证码已发送',
+							duration: 2000,
+							position: 'top',
+							icon: 'none'
 						});
-				}
+					})
+					.catch(err => {
+						console.log(err);
+					});
 			}
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		min-height: 100%;
-		background-color: #ffffff;
+page {
+	min-height: 100%;
+	background-color: #ffffff;
 
-		.container {
-			width: 100%;
-			padding: 10% 60rpx 0rpx 60rpx;
-		}
-	}
-
-	.status_bar {
-		height: var(--status-bar-height);
+	.container {
 		width: 100%;
+		padding: 10% 60rpx 0rpx 60rpx;
 	}
+}
 
-	.loginTitle {
-		font-weight: bold;
-		color: #333333;
-		font-size: 58rpx;
-		padding-bottom: 25rpx;
-	}
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
 
-	.loginText {
-		font-weight: 500;
-		color: #333333;
-		font-size: 34rpx;
-	}
+.loginTitle {
+	font-weight: bold;
+	color: #333333;
+	font-size: 58rpx;
+	padding-bottom: 25rpx;
+}
 
-	.login-box {
-		padding-top: 70rpx;
+.loginText {
+	font-weight: 500;
+	color: #333333;
+	font-size: 34rpx;
+}
 
-		.username {
-			padding-bottom: 25rpx;
-			font-weight: 500;
-			color: #333333;
-			font-size: 32rpx;
-		}
-	}
-
-	.login {
-		background: #5dbc7c;
-		margin-top: 20rpx;
-		color: #ffffff;
-		text-align: center;
-		padding: 26rpx 0rpx;
-		border-radius: 50rpx;
-		margin-top: 60rpx;
-	}
+.login-box {
+	padding-top: 70rpx;
 
-	.code {
-		background: #5dbc7c;
-		color: #ffffff;
-		border-radius: 10rpx;
+	.username {
+		padding-bottom: 25rpx;
 		font-weight: 500;
-		color: #ffffff;
-		font-size: 26rpx;
-		padding: 12rpx 19rpx;
+		color: #333333;
+		font-size: 32rpx;
 	}
+}
+
+.login {
+	background: #5dbc7c;
+	margin-top: 20rpx;
+	color: #ffffff;
+	text-align: center;
+	padding: 26rpx 0rpx;
+	border-radius: 50rpx;
+	margin-top: 60rpx;
+}
+
+.code {
+	background: #5dbc7c;
+	color: #ffffff;
+	border-radius: 10rpx;
+	font-weight: 500;
+	color: #ffffff;
+	font-size: 26rpx;
+	padding: 12rpx 19rpx;
+}
 
-	// /* input 样式 */
-	// .input-placeholder {
-	// 	color: #ffffff;
-	// }
+// /* input 样式 */
+// .input-placeholder {
+// 	color: #ffffff;
+// }
 
-	// .placeholder {
-	// 	color: #ffffff;
-	// }
+// .placeholder {
+// 	color: #ffffff;
+// }
 </style>

+ 80 - 96
pages/set/set.vue

@@ -1,116 +1,100 @@
 <template>
 	<view class="container">
 		<uni-list>
-		    <uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')" ></uni-list-item>
+			<uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')"></uni-list-item>
 			<!-- #ifdef APP-PLUS -->
-			<uni-list-item title="修改密码" @click="navTo('/pages/set/password')" ></uni-list-item>
+			<uni-list-item title="修改密码" @click="navTo('/pages/set/password')"></uni-list-item>
 			<!-- #endif -->
-		    <uni-list-item title="绑定手机" @click="navTo('/pages/set/phone')" ></uni-list-item>
-		    <uni-list-item title="收货地址" @click="navTo('/pages/set/address')" ></uni-list-item>
+			<!-- <uni-list-item title="绑定手机" @click="navTo('/pages/set/phone')"></uni-list-item> -->
+			<uni-list-item title="隐私政策" @click="navTo('/pages/contract/privacy')"></uni-list-item>
+			<uni-list-item title="会员协议" @click="navTo('/pages/contract/agreement')"></uni-list-item>
+			<uni-list-item title="收货地址" @click="navTo('/pages/set/address')"></uni-list-item>
 		</uni-list>
-		<!-- <uni-list class="margin-t-20">
-		    <uni-list-item title="消息推送" :switch-checked='true' :show-switch="true" :show-arrow="false" switch-color='#5dbc7c'  @switchChange='switchChange'> 
-			</uni-list-item>
-		</uni-list> -->
-		<!-- #ifdef APP-PLUS -->
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="清除缓存" ></uni-list-item>
-		    <uni-list-item title="检查更新" >
-				<template slot="right">
-					当前版本 1.0.3
-				</template>
-			</uni-list-item>
-		</uni-list>
-		<!-- #endif -->
-		<view class="list-cell log-out-btn" @click="toLogout">
-			<text class="cell-tit">退出登录</text>
-		</view>
+		<view class="list-cell log-out-btn" @click="toLogout"><text class="cell-tit">退出登录</text></view>
 	</view>
 </template>
 
 <script>
-	import uniList from "@/components/uni-list/uni-list.vue"
-	import uniListItem from "@/components/uni-list-item/uni-list-item.vue"
-	import { logout } from '@/api/set.js';
-	import {  
-	    mapMutations  
-	} from 'vuex';
-	export default {
-		components: {
-			uniList,uniListItem
-		},
-		data() {
-			return {
-				
-			};
+import uniList from '@/components/uni-list/uni-list.vue';
+import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
+import { logout } from '@/api/set.js';
+import { mapMutations } from 'vuex';
+export default {
+	components: {
+		uniList,
+		uniListItem
+	},
+	data() {
+		return {};
+	},
+	methods: {
+		...mapMutations('user', ['logout']),
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
 		},
-		methods:{
-			...mapMutations('user',['logout']),
-			navTo(url){
-				uni.navigateTo({
-					url:url
-				})
-			},
-			//退出登录
-			toLogout(){
-				let obj = this;
-				uni.showModal({
-				    content: '确定要退出登录么',
-				    success: (e)=>{
-				    	if(e.confirm){
-							logout({}).then((e) => {
+		//退出登录
+		toLogout() {
+			let obj = this;
+			uni.showModal({
+				content: '确定要退出登录么',
+				success: e => {
+					if (e.confirm) {
+						logout({})
+							.then(e => {
 								uni.navigateBack();
-							}).catch((e) => {
-								console.log(e);
 							})
-				    		obj.logout();
-				    	}
-				    }
-				});
-			},
-			//switch切换触发方法
-			switchChange(e){
-				console.log(e);
-				let statusTip = e.value ? '打开': '关闭';
-				this.$api.msg(`${statusTip}消息推送`);
-			},
-
+							.catch(e => {
+								console.log(e);
+							});
+						obj.logout();
+					}
+				}
+			});
+		},
+		//switch切换触发方法
+		switchChange(e) {
+			console.log(e);
+			let statusTip = e.value ? '打开' : '关闭';
+			this.$api.msg(`${statusTip}消息推送`);
 		}
 	}
+};
 </script>
 
-<style lang='scss'>
-	page{
-		background: $page-color-base;
-	}
-	.list-cell{
-		display:flex;
-		align-items:baseline;
-		padding: 20rpx $page-row-spacing;
-		line-height:60rpx;
-		position:relative;
-		background: #fff;
-		justify-content: center;
-		&.log-out-btn{
-			margin-top: 40rpx;
-			.cell-tit{
-				color: $uni-color-primary;
-				text-align: center;
-				margin-right: 0;
-			}
-		}
-		.cell-tit{
-			flex: 1;
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right:10rpx;
-		}
-		.cell-tip{
-			font-size: $font-base;
-			color: $font-color-light;
-		}
-		switch{
-			transform: translateX(16rpx) scale(.84);
+<style lang="scss">
+page {
+	background: $page-color-base;
+}
+.list-cell {
+	display: flex;
+	align-items: baseline;
+	padding: 20rpx $page-row-spacing;
+	line-height: 60rpx;
+	position: relative;
+	background: #fff;
+	justify-content: center;
+	&.log-out-btn {
+		margin-top: 40rpx;
+		.cell-tit {
+			color: $uni-color-primary;
+			text-align: center;
+			margin-right: 0;
 		}
 	}
+	.cell-tit {
+		flex: 1;
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
+		margin-right: 10rpx;
+	}
+	.cell-tip {
+		font-size: $font-base;
+		color: $font-color-light;
+	}
+	switch {
+		transform: translateX(16rpx) scale(0.84);
+	}
+}
 </style>

+ 132 - 223
pages/set/userinfo.vue

@@ -1,28 +1,4 @@
 <template>
-	<!-- 	<view class="container">
-		<uni-list>
-		    <uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')" ></uni-list-item>
-			<uni-list-item title="修改密码" @click="navTo('/pages/set/password')" ></uni-list-item>
-		    <uni-list-item title="实名认证" @click="navTo('/pages/set/phone')" ></uni-list-item>
-		    <uni-list-item title="收货地址" @click="navTo('/pages/set/address')" ></uni-list-item>
-		</uni-list>
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="消息推送" :switch-checked='true' :show-switch="true" :show-arrow="false" switch-color='#5dbc7c'  @switchChange='switchChange'> 
-			</uni-list-item>
-		</uni-list>
-		
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="清除缓存" ></uni-list-item>
-		    <uni-list-item title="检查更新" >
-				<template slot="right">
-					当前版本 1.0.3
-				</template>
-			</uni-list-item>
-		</uni-list>
-		<view class="list-cell log-out-btn" @click="toLogout">
-			<text class="cell-tit">退出登录</text>
-		</view>
-	</view> -->
 	<view class="container">
 		<view class="row b-b flex jg">
 			<text class="tit">头像</text>
@@ -34,186 +10,120 @@
 		</view>
 		<view class="row b-b flex">
 			<text class="tit">邀请码</text>
-			<input class="input" v-model="userInfo.uid" type="text" disabled="true" placeholder-class="placeholder"
-				style="color: #999;" />
-		</view>
-		<!-- v-if="agents!=''" -->
-		<!-- <view class="row b-b flex" v-if="!Array.isArray(userInfo.agent)">
-		<text class="tit">代理区域</text>
-		<view class="agents" style="color: #999;text-align: right;">
-			<view class="agent" v-for="(item,index) in userInfo.agent" :key="index">
-			{{item}}	
-			</view>
+			<input class="input" v-model="userInfo.uid" type="text" disabled="true" placeholder-class="placeholder" style="color: #999;" />
 		</view>
-	</view> -->
+
 		<view class="row b-b flex" v-if="userInfo.account || userInfo.phone">
 			<text class="tit">用户账号</text>
-			<input class="input" v-model="userInfo.account || userInfo.phone" type="number" disabled="true"
-				placeholder-class="placeholder" />
+			<input class="input" v-model="userInfo.account || userInfo.phone" type="number" disabled="true" placeholder-class="placeholder" />
 		</view>
 		<view class="submit-box flex">
 			<view class="submit" @click="edit">确认修改</view>
 			<view class="submit dl" @click="toLogout">退出登录</view>
 		</view>
-
 	</view>
 </template>
 
 <script>
-	// import uniList from "@/components/uni-list/uni-list.vue"
-	// import uniListItem from "@/components/uni-list-item/uni-list-item.vue"
-	// import { logout } from '@/api/set.js';
-	// import {  
-	//     mapMutations  
-	// } from 'vuex';
-	// export default {
-	// 	components: {
-	// 		uniList,uniListItem
-	// 	},
-	// 	data() {
-	// 		return {
-
-	// 		};
-	// 	},
-	// 	methods:{
-	// 		...mapMutations('user',['logout']),
-	// 		navTo(url){
-	// 			uni.navigateTo({
-	// 				url:url
-	// 			})
-	// 		},
-	// 		//退出登录
-	// 		toLogout(){
-	// 			let obj = this;
-	// 			uni.showModal({
-	// 			    content: '确定要退出登录么',
-	// 			    success: (e)=>{
-	// 			    	if(e.confirm){
-	// 						logout({}).then((e) => {
-	// 							uni.navigateBack();
-	// 						}).catch((e) => {
-	// 							console.log(e);
-	// 						})
-	// 			    		obj.logout();
-	// 			    	}
-	// 			    }
-	// 			});
-	// 		},
-	// 		//switch切换触发方法
-	// 		switchChange(e){
-	// 			console.log(e);
-	// 			let statusTip = e.value ? '打开': '关闭';
-	// 			this.$api.msg(`${statusTip}消息推送`);
-	// 		},
-
-	// 	}
-	// }
-	import uniList from '@/components/uni-list/uni-list.vue';
-	import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		logout
-	} from '@/api/set.js';
-
-	import {
-		edit
-	} from '@/api/user.js';
-	import {
-		upload
-	} from '@/api/order.js'
-	export default {
-		components: {
-			uniList,
-			uniListItem
-		},
-		data() {
-			return {
-				userInfo: {},
-				pics: [],
-			};
-		},
-		onLoad() {
-			this.userInfo = uni.getStorageSync('userInfo') || '';
-			console.log(this.userInfo)
-		},
-		methods: {
-			...mapMutations('user', ['logout']),
-			//退出登录
-			toLogout() {
-				let obj = this;
-				uni.showModal({
-					content: '确定要退出登录么',
-					success: e => {
-						if (e.confirm) {
-							logout({}).then(e => {
-									obj.logout();
-									uni.switchTab({
-										url: '/pages/index/index'
-									})
-								})
-								.catch(e => {
-									console.log(e);
+import uniList from '@/components/uni-list/uni-list.vue';
+import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
+import { mapState, mapMutations } from 'vuex';
+import { logout } from '@/api/set.js';
+
+import { edit } from '@/api/user.js';
+import { upload } from '@/api/order.js';
+export default {
+	components: {
+		uniList,
+		uniListItem
+	},
+	data() {
+		return {
+			userInfo: {},
+			pics: []
+		};
+	},
+	onLoad() {
+		this.userInfo = uni.getStorageSync('userInfo') || '';
+		console.log(this.userInfo);
+	},
+	methods: {
+		...mapMutations('user', ['logout']),
+		//退出登录
+		toLogout() {
+			let obj = this;
+			uni.showModal({
+				content: '确定要退出登录么',
+				success: e => {
+					if (e.confirm) {
+						logout({})
+							.then(e => {
+								obj.logout();
+								uni.switchTab({
+									url: '/pages/index/index'
 								});
-						}
+							})
+							.catch(e => {
+								console.log(e);
+							});
 					}
-				});
-			},
-			imgsub() {
-				let obj = this
-				console.log('上传头像')
-				// this.$util.uploadImageOne('upload/image', function(res) {
-				// 	console.log('------',res);
-				// 	this.pics.push(res.data.pathreplace(/http:\/\/mer.crmeb.net/,'https://hy.liuniu946.com'));
-				// 	// obj.userInfo.avatar = res.data.path.replace(/http:\/\/mer.crmeb.net/,'http://zccy.frp.liuniu946.com')
-				// 	obj.$set(this, 'pics', this.pics);
-				// 	obj.$set(this, 'extract_pic', this.pics[0])
-				// });
-				// uploads({
-				// 	filename: ''
-				// }).then(data => {
-				// 	console.log("data",data);
-				// 	this.userInfo.avatar = data[0].url;
-				// })
-				upload({
-					filename: ''
-				}).then(res => {
-					console.log(res[0].url)
-					obj.userInfo.avatar = res[0].url
-					// console.log(obj.userInfo.avatar)
-				});
-
-			},
-			edit() {
-				const that = this;
-				uni.showLoading({
-					title: '提交中...',
-					mask: true
-				})
-				edit({
-					avatar: this.userInfo.avatar,
-					nickname: this.userInfo.nickname
-				}).then(e => {
-					uni.hideLoading()
+				}
+			});
+		},
+		imgsub() {
+			let obj = this;
+			console.log('上传头像');
+			// this.$util.uploadImageOne('upload/image', function(res) {
+			// 	console.log('------',res);
+			// 	this.pics.push(res.data.pathreplace(/http:\/\/mer.crmeb.net/,'https://hy.liuniu946.com'));
+			// 	// obj.userInfo.avatar = res.data.path.replace(/http:\/\/mer.crmeb.net/,'http://zccy.frp.liuniu946.com')
+			// 	obj.$set(this, 'pics', this.pics);
+			// 	obj.$set(this, 'extract_pic', this.pics[0])
+			// });
+			// uploads({
+			// 	filename: ''
+			// }).then(data => {
+			// 	console.log("data",data);
+			// 	this.userInfo.avatar = data[0].url;
+			// })
+			upload({
+				filename: ''
+			}).then(res => {
+				console.log(res[0].url);
+				obj.userInfo.avatar = res[0].url;
+				// console.log(obj.userInfo.avatar)
+			});
+		},
+		edit() {
+			const that = this;
+			uni.showLoading({
+				title: '提交中...',
+				mask: true
+			});
+			edit({
+				avatar: this.userInfo.avatar,
+				nickname: this.userInfo.nickname
+			})
+				.then(e => {
+					uni.hideLoading();
 					that.$api.msg('修改成功');
 					setTimeout(() => {
 						uni.switchTab({
 							url: '/pages/user/user'
 						});
 					}, 1000);
-				}).catch(e => {
+				})
+				.catch(e => {
 					console.log(e);
 					that.$api.msg('修改失败');
-				})
-			}
+				});
 		}
-	};
+	}
+};
 </script>
 
-<style lang='scss'>
-	/* page{
+<style lang="scss">
+/* page{
 		background: $page-color-base;
 	}
 	.list-cell{
@@ -246,56 +156,55 @@
 			transform: translateX(16rpx) scale(.84);
 		}
 	} */
-	page {
-		background-color: #f3f3f3;
-		min-height: 100%;
-
-		.container {
-			height: 100%;
+page {
+	background-color: #f3f3f3;
+	min-height: 100%;
 
-		}
+	.container {
+		height: 100%;
+	}
+}
+
+.row {
+	background-color: #fff;
+	padding: 42rpx 25rpx;
+	font-size: 30rpx;
+	color: #333333;
+
+	image {
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
 	}
 
-	.row {
-		background-color: #fff;
-		padding: 42rpx 25rpx;
-		font-size: 30rpx;
+	.input {
+		text-align: right;
 		color: #333333;
-
-		image {
-			width: 80rpx;
-			height: 80rpx;
-			border-radius: 50%;
-		}
-
-		.input {
-			text-align: right;
-			color: #333333;
-		}
 	}
-
-	.submit-box {
-		display: flex;
-		flex-direction: column;
-		padding-top: 157rpx;
-
-		.submit {
-			margin: 40rpx auto;
-			width: 560rpx;
-			background-color: #ff4c4b;
-			color: #FFFFFF;
-			text-align: center;
-			padding: 26rpx 0rpx;
-			border-radius: 50rpx;
-		}
-
-		.dl {
-			background-color: #FFFFFF;
-			color: #ff4c4b;
-		}
+}
+
+.submit-box {
+	display: flex;
+	flex-direction: column;
+	padding-top: 157rpx;
+
+	.submit {
+		margin: 40rpx auto;
+		width: 560rpx;
+		background-color: #08d29b;
+		color: #ffffff;
+		text-align: center;
+		padding: 26rpx 0rpx;
+		border-radius: 50rpx;
 	}
 
-	.jg {
-		margin-bottom: 20rpx;
+	.dl {
+		background-color: #ffffff;
+		color: #08d29b;
 	}
+}
+
+.jg {
+	margin-bottom: 20rpx;
+}
 </style>

+ 103 - 134
pages/user/greenChange.vue

@@ -1,173 +1,142 @@
 <template>
 	<view class="content">
 		<view class="tab flex">
-			<view class="tab-name">
-				可用于兑换的绿积分:
-			</view>
-			<view class="tab-val">
-				{{userInfo.green_integral || '0'}}
-			</view>
+			<view class="tab-name">可用于兑换的水滴:</view>
+			<view class="tab-val">{{ userInfo.green_integral || '0' }}</view>
 		</view>
 		<view class="tab flex">
-			<view class="tab-name">
-				兑换比例:
-			</view>
-			<view class="tab-val">
-				{{bl}}:1
-			</view>
+			<view class="tab-name">兑换比例:</view>
+			<view class="tab-val">{{ bl }}:1</view>
 		</view>
 		<view class="tab flex">
-			<view class="tab-name">
-				可兑换绿卡数量:
-			</view>
-			<view class="tab-val">
-				{{could}}
-			</view>
+			<view class="tab-name">可兑换洒水壶数量:</view>
+			<view class="tab-val">{{ could }}</view>
 		</view>
 		<view class="tab flex">
-			<view class="tab-name">
-				申请兑换绿卡数量:
-			</view>
-			<input type="number" class="tab-val" placeholder="请输入兑换绿卡数量" placeholder-style="font-size:28rpx;"
-				v-model="changeNum">
+			<view class="tab-name">申请兑换洒水壶数量:</view>
+			<input type="number" class="tab-val" placeholder="请输入兑换洒水壶数量" placeholder-style="font-size:28rpx;" v-model="changeNum" />
 			<!-- <view class="tab-val">
 				{{sqss}}
 			</view> -->
 		</view>
-		<view class="sub" :class="{'loading': load}" @click="exchangeGreen">
-			立即兑换
-		</view>
+		<view class="sub" :class="{ loading: load }" @click="exchangeGreen">立即兑换</view>
 	</view>
 </template>
 
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getGreenBl,
-		getUserInfo,
-		exchangeGreen
-	} from '@/api/user.js'
-	export default {
-		data() {
-			return {
-				bl: 0,
-				load: true,
-				changeNum: '',
+import { mapState, mapMutations } from 'vuex';
+import { getGreenBl, getUserInfo, exchangeGreen } from '@/api/user.js';
+export default {
+	data() {
+		return {
+			bl: 0,
+			load: true,
+			changeNum: ''
+		};
+	},
+	onLoad() {},
+	onShow() {
+		this.getGreenBl();
+	},
+	onReachBottom() {},
+	onReady() {},
+	computed: {
+		...mapState('user', ['userInfo']),
+		could() {
+			if (this.userInfo.green_integral == 0) {
+				return 0;
+			} else {
+				return Math.floor(this.userInfo.green_integral / this.bl);
 			}
+		}
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo']),
+		getGreenBl() {
+			getGreenBl().then(res => {
+				console.log(res);
+				this.bl = res.data.bl;
+				this.getUserInfo();
+			});
 		},
-		onLoad() {
-
-		},
-		onShow() {
-
-			this.getGreenBl()
-		},
-		onReachBottom() {
-
-		},
-		onReady() {
-
-		},
-		computed: {
-			...mapState('user', ['userInfo']),
-			could() {
-				if (this.userInfo.green_integral == 0) {
-					return 0
-				} else {
-					return Math.floor(this.userInfo.green_integral / this.bl)
-				}
-			},
+		getUserInfo() {
+			let obj = this;
+			getUserInfo().then(res => {
+				obj.setUserInfo(res.data);
+				obj.load = false;
+			});
 		},
-		methods: {
-			...mapMutations('user', ['setUserInfo']),
-			getGreenBl() {
-				getGreenBl().then(res => {
-					console.log(res)
-					this.bl = res.data.bl
-					this.getUserInfo()
-				})
-			},
-			getUserInfo() {
-				let obj = this
-				getUserInfo().then(res => {
-					obj.setUserInfo(res.data)
-					obj.load = false
-				})
-			},
-			exchangeGreen() {
-				let obj = this
-				if (obj.load) {
-					return
-				}
-				if (obj.changeNum == '') {
-					return obj.$api.msg('请输入兑换绿卡数量')
-				}
-				if (obj.userInfo.green_integral == 0) {
-					return obj.$api.msg('您的绿积分不足')
-				}
-				if (obj.changeNum * 1 > obj.could) {
-					return obj.$api.msg('您的绿积分不足')
-				}
-				obj.load = true
-				exchangeGreen({
-					num: obj.changeNum
-				}).then(({
-					data
-				}) => {
-					console.log(data)
+		exchangeGreen() {
+			let obj = this;
+			if (obj.load) {
+				return;
+			}
+			if (obj.changeNum == '') {
+				return obj.$api.msg('请输入兑换绿卡数量');
+			}
+			if (obj.userInfo.green_integral == 0) {
+				return obj.$api.msg('您的绿积分不足');
+			}
+			if (obj.changeNum * 1 > obj.could) {
+				return obj.$api.msg('您的绿积分不足');
+			}
+			obj.load = true;
+			exchangeGreen({
+				num: obj.changeNum
+			})
+				.then(({ data }) => {
+					console.log(data);
 					uni.showToast({
 						title: '提交成功',
 						duration: 2000,
 						position: 'top'
 					});
-					obj.getGreenBl()
+					obj.getGreenBl();
 					// obj.load = false
-				}).catch(err => {
-					obj.load = false
 				})
-			}
+				.catch(err => {
+					obj.load = false;
+				});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	.tab {
-		font-size: 32rpx;
-		font-weight: 500;
-		color: #333333;
-		line-height: 110rpx;
-		border-bottom: 1px solid #eee;
-		width: 710rpx;
-		margin: auto;
+.tab {
+	font-size: 32rpx;
+	font-weight: 500;
+	color: #333333;
+	line-height: 110rpx;
+	border-bottom: 1px solid #eee;
+	width: 710rpx;
+	margin: auto;
 
-		.tab-name {
-			flex-shrink: 0;
-		}
-
-		.tab-val {
-			flex-grow: 1;
-			text-align: right;
-			font-size: 48rpx;
-			font-weight: bold;
-		}
+	.tab-name {
+		flex-shrink: 0;
 	}
 
-	.sub {
-		width: 670rpx;
-		line-height: 88rpx;
-		background: #FF4C4C;
-		border-radius: 10rpx;
-		font-size: 32rpx;
+	.tab-val {
+		flex-grow: 1;
+		text-align: right;
+		font-size: 48rpx;
 		font-weight: bold;
-		color: #FFFFFF;
-		text-align: center;
-		margin: 60rpx auto 0;
 	}
+}
 
-	.loading {
-		background: #999;
-	}
+.sub {
+	width: 670rpx;
+	line-height: 88rpx;
+	background: #ff4c4c;
+	border-radius: 10rpx;
+	font-size: 32rpx;
+	font-weight: bold;
+	color: #ffffff;
+	text-align: center;
+	margin: 60rpx auto 0;
+}
+
+.loading {
+	background: #999;
+}
 </style>

+ 331 - 365
pages/user/greenJf.vue

@@ -1,48 +1,36 @@
 <template>
 	<view class="content">
 		<view class="content-money">
-			<view class="status_bar">
-				<!-- 这里是状态栏 -->
-			</view>
+			<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/myyue.png" mode=""></image>
+				<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/myyue.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{userInfo.green_integral | getMoneyStyle}}</view>
+				<view class="money">{{ userInfo.green_integral | getMoneyStyle }}</view>
 				<view>当前余额</view>
 			</view>
 			<view class="moneybtn-box">
-				<view class="money-btn">
-
-				</view>
-				<view class="money-btn" @click="navto('/pages/user/greenChange')">
-					兑换绿卡 >
-				</view>
+				<view class="money-btn"></view>
+				<view class="money-btn" @click="navto('/pages/user/greenChange')">兑换洒水壶 ></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 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 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 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 :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">
 					<!-- 空白页 -->
@@ -53,7 +41,7 @@
 						<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>
+									<text>{{ item.mark }}</text>
 								</view>
 								<view class="time">
 									<text>{{ item.add_time }}</text>
@@ -64,8 +52,7 @@
 							</view>
 						</view>
 					</view>
-					<uni-load-more :status="tabItem.loadingType"
-						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
 		</swiper>
@@ -73,405 +60,384 @@
 </template>
 
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getGreenJf,
-		getUserInfo
-	} from '@/api/user.js'
-	import {
-		spreadCommission,
-		userBalance
-	} from '@/api/wallet.js';
-	import {
+import { mapState, mapMutations } from 'vuex';
+import { getGreenJf, getUserInfo } from '@/api/user.js';
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	filters: {
 		getMoneyStyle
-	} from '@/utils/rocessor.js';
-	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-	import empty from '@/components/empty';
-	export default {
-		filters: {
-			getMoneyStyle
-		},
-		components: {
-			empty,
-			uniLoadMore
-		},
-		onReady(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);
-					});
+	},
+	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 {
+			height: '',
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			orderStatusSum: 0,
+			recharge: 0,
+			navList: [
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
 				},
-				fail: res => {}
-			});
-		},
-		data() {
-			return {
-				height: '',
-				// 头部图高度
-				maxheight: '',
-				tabCurrentIndex: 0,
-				orderStatusSum: 0,
-				recharge: 0,
-				navList: [{
-						state: 0,
-						text: '支出',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 //每次信息条数
-					},
-					{
-						state: 1,
-						text: '收入',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 //每次信息条数
-					}
-				],
-				money: ''
-			};
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				}
+			],
+			money: ''
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+		// 获取用户余额
+		getUserInfo({}).then(({ data }) => {
+			this.money = data.now_money;
+			this.setUserInfo(data);
+		});
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		toBack() {
+			uni.navigateBack({});
 		},
-		onLoad(options) {},
-		onShow() {
-			this.loadData();
-			// 获取用户余额
-			getUserInfo({}).then(({
-				data
-			}) => {
-				this.money = data.now_money;
-				this.setUserInfo(data);
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
 			});
 		},
-		computed: {
-			...mapState('user', ['userInfo'])
-		},
-		methods: {
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			toBack() {
-				uni.switchTab({
-					url: '/pages/user/user',
-					fail() {
-						uni.switchTab({
-							url: '/pages/index/index'
-						})
+		//获取收入支出信息
+		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';
+
+			getGreenJf({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: navItem.state
+			})
+				.then(({ data }) => {
+					obj.zc = data.zc;
+					obj.sr = data.sr;
+					navItem.orderList = navItem.orderList.concat(data.list);
+					navItem.page++;
+					if (navItem.limit == data.list.length) {
+						navItem.loadingType = 'more';
+					} else {
+						navItem.loadingType = 'noMore';
 					}
+					obj.$set(navItem, 'loaded', true);
+					// this.$set(navItem, 'loaded', true);
 				})
-			},
-			// 页面跳转
-			navto(e) {
-				uni.navigateTo({
-					url: e
+				.catch(e => {
+					console.log(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';
-
-				getGreenJf({
-						page: navItem.page,
-						limit: navItem.limit,
-						pm: navItem.state
-					})
-					.then(({
-						data
-					}) => {
-						obj.zc = data.zc
-						obj.sr = data.sr
-						navItem.orderList = navItem.orderList.concat(data.list)
-						navItem.page++
-						if (navItem.limit == data.list.length) {
-							navItem.loadingType = 'more'
-						} else {
-							navItem.loadingType = 'noMore'
-						}
-						obj.$set(navItem, 'loaded', true);
-						// 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;
-			}
+		//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%;
-	}
+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;
 
-	.status_bar {
-		height: var(--status-bar-height);
-		width: 100%;
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 
-	.content-money {
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
 		position: relative;
-		height: 480rpx;
 
-		.content-bg {
+		.header {
 			position: absolute;
-			top: 0;
 			left: 0;
-			right: 0;
-			width: 750rpx;
-			height: 480rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.body-title {
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
 			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;
-			}
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 9;
+			display: flex;
+			justify-content: center;
+			align-items: center;
 		}
-	}
-
-	.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%;
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
 			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;
+		.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;
 
-	.money-box {
-		position: relative;
-		z-index: 2;
-		padding-top: 70rpx;
-		color: #ffffff;
-		text-align: center;
-		/* #ifdef APP-PLUS */
-		padding-top: 30rpx;
-
-		/* #endif */
-		.money {
-			font-size: 72rpx;
+		.info-font {
+			font-size: 30rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #ffffff;
+			color: #999999;
 		}
 
-		.text {
+		.info-num {
+			margin-top: 30rpx;
 			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #181818;
 		}
 	}
 
-	.moneybtn-box {
-		display: flex;
-		justify-content: space-between;
-		position: relative;
-		z-index: 2;
-		color: #ffffff;
-		padding: 20rpx 50rpx;
-		font-size: 30rpx;
+	.shu {
+		width: 2rpx;
+		height: 74rpx;
+		background: #dcdfe6;
+	}
+}
+
+.money-box {
+	position: relative;
+	z-index: 2;
+	padding-top: 70rpx;
+	color: #ffffff;
+	text-align: center;
+	/* #ifdef APP-PLUS */
+	padding-top: 30rpx;
+
+	/* #endif */
+	.money {
+		font-size: 72rpx;
 		font-family: PingFang SC;
 		font-weight: bold;
-		color: #FFFFFF;
+		color: #ffffff;
 	}
 
-	.navbar {
-		margin-top: 20rpx;
+	.text {
+		font-size: 30rpx;
+	}
+}
+
+.moneybtn-box {
+	display: flex;
+	justify-content: space-between;
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding: 20rpx 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;
-		height: 88rpx;
-		padding: 0 5px;
-		background: #fff;
-		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #999999;
 		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;
-				}
+		&.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;
-		}
+//列表
+.swiper-box {
+	.order-item:last-child {
+		margin-bottom: 60rpx;
+	}
 
-		.order-item {
-			padding: 20rpx 30rpx;
-			line-height: 1.5;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
 
-			.title-box {
-				.title {
-					font-size: $font-lg;
-					color: $font-color-base;
-				}
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
 
-				.time {
-					font-size: $font-base;
-					color: $font-color-light;
-				}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
 			}
+		}
 
-			.money {
-				color: #fd5b23;
-				font-size: $font-lg;
-				text-align: right;
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+			text-align: right;
 
-				.status {
-					color: $font-color-light;
-				}
+			.status {
+				color: $font-color-light;
 			}
 		}
 	}
+}
 
-	.list-scroll-content {
-		background: #ffffff;
-		height: 100%;
-	}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
 
-	.content {
-		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;
+	.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>

+ 159 - 185
pages/user/myGreenCard.vue

@@ -2,48 +2,30 @@
 	<view class="content">
 		<view class="" style="height: 20rpx;"></view>
 		<empty v-if="list.length === 0 && loaded"></empty>
-		<view class="green-card-wrap" v-for="(gitem,gindex) in list" :key="gindex">
-			<image :src="'../../static/img/green' +((gitem.id+1)%5) + '.png'" mode="" class="card-bg"></image>
+		<view class="green-card-wrap" v-for="(gitem, gindex) in list" :key="gindex">
+			<image :src="'../../static/img/green' + ((gitem.id + 1) % 5) + '.png'" mode="" class="card-bg"></image>
 			<view class="card-info flex">
-				<image :src="'../../static/img/ginfo' +((gitem.id+1)%5) + '.png'" mode="" class="info-img"></image>
+				<image :src="'../../static/img/ginfo' + ((gitem.id + 1) % 5) + '.png'" mode="" class="info-img"></image>
 				<view class="info-detail">
-					<view class="card-name">
-						通行绿卡
-					</view>
+					<view class="card-name">我的洒水壶</view>
 					<!-- 1买 2赠 -->
-					<view class="card-from">
-						来源:{{gitem.type == 1?'绿积分兑换': '赠送获得'}}
-					</view>
-					<view class="card-time">
-						获得时间:{{gitem.create_time}}
-					</view>
-				</view>
-				<view class="card-btn-wrap flex" v-if="gitem.status == 0 && gitem.type == 1">
-					<view class="card-btn" @click="openZs(gitem)">
-						转赠
-					</view>
+					<view class="card-from">来源:{{ gitem.type == 1 ? '水滴兑换' : '赠送获得' }}</view>
+					<view class="card-time">获得时间:{{ gitem.create_time }}</view>
 				</view>
+				<view class="card-btn-wrap flex" v-if="gitem.status == 0 && gitem.type == 1"><view class="card-btn" @click="openZs(gitem)">转赠</view></view>
 			</view>
 		</view>
 		<uni-load-more :status="loadingType"></uni-load-more>
 		<uni-popup ref="popup" type="center">
 			<view class="zs-wrap">
-				<view class="zs-tit">
-					赠送绿卡
-				</view>
+				<view class="zs-tit">赠送洒水壶</view>
 				<view class="zs-uid flex">
-					<view class="to-uid">
-						赠送对象UID:
-					</view>
-					<input type="number" v-model="toUid" placeholder="请输入赠送对象UID">
+					<view class="to-uid">赠送对象UID:</view>
+					<input type="number" v-model="toUid" placeholder="请输入赠送对象UID" />
 				</view>
 				<view class="zs-btns">
-					<view class="zs-btn" @click="closeZs">
-						取消
-					</view>
-					<view class="zs-btn" style="color: #ff567f;" @click="giveGreen()">
-						赠送
-					</view>
+					<view class="zs-btn" @click="closeZs">取消</view>
+					<view class="zs-btn" style="color: #ff567f;" @click="giveGreen()">赠送</view>
 				</view>
 			</view>
 		</uni-popup>
@@ -51,188 +33,180 @@
 </template>
 
 <script>
-	import {
-		getGreenCardList,
-		giveGreen
-	} from '@/api/user.js'
-	import empty from '@/components/empty';
-	export default {
-		components: {
-			empty
-		},
-		data() {
-			return {
-				zsItem: {},
-				toUid: '',
-				loaded: false,
-				list: [],
-				page: 1,
-				limit: 10,
-				loadingType: 'more'
+import { getGreenCardList, giveGreen } from '@/api/user.js';
+import empty from '@/components/empty';
+export default {
+	components: {
+		empty
+	},
+	data() {
+		return {
+			zsItem: {},
+			toUid: '',
+			loaded: false,
+			list: [],
+			page: 1,
+			limit: 10,
+			loadingType: 'more'
+		};
+	},
+	onLoad() {},
+	onShow() {
+		this.getGreenCardList();
+	},
+	onReachBottom() {
+		this.getGreenCardList();
+	},
+	onReady() {},
+	methods: {
+		getGreenCardList() {
+			let obj = this;
+			if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
+				return;
 			}
+			obj.loadingType = 'loading';
+			getGreenCardList().then(res => {
+				console.log(res);
+
+				obj.list = obj.list.concat(res.data.data);
+				obj.page++;
+				if (obj.limi == res.data.data.length) {
+					obj.loadingType = 'more';
+				} else {
+					obj.loadingType = 'noMore';
+				}
+				obj.loaded = true;
+			});
 		},
-		onLoad() {
-
-		},
-		onShow() {
-			this.getGreenCardList()
-		},
-		onReachBottom() {
-			this.getGreenCardList()
+		giveGreen() {
+			let obj = this;
+			console.log(obj.zsItem);
+			if (obj.toUid == '') {
+				return obj.$api.msg('请输入赠送对象UID');
+			}
+			giveGreen({
+				id: obj.zsItem.id,
+				uid: obj.toUid
+			}).then(res => {
+				this.closeZs();
+				uni.showToast({
+					title: '赠送成功',
+					duration: 2000,
+					position: 'top'
+				});
+				let s = obj.list.indexOf(obj.zsItem);
+				obj.list.splice(s, 1);
+			});
 		},
-		onReady() {
-
+		closeZs() {
+			this.$refs.popup.close();
 		},
-		methods: {
-			getGreenCardList() {
-				let obj = this
-				if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
-					return
-				}
-				obj.loadingType = 'loading'
-				getGreenCardList().then(res => {
-					console.log(res)
-
-					obj.list = obj.list.concat(res.data.data)
-					obj.page++
-					if (obj.limi == res.data.data.length) {
-						obj.loadingType = 'more'
-					} else {
-						obj.loadingType = 'noMore'
-					}
-					obj.loaded = true
-				})
-			},
-			giveGreen() {
-
-				let obj = this
-				console.log(obj.zsItem)
-				if (obj.toUid == '') {
-					return obj.$api.msg('请输入赠送对象UID')
-				}
-				giveGreen({
-					id: obj.zsItem.id,
-					uid: obj.toUid
-				}).then(res => {
-					this.closeZs()
-					uni.showToast({
-						title: '赠送成功',
-						duration: 2000,
-						position: 'top'
-					});
-					let s = obj.list.indexOf(obj.zsItem);
-					obj.list.splice(s, 1);
-				})
-			},
-			closeZs() {
-				this.$refs.popup.close()
-			},
-			openZs(item) {
-				this.zsItem = item
-				this.$refs.popup.open()
-			}
+		openZs(item) {
+			this.zsItem = item;
+			this.$refs.popup.open();
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	.green-card-wrap {
+.green-card-wrap {
+	width: 700rpx;
+	height: 184rpx;
+	margin: 0 auto 20rpx;
+	position: relative;
+
+	.card-bg {
 		width: 700rpx;
 		height: 184rpx;
-		margin: 0 auto 20rpx;
-		position: relative;
-
-		.card-bg {
-			width: 700rpx;
-			height: 184rpx;
-		}
+	}
 
-		.card-info {
-			position: absolute;
-			top: 0;
-			left: 0;
-			width: 700rpx;
-			height: 184rpx;
-			padding: 0 35rpx;
-
-			.info-img {
-				width: 112rpx;
-				height: 112rpx;
-			}
+	.card-info {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 700rpx;
+		height: 184rpx;
+		padding: 0 35rpx;
 
-			.info-detail {
-				flex-grow: 1;
-				padding-left: 30rpx;
-				color: #FFFFFF;
-				font-size: 24rpx;
-				font-weight: 500;
+		.info-img {
+			width: 112rpx;
+			height: 112rpx;
+		}
 
-				.card-name {
-					font-size: 36rpx;
-					font-weight: bold;
+		.info-detail {
+			flex-grow: 1;
+			padding-left: 30rpx;
+			color: #ffffff;
+			font-size: 24rpx;
+			font-weight: 500;
 
-				}
+			.card-name {
+				font-size: 36rpx;
+				font-weight: bold;
+			}
 
-				.card-from {}
+			.card-from {
+			}
 
-				.card-time {}
+			.card-time {
 			}
+		}
+
+		.card-btn-wrap {
+			width: 132rpx;
+			height: 100%;
 
-			.card-btn-wrap {
+			.card-btn {
 				width: 132rpx;
-				height: 100%;
-
-
-				.card-btn {
-					width: 132rpx;
-					height: 53rpx;
-					background: #FFFFFF;
-					border-radius: 27rpx;
-					font-size: 26rpx;
-					font-weight: 500;
-					text-align: center;
-					line-height: 53rpx;
-					color: #ff567f;
-				}
+				height: 53rpx;
+				background: #ffffff;
+				border-radius: 27rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				text-align: center;
+				line-height: 53rpx;
+				color: #ff567f;
 			}
 		}
 	}
+}
+
+.zs-wrap {
+	width: 600rpx;
+	height: 300rpx;
+	background-color: #fff;
+	border-radius: 20rpx;
+	text-align: center;
+	position: relative;
+
+	.zs-tit {
+		font-size: 32rpx;
+		font-weight: bold;
+		padding: 40rpx 0 50rpx;
+	}
 
-	.zs-wrap {
-		width: 600rpx;
-		height: 300rpx;
-		background-color: #fff;
-		border-radius: 20rpx;
-		text-align: center;
-		position: relative;
-
-		.zs-tit {
-			font-size: 32rpx;
-			font-weight: bold;
-			padding: 40rpx 0 50rpx;
-		}
-
-		.zs-uid {
-			font-size: 28rpx;
-			padding: 0 40rpx;
+	.zs-uid {
+		font-size: 28rpx;
+		padding: 0 40rpx;
 
-			.to-uid {
-				flex-shrink: 0;
-			}
+		.to-uid {
+			flex-shrink: 0;
 		}
+	}
 
-		.zs-btns {
-			width: 100%;
-			display: flex;
-			position: absolute;
-			bottom: 0;
-			height: 80rpx;
-			font-size: 32rpx;
-			line-height: 80rpx;
-
-			.zs-btn {
-				width: 50%;
-			}
+	.zs-btns {
+		width: 100%;
+		display: flex;
+		position: absolute;
+		bottom: 0;
+		height: 80rpx;
+		font-size: 32rpx;
+		line-height: 80rpx;
+
+		.zs-btn {
+			width: 50%;
 		}
 	}
+}
 </style>

+ 0 - 407
pages/user/mygx.vue

@@ -1,407 +0,0 @@
-<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/mygx.png" mode=""></image></view>
-			<view class="money-box">
-				<view class="money">{{ my_point }}</view>
-				<view>我的分红积分</view>
-				<view>1分红积分价值{{ price * 1}}</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { spreadCommission, userBalance } from '@/api/wallet.js';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { share } from '@/api/user.js';
-import { mapState, mapMutations } from 'vuex';
-import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
-import empty from '@/uview-ui/components/u-empty/u-empty.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady(res) {
-		var _this = this;
-		uni.getSystemInfo({
-			success: resu => {
-				const query = uni.createSelectorQuery();
-				query.select('.swiper-box').boundingClientRect();
-				query.exec(function(res) {
-					_this.maxheight = resu.windowHeight - res[0].top + 'px';
-					console.log('打印页面的剩余高度', _this.height);
-				});
-			},
-			fail: res => {}
-		});
-	},
-	data() {
-		return {
-			// 头部图高度
-			maxheight: '',
-			tabCurrentIndex: 0,
-			price: 0,
-			my_point: 0,
-			navList: [
-				{
-					state: 0,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10, //每次信息条数
-					loaded: false
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10, //每次信息条数
-					loaded: false
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		share().then(({data}) =>{
-			this.price = data.price;
-			this.my_point = data.my_point;
-			console.log(data);
-		})
-		this.loadData();
-	},
-	methods: {
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		// 点击返回 我的页面
-		toBack() {
-			uni.navigateBack({});
-		},
-		//获取收入支出信息
-		async loadData(source) {
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state + 3;
-			if (source == 'tabChange' && navItem.loaded == true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType == 'loading' || navItem.loadingType == 'noMore') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			spreadCommission(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				state
-			)
-				.then(({ data }) => {
-					if (data.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #f1f1f1;
-	height: 100%;
-}
-
-.status_bar {
-	height: var(--status-bar-height);
-	width: 100%;
-}
-
-.content-money {
-	position: relative;
-	height: 480rpx;
-
-	.content-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 750rpx;
-		height: 480rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	.body-title {
-		height: 80rpx;
-		text-align: center;
-		font-size: 35rpx;
-		position: relative;
-
-		.header {
-			position: absolute;
-			left: 0;
-			top: 0;
-			width: 100%;
-			font-size: 36rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #fffeff;
-			height: 80rpx;
-			font-size: 36rpx;
-			font-weight: 700;
-			z-index: 9;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-		}
-
-		.goback-box {
-			position: absolute;
-			left: 18rpx;
-			top: 0;
-			height: 80rpx;
-			display: flex;
-			align-items: center;
-		}
-
-		.goback {
-			z-index: 100;
-			width: 34rpx;
-			height: 34rpx;
-		}
-	}
-}
-
-.info-box {
-	width: 670rpx;
-	height: 186rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: -100rpx auto 0;
-	position: relative;
-	z-index: 2;
-
-	.info-item {
-		width: 50%;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		line-height: 1;
-
-		.info-font {
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #999999;
-		}
-
-		.info-num {
-			margin-top: 30rpx;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #181818;
-		}
-	}
-
-	.shu {
-		width: 2rpx;
-		height: 74rpx;
-		background: #dcdfe6;
-	}
-}
-
-.money-box {
-	position: relative;
-	z-index: 2;
-	padding-top: 90rpx;
-	color: #ffffff;
-	text-align: center;
-
-	.money {
-		font-size: 72rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-
-	.text {
-		font-size: 30rpx;
-	}
-}
-
-.money-btn {
-	position: relative;
-	z-index: 2;
-	color: #ffffff;
-	padding-right: 50rpx;
-	text-align: right;
-	font-size: 30rpx;
-	font-family: PingFang SC;
-	font-weight: bold;
-	color: #ffffff;
-
-	text {
-		display: inline-block;
-		padding-left: 10rpx;
-	}
-}
-
-.navbar {
-	margin-top: 20rpx;
-	display: flex;
-	height: 88rpx;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: #999999;
-		position: relative;
-
-		&.current {
-			color: #000;
-
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid #fe5b38;
-			}
-		}
-	}
-}
-
-//列表
-.swiper-box {
-	.order-item:last-child {
-		margin-bottom: 60rpx;
-	}
-
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-			text-align: right;
-
-			.status {
-				color: $font-color-light;
-			}
-		}
-	}
-}
-
-.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>

+ 331 - 365
pages/user/purpleJf.vue

@@ -1,48 +1,36 @@
 <template>
 	<view class="content">
 		<view class="content-money">
-			<view class="status_bar">
-				<!-- 这里是状态栏 -->
-			</view>
+			<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/myyue.png" mode=""></image>
+				<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/myyue.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{userInfo.purple_integral | getMoneyStyle}}</view>
+				<view class="money">{{ userInfo.purple_integral | getMoneyStyle }}</view>
 				<view>当前余额</view>
 			</view>
 			<view class="moneybtn-box">
-				<view class="money-btn">
-					<!-- 					易货券转账 -->
-				</view>
-				<view class="money-btn" @click="navto('/pages/money/withdrawal?type=purple')">
-					紫积分提现 >
-				</view>
+				<view class="money-btn"><!-- 					易货券转账 --></view>
+				<view class="money-btn" @click="navto('/pages/money/withdrawal?type=purple')">阳光提现 ></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 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 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 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 :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">
 					<!-- 空白页 -->
@@ -64,8 +52,7 @@
 							</view>
 						</view>
 					</view>
-					<uni-load-more :status="tabItem.loadingType"
-						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
 		</swiper>
@@ -73,406 +60,385 @@
 </template>
 
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getPurpleJf,
-		getUserInfo
-	} from '@/api/user.js'
-	import {
-		spreadCommission,
-		userBalance
-	} from '@/api/wallet.js';
-	import {
+import { mapState, mapMutations } from 'vuex';
+import { getPurpleJf, getUserInfo } from '@/api/user.js';
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	filters: {
 		getMoneyStyle
-	} from '@/utils/rocessor.js';
-	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-	import empty from '@/components/empty';
-	export default {
-		filters: {
-			getMoneyStyle
-		},
-		components: {
-			empty,
-			uniLoadMore
-		},
-		onReady(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);
-					});
+	},
+	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 {
+			zc: 0,
+			sr: 0,
+			height: '',
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			orderStatusSum: 0,
+			recharge: 0,
+			navList: [
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
 				},
-				fail: res => {}
-			});
-		},
-		data() {
-			return {
-				zc: 0,
-				sr: 0,
-				height: '',
-				// 头部图高度
-				maxheight: '',
-				tabCurrentIndex: 0,
-				orderStatusSum: 0,
-				recharge: 0,
-				navList: [{
-						state: 0,
-						text: '支出',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 //每次信息条数
-					},
-					{
-						state: 1,
-						text: '收入',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 //每次信息条数
-					}
-				],
-				money: ''
-			};
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				}
+			],
+			money: ''
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+		// 获取用户余额
+		getUserInfo({}).then(({ data }) => {
+			this.money = data.now_money;
+			this.setUserInfo(data);
+		});
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		toBack() {
+			uni.navigateBack({});
 		},
-		onLoad(options) {},
-		onShow() {
-			this.loadData();
-			// 获取用户余额
-			getUserInfo({}).then(({
-				data
-			}) => {
-				this.money = data.now_money;
-				this.setUserInfo(data);
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
 			});
 		},
-		computed: {
-			...mapState('user', ['userInfo'])
-		},
-		methods: {
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			toBack() {
-				uni.switchTab({
-					url: '/pages/user/user',
-					fail() {
-						uni.switchTab({
-							url: '/pages/index/index'
-						})
+		//获取收入支出信息
+		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';
+
+			getPurpleJf({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: navItem.state
+			})
+				.then(({ data }) => {
+					obj.zc = data.zc;
+					obj.sr = data.sr;
+					navItem.orderList = navItem.orderList.concat(data.list);
+					navItem.page++;
+					if (navItem.limit == data.list.length) {
+						navItem.loadingType = 'more';
+					} else {
+						navItem.loadingType = 'noMore';
 					}
+					obj.$set(navItem, 'loaded', true);
 				})
-			},
-			// 页面跳转
-			navto(e) {
-				uni.navigateTo({
-					url: e
+				.catch(e => {
+					console.log(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';
-
-				getPurpleJf({
-						page: navItem.page,
-						limit: navItem.limit,
-						pm: navItem.state
-					})
-					.then(({
-						data
-					}) => {
-						obj.zc = data.zc
-						obj.sr = data.sr
-						navItem.orderList = navItem.orderList.concat(data.list)
-						navItem.page++
-						if (navItem.limit == data.list.length) {
-							navItem.loadingType = 'more'
-						} else {
-							navItem.loadingType = 'noMore'
-						}
-						obj.$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;
-			}
+		//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%;
-	}
+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;
 
-	.status_bar {
-		height: var(--status-bar-height);
-		width: 100%;
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 
-	.content-money {
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
 		position: relative;
-		height: 480rpx;
 
-		.content-bg {
+		.header {
 			position: absolute;
-			top: 0;
 			left: 0;
-			right: 0;
-			width: 750rpx;
-			height: 480rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.body-title {
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
 			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;
-			}
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 9;
+			display: flex;
+			justify-content: center;
+			align-items: center;
 		}
-	}
 
-	.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%;
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
 			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;
+		.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;
 
-	.money-box {
-		position: relative;
-		z-index: 2;
-		padding-top: 70rpx;
-		/* #ifdef APP-PLUS */
-		padding-top: 30rpx;
-		/* #endif */
-		color: #ffffff;
-		text-align: center;
-
-		.money {
-			font-size: 72rpx;
+		.info-font {
+			font-size: 30rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #ffffff;
+			color: #999999;
 		}
 
-		.text {
+		.info-num {
+			margin-top: 30rpx;
 			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #181818;
 		}
 	}
 
-	.moneybtn-box {
-		display: flex;
-		justify-content: space-between;
-		position: relative;
-		z-index: 2;
-		color: #ffffff;
-		padding: 20rpx 50rpx;
-		font-size: 30rpx;
+	.shu {
+		width: 2rpx;
+		height: 74rpx;
+		background: #dcdfe6;
+	}
+}
+
+.money-box {
+	position: relative;
+	z-index: 2;
+	padding-top: 70rpx;
+	/* #ifdef APP-PLUS */
+	padding-top: 30rpx;
+	/* #endif */
+	color: #ffffff;
+	text-align: center;
+
+	.money {
+		font-size: 72rpx;
 		font-family: PingFang SC;
 		font-weight: bold;
-		color: #FFFFFF;
+		color: #ffffff;
 	}
 
-	.navbar {
-		margin-top: 20rpx;
+	.text {
+		font-size: 30rpx;
+	}
+}
+
+.moneybtn-box {
+	display: flex;
+	justify-content: space-between;
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding: 20rpx 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;
-		height: 88rpx;
-		padding: 0 5px;
-		background: #fff;
-		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #999999;
 		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;
-				}
+		&.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;
-		}
+//列表
+.swiper-box {
+	.order-item:last-child {
+		margin-bottom: 60rpx;
+	}
 
-		.order-item {
-			padding: 20rpx 30rpx;
-			line-height: 1.5;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
 
-			.title-box {
-				.title {
-					font-size: $font-lg;
-					color: $font-color-base;
-				}
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
 
-				.time {
-					font-size: $font-base;
-					color: $font-color-light;
-				}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
 			}
+		}
 
-			.money {
-				color: #fd5b23;
-				font-size: $font-lg;
-				text-align: right;
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+			text-align: right;
 
-				.status {
-					color: $font-color-light;
-				}
+			.status {
+				color: $font-color-light;
 			}
 		}
 	}
+}
 
-	.list-scroll-content {
-		background: #ffffff;
-		height: 100%;
-	}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
 
-	.content {
-		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;
+	.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>

+ 338 - 385
pages/user/shopJf.vue

@@ -1,30 +1,18 @@
 <template>
 	<view class="content">
 		<view class="content-money">
-			<view class="status_bar">
-				<!-- 这里是状态栏 -->
-			</view>
+			<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/myyue.png" mode=""></image>
+				<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/myyue.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{userInfo.business_integral | getMoneyStyle}}</view>
+				<view class="money">{{ userInfo.business_integral | getMoneyStyle }}</view>
 				<view>当前余额</view>
 			</view>
 			<view class="moneybtn-box">
-				
-			</view>
-			
-			<view class="moneybtn-box">
-				<view class="money-btn" @click="navto('/pages/money/withdmoenys?type=xl')">
-					喜嗨积分转账
-				</view>
+				<view class="money-btn" @click="navto('/pages/money/withdmoenys?type=xl')">能量金豆转账</view>
 				<!-- <view class="money-btn" @click="navto('/pages/money/withdrawal?type=shop')">
 					{{userInfo.is_merchant == 1? '提现 >': ''}}
 				</view> -->
@@ -33,20 +21,18 @@
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge || 0}}</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 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 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 :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">
 					<!-- 空白页 -->
@@ -57,7 +43,7 @@
 						<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>
+									<text>{{ item.mark }}</text>
 								</view>
 								<view class="time">
 									<text>{{ item.add_time }}</text>
@@ -68,8 +54,7 @@
 							</view>
 						</view>
 					</view>
-					<uni-load-more :status="tabItem.loadingType"
-						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
 		</swiper>
@@ -77,420 +62,388 @@
 </template>
 
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getShopIntegral,
-		getUserInfo
-	} from '@/api/user.js'
-	import {
-		spreadCommission,
-		userBalance
-	} from '@/api/wallet.js';
-	import {
+import { mapState, mapMutations } from 'vuex';
+import { getShopIntegral, getUserInfo } from '@/api/user.js';
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	filters: {
 		getMoneyStyle
-	} from '@/utils/rocessor.js';
-	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-	import empty from '@/components/empty';
-	export default {
-		filters: {
-			getMoneyStyle
-		},
-		components: {
-			empty,
-			uniLoadMore
-		},
-		onReady(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);
-					});
+	},
+	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 {
+			height: '',
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			orderStatusSum: 0,
+			recharge: 0,
+			navList: [
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10, //每次信息条数
+					loaded: false
 				},
-				fail: res => {}
-			});
-		},
-		data() {
-			return {
-				height: '',
-				// 头部图高度
-				maxheight: '',
-				tabCurrentIndex: 0,
-				orderStatusSum: 0,
-				recharge: 0,
-				navList: [{
-						state: 0,
-						text: '支出',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 ,//每次信息条数
-						loaded: false
-					},
-					{
-						state: 1,
-						text: '收入',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 ,//每次信息条数
-						loaded: false
-					}
-				],
-				money: ''
-			};
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10, //每次信息条数
+					loaded: false
+				}
+			],
+			money: ''
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+		// 获取用户余额
+		getUserInfo({}).then(({ data }) => {
+			this.money = data.now_money;
+			this.setUserInfo(data);
+		});
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		toBack() {
+			uni.navigateBack({});
 		},
-		onLoad(options) {},
-		onShow() {
-			this.loadData();
-			// 获取用户余额
-			getUserInfo({}).then(({
-				data
-			}) => {
-				this.money = data.now_money;
-				this.setUserInfo(data);
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
 			});
 		},
-		computed: {
-			...mapState('user', ['userInfo'])
-		},
-		methods: {
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			toBack() {
-				uni.switchTab({
-					url: '/pages/user/user',
-					fail() {
-						uni.switchTab({
-							url: '/pages/index/index'
-						})
+		//获取收入支出信息
+		async loadData(source) {
+			console.log('hao lan da sha bi');
+			let obj = this;
+			//这里是将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state;
+			console.log(state, 'state');
+			console.log(source, navItem.loaded, '+++++++++++++++++');
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			// 修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+
+			getShopIntegral({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: navItem.state
+			})
+				.then(({ data }) => {
+					console.log(data, 'data++++++++++');
+					obj.zc = data.zc;
+					obj.sr = data.sr;
+					navItem.orderList = navItem.orderList.concat(data.list);
+					navItem.page++;
+					if (navItem.limit == data.list.length) {
+						navItem.loadingType = 'more';
+					} else {
+						navItem.loadingType = 'noMore';
 					}
+					obj.$set(navItem, 'loaded', true);
 				})
-			},
-			// 页面跳转
-			navto(e) {
-				uni.navigateTo({
-					url: e
+				.catch(e => {
+					console.log(e);
 				});
-			},
-			//获取收入支出信息
-			async loadData(source) {
-				console.log('hao lan da sha bi')
-				let obj = this
-				//这里是将订单挂载到tab列表下
-				let index = this.tabCurrentIndex;
-				let navItem = this.navList[index];
-				let state = navItem.state;
-				console.log(state,'state');
-				console.log(source,navItem.loaded,'+++++++++++++++++')
-				if (source === 'tabChange' && navItem.loaded === true) {
-					//tab切换只有第一次需要加载数据
-					return;
-				}
-				if (navItem.loadingType === 'loading') {
-					//防止重复加载
-					return;
-				}
-				// 修改当前对象状态为加载中
-				navItem.loadingType = 'loading';
-
-				getShopIntegral({
-						page: navItem.page,
-						limit: navItem.limit,
-						pm: navItem.state
-					})
-					.then(({
-						data
-					}) => {
-						console.log(data,'data++++++++++')
-						obj.zc = data.zc
-						obj.sr = data.sr
-						navItem.orderList = navItem.orderList.concat(data.list)
-						navItem.page++
-						if (navItem.limit == data.list.length) {
-							navItem.loadingType = 'more'
-						} else {
-							navItem.loadingType = 'noMore'
-						}
-						obj.$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;
-			}
+		//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%;
-	}
+page {
+	background: #f1f1f1;
+	height: 100%;
+}
+
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
+.moneybtn-box {
+	display: flex;
+	justify-content: space-between;
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding: 20rpx 50rpx;
+	font-size: 30rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #ffffff;
+}
+
+.content-money {
+	position: relative;
+	height: 480rpx;
+
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 480rpx;
 
-	.status_bar {
-		height: var(--status-bar-height);
-		width: 100%;
-	}
-	.moneybtn-box {
-		display: flex;
-		justify-content: space-between;
-		position: relative;
-		z-index: 2;
-		color: #ffffff;
-		padding: 20rpx 50rpx;
-		margin-top: -40rpx;
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #FFFFFF;
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 
-	.content-money {
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
 		position: relative;
-		height: 480rpx;
 
-		.content-bg {
+		.header {
 			position: absolute;
-			top: 0;
 			left: 0;
-			right: 0;
-			width: 750rpx;
-			height: 480rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.body-title {
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
 			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;
-			}
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 9;
+			display: flex;
+			justify-content: center;
+			align-items: center;
 		}
-	}
-
-	.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%;
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
 			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;
+		.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;
 
-	.money-box {
-		position: relative;
-		z-index: 2;
-		padding-top: 70rpx;
-		color: #ffffff;
-		text-align: center;
-
-		.money {
-			font-size: 72rpx;
+		.info-font {
+			font-size: 30rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #ffffff;
+			color: #999999;
 		}
 
-		.text {
+		.info-num {
+			margin-top: 30rpx;
 			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #181818;
 		}
 	}
 
-	// .moneybtn-box {
-	// 	display: flex;
-	// 	justify-content: space-between;
-	// 	position: relative;
-	// 	z-index: 2;
-	// 	color: #ffffff;
-	// 	padding: 20rpx 50rpx;
-	// 	font-size: 30rpx;
-	// 	font-family: PingFang SC;
-	// 	font-weight: bold;
-	// 	color: #FFFFFF;
-	// }
-
-	.navbar {
-		margin-top: 20rpx;
+	.shu {
+		width: 2rpx;
+		height: 74rpx;
+		background: #dcdfe6;
+	}
+}
+
+.money-box {
+	position: relative;
+	z-index: 2;
+	padding-top: 70rpx;
+	/* #ifdef APP-PLUS */
+	padding-top: 30rpx;
+	/* #endif */
+	color: #ffffff;
+	text-align: center;
+
+	.money {
+		font-size: 72rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+
+	.text {
+		font-size: 30rpx;
+	}
+}
+
+.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;
-		height: 88rpx;
-		padding: 0 5px;
-		background: #fff;
-		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #999999;
 		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;
-				}
+		&.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;
-		}
+//列表
+.swiper-box {
+	.order-item:last-child {
+		margin-bottom: 60rpx;
+	}
 
-		.order-item {
-			padding: 20rpx 30rpx;
-			line-height: 1.5;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
 
-			.title-box {
-				.title {
-					font-size: $font-lg;
-					color: $font-color-base;
-				}
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
 
-				.time {
-					font-size: $font-base;
-					color: $font-color-light;
-				}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
 			}
+		}
 
-			.money {
-				color: #fd5b23;
-				font-size: $font-lg;
-				text-align: right;
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+			text-align: right;
 
-				.status {
-					color: $font-color-light;
-				}
+			.status {
+				color: $font-color-light;
 			}
 		}
 	}
+}
 
-	.list-scroll-content {
-		background: #ffffff;
-		height: 100%;
-	}
-
-	.content {
-		height: 100%;
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
 
-		.empty-content {
-			background-color: #ffffff;
-		}
-	}
+.content {
+	height: 100%;
 
-	.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;
+	.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>

+ 438 - 718
pages/user/user.vue

@@ -3,99 +3,64 @@
 		<!-- #ifdef APP-PLUS -->
 		<view class="vheigh"></view>
 		<!-- #endif -->
-
-		<!-- 用户头像设置 -->
-		<view class="user-wrap">
-			<view class="user-left">
-				<image :src="userInfo.avatar" mode="" v-if="userInfo.avatar"></image>
-				<image src="../../static/index/xhgLogo.png" mode="" v-else></image>
+		<view class="user-top">
+			<image src="../../static/index/index13.png" mode="" class="user-top-bg"></image>
+			<view class="user-info" @click="navTo('/pages/set/set')">
+				<image class="avtar" :src="userInfo.avatar" mode=""></image>
+				<view class="name">{{ userInfo.nickname }}</view>
+				<view class="phone">{{ userInfo.phone }}</view>
+				<view class="vip-box">
+					<view class="vip">
+						<image class="vip-bg" src="../../static/img/vip.png" mode=""></image>
+						<view class="vip-title">V{{ userInfo.level }}</view>
+					</view>
+				</view>
 			</view>
-			<view class="user-center">
-				<view class="user-name clamp2">
-					{{userInfo.nickname || '游客'}}
+			<view class="sy-box flex">
+				<view class="sy-item" @click="navTo('/pages/user/whiteJf')">
+					<view class="sy-item-name">我的肥料</view>
+					<view class="sy-item-val">{{ userInfo.white_integral || '0.00' }}</view>
 				</view>
-				<view class="user-phone" v-if="userInfo.uid">
-					邀请码:{{userInfo.uid}}
+				<view class="jg"></view>
+				<view class="sy-item" @click="navTo('/pages/user/greenJf')">
+					<view class="sy-item-name">我的水滴</view>
+					<view class="sy-item-val">{{ userInfo.green_integral || '0.00' }}</view>
 				</view>
-				<view class="user-phone" v-if="userInfo.uid" @click="navTo('/pages/user/wenpiao')">
-					文票:{{userInfo.paper_ticket || '0'}}
+				<view class="jg"></view>
+				<view class="sy-item" @click="navTo('/pages/user/myGreenCard')">
+					<view class="sy-item-name">我的洒水壶</view>
+					<view class="sy-item-val">{{ greenNum }}</view>
 				</view>
 			</view>
-			<view class="user-right" @click="navTo('/pages/set/userinfo')">
-				<image src="../../static/user/user-set.png" mode=""></image>
-			</view>
 		</view>
-		<!-- 账户数据 -->
-		<view class=" user-sj">
-			<image src="../../static/user/user-bg.png" mode="" class="bg"></image>
-			<view class="info-top">
-				账户
-			</view>
-			<view class="info-info">
-				<view class="info-item" @click="navTo('/pages/user/whiteJf')">
-					<view class="item-val">
-						{{userInfo.white_integral || '0'}}
-					</view>
-					<view class="item-tit">
-						红积分
-					</view>
-				</view>
-				<view class="info-item" @click="navTo('/pages/user/greenJf')">
-					<view class="item-val">
-						{{userInfo.green_integral || '0'}}
-					</view>
-					<view class="item-tit">
-						吉祥积分
-					</view>
-				</view>
-				<view class="info-item" @click="navTo('/pages/user/purpleJf')">
-					<view class="item-val">
-						{{userInfo.purple_integral || '0'}}
-					</view>
-					<view class="item-tit">
-						阳光积分
-					</view>
+		<view class="item-box">
+			<view class="order-section">
+				<view class="order-item" @click="navTo('/pages/user/purpleJf')" hover-class="common-hover" :hover-stay-time="50">
+					<view class="icon"><image class="icon-img" src="/static/icon/myyj.png" mode="aspectFit"></image></view>
+					<text>我的阳光</text>
 				</view>
-				<view class="info-item" @click="navTo('/pages/user/mallJf')">
-					<view class="item-val">
-						{{userInfo.integral || '0'}}
-					</view>
-					<view class="item-tit">
-						商城积分
-					</view>
+				<view class="order-item" @click="navTo('/pages/user/shopJf')" hover-class="common-hover" :hover-stay-time="50">
+					<view class="icon"><image class="icon-img" src="/static/icon/myqb.png" mode="aspectFit"></image></view>
+					<text>能量金豆</text>
 				</view>
-				<view class="info-item" @click="navTo('/pages/user/shopJf')">
-					<view class="item-val">
-						{{userInfo.business_integral || '0'}}
-					</view>
-					<view class="item-tit">
-						喜嗨积分
-					</view>
+				<view class="order-item" @click="navTo('/pages/user/mallJf')" hover-class="common-hover" :hover-stay-time="50">
+					<view class="icon"><image class="icon-img" src="/static/icon/mygx.png" mode="aspectFit"></image></view>
+					<text>商城积分</text>
 				</view>
-				<view class="info-item" @click="navTo('/pages/user/myGreenCard')">
-					<view class="item-val">
-						{{greenNum || '0'}}
-					</view>
-					<view class="item-tit">
-						绿卡
-					</view>
+				<view class="order-item" @click="navTo('/pages/user/team')" hover-class="common-hover" :hover-stay-time="50">
+					<view class="icon"><image class="icon-img" src="/static/icon/myjd.png" mode="aspectFit"></image></view>
+					<text>我的推广</text>
 				</view>
 			</view>
 		</view>
-		<image src="../../static/img/sq-rz.png" mode="widthFix"
-			style="width: 691rpx;display: block;margin:0rpx auto 20rpx;" @click="navTo('/pages/user/joinShop')"
-			v-if="userInfo && userInfo.is_merchant == 0">
-		</image>
 		<!-- 订单 -->
-		<view class="item-box item-box-b">
+		<view class="item-box item-box-b" style="margin-top: -200rpx;">
 			<view class="box-title flex ">
 				<view class="title"><text>我的订单</text></view>
-				<view class="link" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover"><text
-						class="iconfont iconenter"></text></view>
+				<view class="link" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover"><text class="iconfont iconenter"></text></view>
 			</view>
 			<view class="order-section">
-				<view class="order-item" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover"
-					:hover-stay-time="50">
+				<view class="order-item" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover" :hover-stay-time="50">
 					<view class=" icon position-relative">
 						<image class="icon-img" src="/static/icon/i1.png" mode="aspectFit"></image>
 						<view class="corner" v-if="orderInfo.unpaid_count > 0">
@@ -104,8 +69,7 @@
 					</view>
 					<text>待付款</text>
 				</view>
-				<view class="order-item" @click="navTo('/pages/order/order?state=1')" hover-class="common-hover"
-					:hover-stay-time="50">
+				<view class="order-item" @click="navTo('/pages/order/order?state=1')" hover-class="common-hover" :hover-stay-time="50">
 					<view class=" icon position-relative">
 						<image class="icon-img" src="/static/icon/i2.png" mode="aspectFit"></image>
 						<view class="corner" v-if="orderInfo.unshipped_count > 0">
@@ -114,8 +78,7 @@
 					</view>
 					<text>待发货</text>
 				</view>
-				<view class="order-item" @click="navTo('/pages/order/order?state=2')" hover-class="common-hover"
-					:hover-stay-time="50">
+				<view class="order-item" @click="navTo('/pages/order/order?state=2')" hover-class="common-hover" :hover-stay-time="50">
 					<view class="icon position-relative">
 						<image class="icon-img" src="/static/icon/i3.png" mode="aspectFit"></image>
 						<view class="corner" v-if="orderInfo.received_count > 0">
@@ -124,8 +87,7 @@
 					</view>
 					<text>待收货</text>
 				</view>
-				<view class="order-item" @click="navTo('/pages/order/order?state=4')" hover-class="common-hover"
-					:hover-stay-time="50">
+				<view class="order-item" @click="navTo('/pages/order/order?state=4')" hover-class="common-hover" :hover-stay-time="50">
 					<view class="icon position-relative">
 						<image class="icon-img" src="/static/icon/i4.png" mode="aspectFit"></image>
 						<!-- <view class="corner" v-if="orderInfo.complete_count > 0">
@@ -136,30 +98,37 @@
 				</view>
 			</view>
 		</view>
-		<uni-list class="tool-list">
-			<uni-list-item v-if="userInfo.clerk_type == 1" title="券码核销" @click="shao()" thumb="/static/user/user1.png">
-			</uni-list-item>
-			<uni-list-item v-if="userInfo.clerk_type == 1" title="核销历史" @click="navTo('/pages/user/hxjl')"
-				thumb="/static/user/user2.png"></uni-list-item>
-			<uni-list-item title="我的推广" @click="navTo('/pages/user/team')" thumb="/static/user/user01.png">
-			</uni-list-item>
-			<uni-list-item title="修改密码" @click="navTo('/pages/set/password')" thumb="/static/index/index14.png">
-			</uni-list-item>
-			<uni-list-item title="邀请海报" @click="navTo('/pages/user/shareQrCode')" thumb="/static/user/user02.png">
-			</uni-list-item>
-			<uni-list-item title="收货地址" @click="navTo('/pages/set/address')" thumb="/static/user/user03.png">
-			</uni-list-item>
-			<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/user/user04.png">
-			</uni-list-item>
-			
-		</uni-list>
+		<!--  -->
+		<view class="btm-box flex" @click="navTo('/pages/user/favorites')">
+			<image src="../../static/icon/mytg.png" mode="widthFix" class="left-img"></image>
+			<view class="">我的收藏</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<view class="btm-box flex" @click="navTo('/pages/user/shareQrCode')">
+			<image src="../../static/icon/tghb.png" mode="widthFix" class="left-img"></image>
+			<view class="">推广海报</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<view class="btm-box flex" @click="navTo('/pages/set/address')">
+			<image src="../../static/icon/shdz.png" mode="widthFix" class="left-img"></image>
+			<view class="">收货地址</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<view class="btm-box flex" @click="kfOpen">
+			<image src="../../static/icon/kf.png" mode="widthFix" class="left-img"></image>
+			<view class="">客服</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<view class="btm-box flex" @click="navTo('/pages/set/set')">
+			<image src="../../static/icon/bdsj.png" mode="widthFix" class="left-img"></image>
+			<view class="">设置</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
 		<view class="btm" style="height: 44px;"></view>
 		<!-- 客服 -->
 		<uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
-				<view class="img">
-					<image src="../../static/img/img009.png" mode=""></image>
-				</view>
+				<view class="img"><image src="../../static/img/img009.png" mode=""></image></view>
 				<view class="mian">
 					<view class="delivery">
 						<view class="title">已经为您定制专属客服</view>
@@ -176,696 +145,447 @@
 	</view>
 </template>
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import uniList from '@/components/uni-list/uni-list.vue';
-	import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
-	import {
-		orderData,
-		userinfo,
-		greenList
-	} from '@/api/user.js';
-	import {
-		saveUrl,
-		interceptor
-	} from '@/utils/loginUtils.js';
-	import {
-		tabbar
-	} from '@/utils/tabbar.js';
-	import uniCopy from '@/js_sdk/xb-copy/uni-copy.js';
-	let startY = 0,
-		moveY = 0,
-		pageAtTop = true;
-	export default {
-		components: {
-			uniList,
-			uniListItem
+import { mapState, mapMutations } from 'vuex';
+import uniList from '@/components/uni-list/uni-list.vue';
+import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
+import { orderData, userinfo, greenList } from '@/api/user.js';
+import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+import uniCopy from '@/js_sdk/xb-copy/uni-copy.js';
+let startY = 0,
+	moveY = 0,
+	pageAtTop = true;
+export default {
+	components: {
+		uniList,
+		uniListItem
+	},
+	data() {
+		return {
+			greenNum: 0,
+			text: '',
+			coverTransform: 'translateY(0px)',
+			coverTransition: '0s',
+			moving: false,
+			userDowm: 0, //卡片升级专属高度
+			userMaxDowm: 0 //卡片最高高度
+		};
+	},
+	onShow() {
+		this.loadBaseData();
+		// 判断是否已经登录
+		if (this.hasLogin) {
+			this.loadBaseData();
+			this.getGreenList();
+		}
+	},
+	onReady() {
+		// 初始化获取页面宽度
+		uni.createSelectorQuery()
+			.select('.container')
+			.fields(
+				{
+					size: true
+				},
+				data => {
+					// 计算最多下拉的高度
+					this.userDowm = Math.floor((data.width / 750) * 185);
+					// 计算最大触发修改高度事件
+					this.userMaxDowm = Math.floor((data.width / 750) * 250);
+				}
+			)
+			.exec();
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+
+		// 绿卡记录
+		getGreenList() {
+			greenList({}).then(res => {
+				console.log('greenList', res);
+				this.greenNum = res.data.count;
+			});
 		},
-		data() {
-			return {
-				greenNum: 0,
-				text: '',
-				tabbar: tabbar,
-				current: 4,
-				coverTransform: 'translateY(0px)',
-				coverTransition: '0s',
-				moving: false,
-				userDowm: 0, //卡片升级专属高度
-				userMaxDowm: 0 //卡片最高高度
-			};
+		// 加载初始数据
+		loadBaseData() {
+			console.log(this.userInfo);
+			userinfo({})
+				.then(({ data }) => {
+					this.setUserInfo(data);
+					// 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
+					orderData({})
+						.then(({ data }) => {
+							this.setOrderInfo(data);
+						})
+						.catch(e => {
+							this.setOrderInfo({
+								complete_count: 0, //完成
+								received_count: 0, //待收货
+								unshipped_count: 0, //待发货
+								order_count: 0, //订单总数
+								unpaid_count: 0 //待付款
+							});
+						});
+				})
+				.catch(e => {
+					console.log(e);
+				});
 		},
-		onShow() {
-			this.loadBaseData();
-			// 判断是否已经登录
-			if (this.hasLogin) {
-				this.loadBaseData();
-				this.getGreenList()
+		/**
+		 * 统一跳转接口,拦截未登录路由
+		 * navigator标签现在默认没有转场动画,所以用view
+		 */
+		navTo(url) {
+			if (url == '') {
+				this.$api.msg('敬请期待');
 			}
-		},
-		onReady() {
-			// 初始化获取页面宽度
-			uni.createSelectorQuery()
-				.select('.container')
-				.fields({
-						size: true
-					},
-					data => {
-						// 计算最多下拉的高度
-						this.userDowm = Math.floor((data.width / 750) * 185);
-						// 计算最大触发修改高度事件
-						this.userMaxDowm = Math.floor((data.width / 750) * 250);
+			if (!this.hasLogin) {
+				// 保存地址
+				saveUrl();
+				// 登录拦截
+				interceptor();
+			} else {
+				uni.navigateTo({
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						});
 					}
-				)
-				.exec();
+				});
+			}
 		},
-		computed: {
-			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		kfOpen() {
+			this.$refs.popupkf.open();
 		},
-		methods: {
-			
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			
-			// 绿卡记录
-			getGreenList() {
-				greenList({
-
-				}).then(res => {
-					console.log('greenList', res)
-					this.greenNum = res.data.count
-				})
-			},
-			// 加载初始数据
-			loadBaseData() {
-				console.log(this.userInfo);
-				userinfo({})
-					.then(({
-						data
-					}) => {
-						this.setUserInfo(data);
-						// 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
-						orderData({})
-							.then(({
-								data
-							}) => {
-								this.setOrderInfo(data);
-							})
-							.catch(e => {
-								this.setOrderInfo({
-									complete_count: 0, //完成
-									received_count: 0, //待收货
-									unshipped_count: 0, //待发货
-									order_count: 0, //订单总数
-									unpaid_count: 0 //待付款
-								});
-							});
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			/**
-			 * 统一跳转接口,拦截未登录路由
-			 * navigator标签现在默认没有转场动画,所以用view
-			 */
-			navTo(url) {
-				if (url == '') {
-					this.$api.msg('敬请期待')
-				}
-				if (!this.hasLogin) {
-					// 保存地址
-					saveUrl();
-					// 登录拦截
-					interceptor();
-				} else {
-					uni.navigateTo({
-						url,
-						fail() {
-							uni.switchTab({
-								url
-							});
-						}
-					});
-				}
-			},
-
-			/**
-			 *  会员卡下拉和回弹
-			 *  1.关闭bounce避免ios端下拉冲突
-			 *  2.由于touchmove事件的缺陷(以前做小程序就遇到,比如20跳到40,h5反而好很多),下拉的时候会有掉帧的感觉
-			 *    transition设置0.1秒延迟,让css来过渡这段空窗期
-			 *  3.回弹效果可修改曲线值来调整效果,推荐一个好用的bezier生成工具 http://cubic-bezier.com/
-			 */
-			coverTouchstart(e) {
-				// console.log(e);
-				if (pageAtTop === false) {
-					return;
-				}
-
-				this.coverTransition = 'transform .1s linear';
-				startY = e.touches[0].clientY;
-			},
-			coverTouchmove(e) {
-				// console.log(e);
-				moveY = e.touches[0].clientY;
-				let moveDistance = moveY - startY;
-				let maxDowm = this.userMaxDowm;
-				let Dowm = this.userDowm;
-				if (moveDistance < 0) {
-					this.moving = false;
-					return;
-				}
-				this.moving = true;
-				if (moveDistance >= Dowm && moveDistance < maxDowm) {
-					moveDistance = Dowm;
-				}
-
-				if (moveDistance > 0 && moveDistance <= Dowm) {
-					this.coverTransform = `translateY(${moveDistance}px)`;
-				}
-			},
-			coverTouchend() {
-				if (this.moving === false) {
-					return;
-				}
-				this.moving = false;
-				this.coverTransition = 'transform 0.3s cubic-bezier(.21,1.93,.53,.64)';
-				this.coverTransform = 'translateY(0px)';
-			},
-			kfOpen() {
-				this.$refs.popupkf.open()
-			},
-			kfClose() {
-				this.$refs.popupkf.close()
-			},
-			comfirm(text) {
-				console.log(text);
-				const result = uniCopy(text);
-				if (result === false) {
-					uni.showToast({
-						title: '不支持'
-					});
-				} else {
-					uni.showToast({
-						title: '复制成功',
-						icon: 'none'
-					});
-				}
-				this.$refs.popup.close();
-			},
+		kfClose() {
+			this.$refs.popupkf.close();
+		},
+		comfirm(text) {
+			console.log(text);
+			const result = uniCopy(text);
+			if (result === false) {
+				uni.showToast({
+					title: '不支持'
+				});
+			} else {
+				uni.showToast({
+					title: '复制成功',
+					icon: 'none'
+				});
+			}
+			this.$refs.popup.close();
 		}
-	};
+	}
+};
 </script>
 <style lang="scss">
-	page {
-		height: 100%;
+page {
+	height: 100%;
+}
+
+.vheigh {
+	height: var(--status-bar-height);
+	// background-color: #fff;
+}
+
+.user-top {
+	height: 564rpx;
+	position: relative;
+
+	.user-top-bg {
+		width: 750rpx;
+		height: 564rpx;
+		// width: 100%;
+		// position: absolute;
 	}
-
-	%flex-center {
+	.user-info {
+		width: 750rpx;
+		position: absolute;
+		top: 50rpx;
 		display: flex;
 		flex-direction: column;
 		justify-content: center;
 		align-items: center;
-	}
-
-	%section {
-		display: flex;
-		justify-content: space-around;
-		align-content: center;
-		background: #fff;
-		border-radius: 10rpx;
-	}
-
-	.container {
-		height: 100%;
-		background-color: $page-color-base;
-	}
-
-	.content-box {
-		height: 100%;
-	}
-
-	.vheigh {
-		height: var(--status-bar-height);
-		// background-color: #fff;
-	}
-
-	.user-section {
-		height: 435rpx;
-		padding: 15rpx 30rpx 0;
-		position: relative;
-
-		.bg {
-			position: absolute;
-			left: 0;
-			top: 0;
-			width: 100%;
-			height: 100%;
-			background-color: $base-color;
+		.avtar {
+			width: 134rpx;
+			height: 134rpx;
+			border-radius: 50%;
 		}
-	}
-
-	.user-info-box {
-		height: 180rpx;
-		color: white;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		position: relative;
-		z-index: 1;
-
-		.detail {
-			height: 130rpx;
-
-			.portrait-box {
-				height: 100%;
-
-				.portrait {
-					width: 130rpx;
+		.name {
+			margin-top: 10rpx;
+			font-size: 39rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+		}
+		.phone {
+			margin-top: 8rpx;
+			font-size: 29rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+		}
+		.vip-box {
+			margin-top: 10rpx;
+			display: flex;
+			align-items: center;
+			line-height: 1;
+			.vip {
+				position: relative;
+				margin-left: 12rpx;
+				width: 130rpx;
+				height: 40rpx;
+				.vip-bg {
+					position: absolute;
+					top: 0;
+					left: 0;
+					right: 0;
+					width: 100%;
 					height: 100%;
-					border: 5rpx solid #fff;
-					border-radius: 50%;
 				}
-			}
-
-			.info-box {
-				margin-left: 20rpx;
-				line-height: 1.5;
-
-				.username {
-					font-size: $font-lg + 6rpx;
-					height: 100%;
+				.vip-title {
+					position: relative;
+					z-index: 10;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #93794b;
+					padding-left: 46rpx;
+					line-height: 40rpx;
 				}
 			}
 		}
-
-		.config {
-			font-size: 48rpx;
-			height: 130rpx;
-
-			.setting {
-				margin-right: 51rpx;
-			}
-		}
 	}
 
-	.vip-card-box {
-		display: flex;
-		flex-direction: column;
-		color: #f7d680;
-		height: 240rpx;
-		background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8));
-		border-radius: 16rpx 16rpx 0 0;
-		overflow: hidden;
-		position: relative;
-		padding: 20rpx 24rpx;
-
-		.card-bg {
-			position: absolute;
-			top: 20rpx;
-			right: 0;
-			width: 380rpx;
-			height: 260rpx;
-		}
+	.sy-box {
+		position: absolute;
+		bottom: 30rpx;
+		height: 148rpx;
+		width: 750rpx;
 
-		.b-btn {
-			position: absolute;
-			right: 20rpx;
-			top: 16rpx;
-			width: 132rpx;
-			height: 40rpx;
+		// background-color: #bfa;
+		.sy-item {
+			width: 30%;
+			flex-grow: 1;
 			text-align: center;
-			line-height: 40rpx;
-			font-size: 22rpx;
-			color: #36343c;
-			border-radius: 20px;
-			background: linear-gradient(left, #f9e6af, #ffd465);
-			z-index: 1;
-		}
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
 
-		.tit {
-			font-size: $font-base + 2rpx;
-			color: #f7d680;
-			margin-bottom: 28rpx;
-
-			.iconfont {
-				color: #f6e5a3;
-				margin-right: 16rpx;
+			.sy-item-val {
+				font-size: 39rpx;
 			}
 		}
 
-		.e-b {
-			font-size: $font-sm;
-			color: #d8cba9;
-			margin-top: 10rpx;
+		.jg {
+			width: 2rpx;
+			height: 68rpx;
+			background-color: #fff;
 		}
 	}
+}
+
+%flex-center {
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
+}
+
+%section {
+	display: flex;
+	justify-content: space-around;
+	align-content: center;
+	background: #fff;
+	border-radius: 10rpx;
+}
+.item-box {
+	width: 708rpx;
+	height: 163rpx;
+	background: #fff;
+	border-radius: 28rpx;
+	background-color: white;
+	margin: -40rpx auto 30rpx;
+	position: relative;
+
+	// margin-top: 20rpx;
+	.box-title {
+		line-height: 1;
+		padding: 30rpx;
+
+		.title {
+			font-size: $font-lg;
+			font-weight: bold;
+		}
 
-	.cover-container {
-		background: $page-color-base;
-		margin-top: -150rpx;
-		padding: 0 30rpx;
-		position: relative;
-		background: #f5f5f5;
-		padding-bottom: 20rpx;
-
-		.arc {
-			position: absolute;
-			left: 0;
-			top: -34rpx;
-			width: 100%;
-			height: 36rpx;
+		.link {
+			font-size: $font-base - 2rpx;
+			color: $font-color-light;
 		}
 	}
 
-	.tj-sction {
+	.order-section {
 		@extend %section;
+		padding: 28rpx 0;
 
-		.tj-item {
+		.order-item {
 			@extend %flex-center;
-			flex-direction: column;
-			height: 140rpx;
+			width: 120rpx;
+			height: 120rpx;
+			border-radius: 10rpx;
 			font-size: $font-sm;
-			color: #75787d;
-		}
-
-		.num {
-			font-size: $font-lg;
 			color: $font-color-dark;
-			margin-bottom: 8rpx;
 		}
-	}
 
-	.item-box {
-		width: 708rpx;
-		height: 163rpx;
-		background: #fff;
-		border-radius: 28rpx;
-		background-color: white;
-		margin: -40rpx auto 30rpx;
-		position: relative;
-
-		// margin-top: 20rpx;
-		.box-title {
-			line-height: 1;
-			padding: 30rpx;
-
-			.title {
-				font-size: $font-lg;
-				font-weight: bold;
-			}
-
-			.link {
-				font-size: $font-base - 2rpx;
-				color: $font-color-light;
-			}
-		}
-
-		.order-section {
-			@extend %section;
-			padding: 28rpx 0;
-
-			.order-item {
-				@extend %flex-center;
-				width: 120rpx;
-				height: 120rpx;
-				border-radius: 10rpx;
-				font-size: $font-sm;
-				color: $font-color-dark;
-			}
-
-			.iconfont {
-				font-size: 48rpx;
-				margin-bottom: 18rpx;
-				color: #fa436a;
-			}
-
-			.icon-shouhoutuikuan {
-				font-size: 44rpx;
-			}
-
-			.icon {
-				height: 50rpx;
-				width: 48rpx;
-				margin-bottom: 18rpx;
-				background-size: 100%;
-				background-repeat: no-repeat;
-				background-position: center;
-
-				.icon-img {
-					width: 100%;
-					height: 100%;
-				}
-			}
+		.iconfont {
+			font-size: 48rpx;
+			margin-bottom: 18rpx;
+			color: #fa436a;
 		}
-	}
-
-	.history-section {
-		// padding: 30rpx 0 0;
-		margin-top: 20rpx;
-		background: #fff;
-		border-radius: 10rpx;
 
-		.sec-header {
-			display: flex;
-			align-items: center;
-			font-size: $font-base;
-			color: $font-color-dark;
-			line-height: 40rpx;
-			margin-left: 30rpx;
-			padding-top: 30rpx;
-
-			.iconfont {
-				font-size: 44rpx;
-				color: $color-red;
-				margin-right: 16rpx;
-				line-height: 40rpx;
-			}
+		.icon-shouhoutuikuan {
+			font-size: 44rpx;
 		}
 
-		.h-list {
-			white-space: nowrap;
-			padding: 30rpx 30rpx 0;
+		.icon {
+			height: 50rpx;
+			width: 48rpx;
+			margin-bottom: 18rpx;
+			background-size: 100%;
+			background-repeat: no-repeat;
+			background-position: center;
 
-			.h-list-image {
-				display: inline-block;
-				width: 160rpx;
-				height: 160rpx;
-				margin-right: 20rpx;
-				border-radius: 10rpx;
+			.icon-img {
+				width: 100%;
+				height: 100%;
 			}
 		}
 	}
-
-
-
-	.item-box-b {
-		width: 710rpx;
-		height: 221rpx;
-		background: #ffffff;
-		margin: 20rpx auto 60rpx;
+}
+
+.item-box-b {
+	width: 710rpx;
+	height: 221rpx;
+	background: #ffffff;
+	margin: 20rpx auto 60rpx;
+}
+
+.btm-box {
+	width: 706rpx;
+	height: 104rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 28rpx;
+	margin: 20rpx auto;
+	position: relative;
+	padding: 0 33rpx 0 24rpx;
+	font-size: 29rpx;
+	font-weight: bold;
+	color: #5d5d5d;
+	.left-img {
+		width: 40rpx;
 	}
+	.right-img {
+		width: 14rpx;
+	}
+	view {
+		flex-grow: 1;
+		padding-left: 12rpx;
+	}
+}
 
+.popup-box {
+	width: 522rpx;
+	height: 605rpx;
+	background-color: #ffffff;
+	border-radius: 20rpx;
+	position: relative;
 
-
-	.popup-box {
-		width: 522rpx;
-		height: 605rpx;
-		background-color: #ffffff;
-		border-radius: 20rpx;
+	.img {
 		position: relative;
+		top: -56rpx;
+		left: 0;
+		width: 522rpx;
+		height: 132rpx;
+		display: flex;
+		justify-content: center;
 
-		.img {
-			position: relative;
-			top: -56rpx;
-			left: 0;
-			width: 522rpx;
+		image {
+			border-radius: 20rpx 20rpx 0 0;
+			width: 450rpx;
 			height: 132rpx;
-			display: flex;
-			justify-content: center;
-
-			image {
-				border-radius: 20rpx 20rpx 0 0;
-				width: 450rpx;
-				height: 132rpx;
-			}
 		}
+	}
 
-		.mian {
-			margin-top: -44rpx;
+	.mian {
+		margin-top: -44rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		// padding: 32rpx 32rpx;
+		background-color: #ffffff;
+		border-radius: 0 0 20rpx 20rpx;
+		text-align: center;
+
+		.delivery {
+			font-size: 40rpx;
+			color: #333333;
 			display: flex;
-			flex-direction: column;
 			align-items: center;
-			// padding: 32rpx 32rpx;
-			background-color: #ffffff;
-			border-radius: 0 0 20rpx 20rpx;
-			text-align: center;
-
-			.delivery {
-				font-size: 40rpx;
-				color: #333333;
-				display: flex;
-				align-items: center;
-				flex-direction: column;
-
-				.title {}
-
-				image {
-					margin-top: 48rpx;
-					width: 172rpx;
-					height: 160rpx;
-				}
-			}
+			flex-direction: column;
 
-			.nocancel {
-				font-size: 32rpx;
-				color: #333333;
-				margin-top: 14rpx;
+			.title {
 			}
 
-			.comfirm-box {
-				margin-top: 52rpx;
-				display: flex;
-				// margin-bottom: 32rpx;
-
-				// justify-content: space-around;
-				.cancel {
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 197rpx;
-					height: 74rpx;
-					border: 1px solid #dcc786;
-					border-radius: 38rpx;
-
-					font-size: 32rpx;
-					color: #605128;
-				}
-
-				.comfirm {
-					margin-left: 32rpx;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 197rpx;
-					height: 74rpx;
-					background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
-					border-radius: 38px;
-					font-size: 32rpx;
-					color: #605128;
-				}
+			image {
+				margin-top: 48rpx;
+				width: 172rpx;
+				height: 160rpx;
 			}
 		}
 
-	}
-
-	.tool-list {
-		width: 690rpx;
-		margin: auto;
-		margin-top: 20rpx;
-		background: #ffffff;
-		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-		border-radius: 20rpx;
-	}
-
-	.user-sj {
-		width: 728rpx;
-		height: 448rpx;
-		position: relative;
-		margin: auto;
-		font-size: 32rpx;
-		font-weight: bold;
-		color: #FFFFFF;
-
-		.bg {
-			width: 728rpx;
-			height: 448rpx;
+		.nocancel {
+			font-size: 32rpx;
+			color: #333333;
+			margin-top: 14rpx;
 		}
 
-		.info-top {
-			position: absolute;
-			height: 100rpx;
-			top: 0;
-			line-height: 120rpx;
-			padding-left: 52rpx;
-		}
-
-		.info-info {
-			position: absolute;
-			top: 100rpx;
-			width: 100%;
+		.comfirm-box {
+			margin-top: 52rpx;
 			display: flex;
-			flex-wrap: wrap;
-			justify-content: flex-start;
-			height: 325rpx;
-			padding: 0 30rpx;
-
-			.info-item {
-				width: 33%;
-				height: 50%;
-				text-align: center;
+			// margin-bottom: 32rpx;
+
+			// justify-content: space-around;
+			.cancel {
 				display: flex;
-				flex-direction: column;
+				align-items: center;
 				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				border: 1px solid #dcc786;
+				border-radius: 38rpx;
 
-				.item-val {
-					margin-bottom: 32rpx;
-				}
-
-				.item-tit {}
-			}
-		}
-
-	}
-
-	.user-wrap {
-		display: flex;
-		padding: 80rpx 35rpx 20rpx 30rpx;
-
-		.user-left {
-			overflow: hidden;
-			flex-shrink: 0;
-			border-radius: 50%;
-			
-			width: 143rpx;
-			height: 143rpx;
-
-			image {
-				width: 143rpx;
-				height: 143rpx;
-			}
-		}
-
-		.user-center {
-			flex-grow: 1;
-			padding: 0 20rpx;
-			display: flex;
-			flex-direction: column;
-			justify-content: center;
-
-			.user-name {
-				font-size: 34rpx;
-				font-weight: bold;
-				color: #333333;
-			}
-
-			.user-phone {
-				font-size: 24rpx;
-				font-weight: 500;
-				color: #666666;
+				font-size: 32rpx;
+				color: #605128;
 			}
-		}
-
-		.user-right {
-			width: 44rpx;
-			height: 40rpx;
-			flex-shrink: 0;
 
-			image {
-				width: 44rpx;
-				height: 40rpx;
+			.comfirm {
+				margin-left: 32rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
+				border-radius: 38px;
+				font-size: 32rpx;
+				color: #605128;
 			}
 		}
 	}
+}
 </style>

+ 329 - 359
pages/user/whiteJf.vue

@@ -1,20 +1,14 @@
 <template>
 	<view class="content">
 		<view class="content-money">
-			<view class="status_bar">
-				<!-- 这里是状态栏 -->
-			</view>
+			<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/myyue.png" mode=""></image>
+				<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/myyue.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{userInfo.white_integral | getMoneyStyle}}</view>
+				<view class="money">{{ userInfo.white_integral | getMoneyStyle }}</view>
 				<view>当前余额</view>
 			</view>
 			<!-- <view class="moneybtn-box">
@@ -29,20 +23,18 @@
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{sr || 0}}</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 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 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 :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">
 					<!-- 空白页 -->
@@ -64,8 +56,7 @@
 							</view>
 						</view>
 					</view>
-					<uni-load-more :status="tabItem.loadingType"
-						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
 		</swiper>
@@ -73,406 +64,385 @@
 </template>
 
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getWhiteJf,
-		getUserInfo
-	} from '@/api/user.js'
-	import {
-		spreadCommission,
-		userBalance
-	} from '@/api/wallet.js';
-	import {
+import { mapState, mapMutations } from 'vuex';
+import { getWhiteJf, getUserInfo } from '@/api/user.js';
+import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	filters: {
 		getMoneyStyle
-	} from '@/utils/rocessor.js';
-	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-	import empty from '@/components/empty';
-	export default {
-		filters: {
-			getMoneyStyle
-		},
-		components: {
-			empty,
-			uniLoadMore
-		},
-		onReady(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);
-					});
+	},
+	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 {
+			zc: 0,
+			sr: 0,
+			height: '',
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			orderStatusSum: 0,
+			recharge: 0,
+			navList: [
+				{
+					state: 0,
+					text: '支出',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
 				},
-				fail: res => {}
-			});
-		},
-		data() {
-			return {
-				zc: 0,
-				sr: 0,
-				height: '',
-				// 头部图高度
-				maxheight: '',
-				tabCurrentIndex: 0,
-				orderStatusSum: 0,
-				recharge: 0,
-				navList: [{
-						state: 0,
-						text: '支出',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 //每次信息条数
-					},
-					{
-						state: 1,
-						text: '收入',
-						loadingType: 'more',
-						orderList: [],
-						page: 1, //当前页数
-						limit: 10 //每次信息条数
-					}
-				],
-				money: ''
-			};
+				{
+					state: 1,
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				}
+			],
+			money: ''
+		};
+	},
+	onLoad(options) {},
+	onShow() {
+		this.loadData();
+		// 获取用户余额
+		getUserInfo({}).then(({ data }) => {
+			this.money = data.now_money;
+			this.setUserInfo(data);
+		});
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		toBack() {
+			uni.navigateBack({});
 		},
-		onLoad(options) {},
-		onShow() {
-			this.loadData();
-			// 获取用户余额
-			getUserInfo({}).then(({
-				data
-			}) => {
-				this.money = data.now_money;
-				this.setUserInfo(data);
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
 			});
 		},
-		computed: {
-			...mapState('user', ['userInfo'])
-		},
-		methods: {
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			toBack() {
-				uni.switchTab({
-					url: '/pages/user/user',
-					fail() {
-						uni.switchTab({
-							url: '/pages/index/index'
-						})
+		//获取收入支出信息
+		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';
+
+			getWhiteJf({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: navItem.state
+			})
+				.then(({ data }) => {
+					this.zc = data.zc;
+					this.sr = data.sr;
+					navItem.orderList = navItem.orderList.concat(data.list);
+					navItem.page++;
+					if (navItem.limit == data.list.length) {
+						navItem.loadingType = 'more';
+					} else {
+						navItem.loadingType = 'noMore';
 					}
+					this.$set(navItem, 'loaded', true);
 				})
-			},
-			// 页面跳转
-			navto(e) {
-				uni.navigateTo({
-					url: e
+				.catch(e => {
+					console.log(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';
-
-				getWhiteJf({
-						page: navItem.page,
-						limit: navItem.limit,
-						pm: navItem.state
-					})
-					.then(({
-						data
-					}) => {
-						this.zc = data.zc
-						this.sr = data.sr
-						navItem.orderList = navItem.orderList.concat(data.list)
-						navItem.page++
-						if (navItem.limit == data.list.length) {
-							navItem.loadingType = 'more'
-						} else {
-							navItem.loadingType = 'noMore'
-						}
-						this.$set(navItem, 'loaded', true);
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
+		},
 
-			//swiper 切换
-			changeTab(e) {
-				this.tabCurrentIndex = e.target.current;
-				this.loadData('tabChange');
-			},
-			//顶部tab点击
-			tabClick(index) {
-				this.tabCurrentIndex = index;
-			}
+		//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%;
-	}
+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;
 
-	.status_bar {
-		height: var(--status-bar-height);
-		width: 100%;
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 
-	.content-money {
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
 		position: relative;
-		height: 480rpx;
 
-		.content-bg {
+		.header {
 			position: absolute;
-			top: 0;
 			left: 0;
-			right: 0;
-			width: 750rpx;
-			height: 480rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.body-title {
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
 			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;
-			}
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 9;
+			display: flex;
+			justify-content: center;
+			align-items: center;
 		}
-	}
-
-	.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%;
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
 			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;
+		.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;
 
-	.money-box {
-		position: relative;
-		z-index: 2;
-		padding-top: 70rpx;
-		color: #ffffff;
-		text-align: center;
-		/* #ifdef APP-PLUS */
-		padding-top: 30rpx;
-
-		/* #endif */
-		.money {
-			font-size: 72rpx;
+		.info-font {
+			font-size: 30rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #ffffff;
+			color: #999999;
 		}
 
-		.text {
+		.info-num {
+			margin-top: 30rpx;
 			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #181818;
 		}
 	}
 
-	.moneybtn-box {
-		display: flex;
-		justify-content: space-between;
-		position: relative;
-		z-index: 2;
-		color: #ffffff;
-		padding: 20rpx 50rpx;
-		font-size: 30rpx;
+	.shu {
+		width: 2rpx;
+		height: 74rpx;
+		background: #dcdfe6;
+	}
+}
+
+.money-box {
+	position: relative;
+	z-index: 2;
+	padding-top: 70rpx;
+	color: #ffffff;
+	text-align: center;
+	/* #ifdef APP-PLUS */
+	padding-top: 30rpx;
+
+	/* #endif */
+	.money {
+		font-size: 72rpx;
 		font-family: PingFang SC;
 		font-weight: bold;
-		color: #FFFFFF;
+		color: #ffffff;
 	}
 
-	.navbar {
-		margin-top: 20rpx;
+	.text {
+		font-size: 30rpx;
+	}
+}
+
+.moneybtn-box {
+	display: flex;
+	justify-content: space-between;
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding: 20rpx 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;
-		height: 88rpx;
-		padding: 0 5px;
-		background: #fff;
-		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #999999;
 		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;
-				}
+		&.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;
-		}
+//列表
+.swiper-box {
+	.order-item:last-child {
+		margin-bottom: 60rpx;
+	}
 
-		.order-item {
-			padding: 20rpx 30rpx;
-			line-height: 1.5;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
 
-			.title-box {
-				.title {
-					font-size: $font-lg;
-					color: $font-color-base;
-				}
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
 
-				.time {
-					font-size: $font-base;
-					color: $font-color-light;
-				}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
 			}
+		}
 
-			.money {
-				color: #fd5b23;
-				font-size: $font-lg;
-				text-align: right;
+		.money {
+			color: #fd5b23;
+			font-size: $font-lg;
+			text-align: right;
 
-				.status {
-					color: $font-color-light;
-				}
+			.status {
+				color: $font-color-light;
 			}
 		}
 	}
+}
 
-	.list-scroll-content {
-		background: #ffffff;
-		height: 100%;
-	}
+.list-scroll-content {
+	background: #ffffff;
+	height: 100%;
+}
 
-	.content {
-		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;
+	.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>

BIN
static/game/game02.png


BIN
static/game/game03.png


BIN
static/game/game04.png


BIN
static/game/game05.png


BIN
static/game/game06.png


BIN
static/game/game08.png


BIN
static/game/game1.gif


BIN
static/game/game11.png


BIN
static/game/game12.png


BIN
static/game/game13.png


BIN
static/game/game2.gif


BIN
static/game/game3.gif


+ 0 - 0
unpackage/cache/wgt/__UNI__F0D4DD1/static/icon/bdsj.png → static/icon/1.png


BIN
static/icon/bdsj.png


BIN
static/icon/myjd.png


BIN
static/icon/myqb.png


BIN
static/icon/mytg.png


BIN
static/icon/myyj.png


BIN
static/img/bargainBg.jpg


BIN
static/img/delete.png


BIN
static/img/deletes.png


BIN
static/img/game-bg.png


BIN
static/img/game01.png


BIN
static/img/game02.png


BIN
static/img/game03.png


BIN
static/img/game04.png


BIN
static/img/game05.png


BIN
static/img/img09.png


BIN
static/img/img10.png


BIN
static/img/img14.jpg


BIN
static/img/libao-bg.png


BIN
static/img/login-bg.png


BIN
static/img/logo.jpg


BIN
static/img/logo.png


BIN
static/img/paySuccess.png


BIN
static/img/phone.png


BIN
static/img/user-top-bg.png


BIN
static/img/vip-card-bg.png


BIN
static/img/vip.png


BIN
static/img/zfpwd.png


BIN
static/index/index01.png


BIN
static/index/index02.png


BIN
static/index/index03.png


BIN
static/index/index04.png


BIN
static/index/index05.png


BIN
static/index/index12.png


BIN
static/index/index13.png


BIN
static/index/index15.png


BIN
static/index/index16.png


BIN
static/index/xhgLogo.png


BIN
static/tabBar/cate-action.png


BIN
static/tabBar/cate.png


BIN
static/tabBar/dingdan.png


BIN
static/tabBar/game-action.png


BIN
static/tabBar/game.png


BIN
static/tabBar/home.png


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


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff