hwq 2 年之前
父節點
當前提交
2c349d0aae
共有 100 個文件被更改,包括 3395 次插入10820 次删除
  1. 9 0
      api/index.js
  2. 11 47
      api/user.js
  3. 6 6
      api/wallet.js
  4. 4 4
      manifest.json
  5. 36 188
      pages.json
  6. 0 267
      pages/activity/bargain/index.vue
  7. 0 172
      pages/activity/goods_bargain/index.vue
  8. 0 726
      pages/activity/goods_bargain_details/index.vue
  9. 128 0
      pages/category/articleList.vue
  10. 0 319
      pages/category/business.vue
  11. 5 6
      pages/category/category.vue
  12. 97 0
      pages/category/detail.vue
  13. 131 0
      pages/category/flList.vue
  14. 0 28
      pages/game/game.vue
  15. 654 850
      pages/index/index.vue
  16. 56 0
      pages/index/message.vue
  17. 98 0
      pages/index/messageInfo.vue
  18. 0 187
      pages/index/sign.vue
  19. 1 63
      pages/money/pay.vue
  20. 5 6
      pages/money/recharge.vue
  21. 40 38
      pages/money/wallet.vue
  22. 0 328
      pages/money/withdmoenys.vue
  23. 164 50
      pages/money/withdrawal.vue
  24. 22 47
      pages/order/createOrder.vue
  25. 100 125
      pages/product/classify.vue
  26. 8 8
      pages/product/common/productBottom.vue
  27. 165 0
      pages/product/common/productBottomVip.vue
  28. 0 386
      pages/product/groupBooking/detail.vue
  29. 0 236
      pages/product/groupBooking/index.vue
  30. 0 75
      pages/product/groupBooking/inviteImg.vue
  31. 0 2094
      pages/product/groupBooking/productCollage.vue
  32. 0 1008
      pages/product/groupBooking/productGroup.vue
  33. 17 55
      pages/product/list.vue
  34. 12 47
      pages/product/product.vue
  35. 0 403
      pages/product/seckill.vue
  36. 204 0
      pages/product/vip.vue
  37. 43 69
      pages/redirect/redirect.vue
  38. 0 161
      pages/set/password.vue
  39. 0 167
      pages/set/user.vue
  40. 157 35
      pages/set/userinfo.vue
  41. 300 211
      pages/shoping/list.vue
  42. 338 0
      pages/shoping/storeInfo.vue
  43. 26 30
      pages/user/award.vue
  44. 32 36
      pages/user/cash.vue
  45. 0 310
      pages/user/coupon.vue
  46. 0 185
      pages/user/jiedian.vue
  47. 0 317
      pages/user/jiedianDetails.vue
  48. 0 407
      pages/user/mygx.vue
  49. 0 153
      pages/user/notice.vue
  50. 35 38
      pages/user/scoreAccumulate.vue
  51. 15 13
      pages/user/team.vue
  52. 476 547
      pages/user/user.vue
  53. 0 372
      pages/user/withdrawal.vue
  54. 二進制
      static/icon/img39.png
  55. 二進制
      static/icon/index-gou.png
  56. 二進制
      static/img/address.png
  57. 二進制
      static/img/back.png
  58. 二進制
      static/img/backb.png
  59. 二進制
      static/img/bargainBg.jpg
  60. 二進制
      static/img/busy.png
  61. 二進制
      static/img/call.png
  62. 二進制
      static/img/cart.png
  63. 二進制
      static/img/copy.png
  64. 二進制
      static/img/fanhui.png
  65. 二進制
      static/img/img01.png
  66. 二進制
      static/img/integration.png
  67. 二進制
      static/img/jian.png
  68. 二進制
      static/img/jiantou.png
  69. 二進制
      static/img/jiedianBg.png
  70. 二進制
      static/img/jingt.png
  71. 二進制
      static/img/jt.png
  72. 二進制
      static/img/kf.png
  73. 二進制
      static/img/lc1.png
  74. 二進制
      static/img/lc2.png
  75. 二進制
      static/img/lc3.png
  76. 二進制
      static/img/lc4.png
  77. 二進制
      static/img/leisure.png
  78. 二進制
      static/img/libao-bg.png
  79. 二進制
      static/img/ling.png
  80. 二進制
      static/img/log.jpg
  81. 二進制
      static/img/log.png
  82. 二進制
      static/img/logo.jpg
  83. 二進制
      static/img/message.png
  84. 二進制
      static/img/money-bg.png
  85. 二進制
      static/img/money-ok.png
  86. 二進制
      static/img/my-bg.png
  87. 二進制
      static/img/mygx.png
  88. 二進制
      static/img/myjf.png
  89. 二進制
      static/img/myyue.png
  90. 二進制
      static/img/order99.png
  91. 二進制
      static/img/people.png
  92. 二進制
      static/img/productIcon.png
  93. 二進制
      static/img/promotion-bg.png
  94. 二進制
      static/img/quan.png
  95. 二進制
      static/img/quaninco.png
  96. 二進制
      static/img/search.png
  97. 二進制
      static/img/seckill-inco.png
  98. 二進制
      static/img/serve.png
  99. 二進制
      static/img/sign.png
  100. 二進制
      static/img/store1.png

+ 9 - 0
api/index.js

@@ -42,3 +42,12 @@ export function store_list(data) {
 		data
 	});
 }
+
+// 店铺详情
+export function store_details(data, id) {
+	return request({
+		url: '/api/store_details/' + id,
+		method: 'get',
+		data
+	});
+}

+ 11 - 47
api/user.js

@@ -1,28 +1,10 @@
 import request from '@/utils/request'
 
 
-//查看子点位
-export function lookSubpoints(data,id){
-	return request({
-		url:'/api/tree/children/'+id,
-		method:'get',
-		data
-	})
-}
-//查看自己的点位
-export function lookOneself(data){
-	return request({
-		url:'/api/tree/points',
-		method:'get',
-		data
-		
-	})
-}
-
 //绑定上级
 export function spread(data) {
 	return request({
-		url:'/api/user/spread',
+		url: '/api/user/spread',
 		method: 'post',
 		data
 	})
@@ -146,38 +128,20 @@ export function delcollect(data) {
 	});
 }
 
-//积分转账
-export function transfer(data) {
+//文章列表
+export function article(data, id) {
 	return request({
-		url:'/api/trade',
-		method: 'post',
+		url: '/api/article/list/' + id,
+		method: 'GET',
 		data
-	})
-}
-
-//余额转账
-export function yuetransfer(data) {
-	return request({
-		url:'/api/yue/trade',
-		method: 'post',
-		data
-	})
-}
-
-//现金转账
-export function cashtransfer(data) {
-	return request({
-		url:'/api/cash/trade',
-		method: 'post',
-		data
-	})
+	});
 }
 
-// 我的分红积分
-export function share(data) {
+//文章详情
+export function details(data, id) {
 	return request({
-		url:'/api/game',
-		method: 'get',
+		url: '/api/article/details/' + id,
+		method: 'GET',
 		data
-	})
+	});
 }

+ 6 - 6
api/wallet.js

@@ -1,9 +1,9 @@
 import request from '@/utils/request'
 
 // 获取用户消费记录
-export function spreadCommission(data,state) {
+export function spreadCommission(data, state) {
 	return request({
-		url: '/api/spread/commission/'+state,
+		url: '/api/spread/commission/' + state,
 		method: 'get',
 		data
 	});
@@ -118,17 +118,17 @@ export function balance(data) {
 // 账户余额
 export function cashList(data) {
 	return request({
-		url: '/api/cash/list',
+		url: '/api/voucher/list',
 		method: 'get',
 		data
 	});
 }
 
 //充值金额
-export function moneyChong(data){
+export function moneyChong(data) {
 	return request({
-		url:'/api/recharge/index',
-		method:'get',
+		url: '/api/recharge/index',
+		method: 'get',
 		data
 	})
 }

+ 4 - 4
manifest.json

@@ -1,5 +1,5 @@
 {
-    "name" : "皓月瓷肌",
+    "name" : "黄金稻子",
     "appid" : "__UNI__F0EBD91",
     "description" : "",
     "versionName" : "1.0.0",
@@ -64,7 +64,7 @@
         }
     },
     "h5" : {
-        "title" : "响亮商城",
+        "title" : "黄金稻子",
         "domain" : "",
         "router" : {
             "base" : "/index/",
@@ -73,8 +73,8 @@
         "devServer" : {
             "proxy" : {
                 "/api" : {
-                    // "target" : "http://lnpt.frp.liuniu946.com/api",
-                    "target" : "https://xl.liuniu946.com/api",
+                    "target" : "http://hjdz.liuniu946.com/api",
+                    // "target": "https://xl.liuniu946.com/api",
                     // "changeOrigin": true,
                     "pathRewrite" : {
                         "/api" : "" // rewrite path

+ 36 - 188
pages.json

@@ -5,43 +5,44 @@
 	"pages": [{
 			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "响亮商城",
+				"navigationBarTitleText": "黄金稻子",
 				"app-plus": {
 					"titleNView": false
 				}
 			}
 		},
 		{
-			"path": "pages/index/sign",
+			"path": "pages/index/message",
 			"style": {
-				"navigationBarTitleText": "天天领现金",
-				"app-plus": {
-					"titleNView": false
-				}
+				"navigationBarTitleText": "公司介绍"
+
+			}
+		},
+		{
+			"path": "pages/index/messageInfo",
+			"style": {
+				"navigationBarTitleText": "详情"
+
 			}
 		},
 		{
 			"path": "pages/shoping/list",
 			"style": {
 				"navigationBarTitleText": "店铺列表"
-				
+
 			}
 		},
 		{
-			"path": "pages/public/register",
+			"path": "pages/shoping/storeInfo",
 			"style": {
-				"navigationBarTitleText": "注册",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
+				"navigationBarTitleText": "详情"
+
 			}
 		},
 		{
-			"path": "pages/user/jiedianDetails",
+			"path": "pages/public/register",
 			"style": {
-				"navigationBarTitleText": "节点团队",
+				"navigationBarTitleText": "注册",
 				"app-plus": {
 					"titleNView": {
 						"type": "transparent"
@@ -49,7 +50,7 @@
 				}
 			}
 		},
-	 {
+		{
 			"path": "pages/public/login",
 			"style": {
 				"navigationBarTitleText": "登录",
@@ -83,12 +84,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/user/jiedian",
-			"style": {
-				"navigationBarTitleText": "我的节点"
-			}
-		},
 		{
 			"path": "pages/user/team",
 			"style": {
@@ -98,73 +93,9 @@
 		{
 			"path": "pages/user/cash",
 			"style": {
-				"navigationBarTitleText": "我的现金"
-			}
-		},
-		{
-			"path": "pages/money/withdmoenys",
-			"style": {
-				"navigationBarTitleText": "转账"
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/index",
-			"style": {
-				"enablePullDownRefresh": true,
-				"navigationBarTitleText": "超值拼团"
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/detail",
-			"style": {
-				"navigationBarTitleText": "拼团列表",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/productCollage", //拼团商品
-			"style": {
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				},
-				"navigationBarTitleText": "商品详情"
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/inviteImg",
-			"style": {
-				"navigationBarTitleText": "拼团邀请图",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/productGroup",
-			"style": {
-				"navigationBarTitleText": "拼团详情展示",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
+				"navigationBarTitleText": "我的抵用券"
 			}
 		},
-		// {
-		// 	"path": "pages/product/groupBooking/groupdetails",
-		// 	"style": {
-		// 		"navigationBarTitleText": "拼团详情",
-		// 		"app-plus": {
-		// 			"titleNView": false
-		// 		}
-		// 	}
-		// },
 		{
 			"path": "pages/product/reply",
 			"style": {
@@ -188,16 +119,16 @@
 			}
 		},
 		{
-			"path": "pages/product/seckill",
+			"path": "pages/product/list",
 			"style": {
-				"navigationBarTitleText": "限时秒杀"
+				"enablePullDownRefresh": true,
+				"navigationBarTitleText": "商品列表"
 			}
 		},
 		{
-			"path": "pages/product/list",
+			"path": "pages/product/vip",
 			"style": {
-				"enablePullDownRefresh": true,
-				"navigationBarTitleText": "商品列表"
+				"navigationBarTitleText": "会员礼包"
 			}
 		},
 		{
@@ -234,12 +165,7 @@
 		{
 			"path": "pages/product/classify",
 			"style": {
-				"navigationStyle": "custom",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
+				"navigationBarTitleText": "热销商品"
 			}
 		},
 		{
@@ -266,18 +192,6 @@
 				"navigationBarTitleText": "绑定手机号"
 			}
 		},
-		{
-			"path": "pages/set/user",
-			"style": {
-				"navigationBarTitleText": "绑定上级"
-			}
-		},
-		{
-			"path": "pages/set/password",
-			"style": {
-				"navigationBarTitleText": "修改密码"
-			}
-		},
 		{
 			"path": "pages/set/userinfo",
 			"style": {
@@ -325,7 +239,7 @@
 		{
 			"path": "pages/user/award",
 			"style": {
-				"navigationBarTitleText": "奖励明细",
+				"navigationBarTitleText": "我的佣金",
 				"app-plus": {
 					"titleNView": {
 						"type": "transparent"
@@ -333,39 +247,16 @@
 				}
 			}
 		},
-		{
-			"path": "pages/user/withdrawal",
-			"style": {
-				"navigationBarTitleText": "奖励提现"
-			}
-		},
-		{
-			"path": "pages/user/notice",
-			"style": {
-				"navigationBarTitleText": "通知"
-			}
-		},
 		{
 			"path": "pages/user/favorites",
 			"style": {
 				"navigationBarTitleText": "收藏夹"
 			}
-		}, {
-			"path": "pages/user/coupon",
-			"style": {
-				"navigationBarTitleText": "我的卡卷"
-			}
 		},
 		{
 			"path": "pages/user/scoreAccumulate",
 			"style": {
-				"navigationBarTitleText": "响亮积分明细"
-			}
-		},
-		{
-			"path": "pages/user/mygx",
-			"style": {
-				"navigationBarTitleText": "我的贡献"
+				"navigationBarTitleText": "积分明细"
 			}
 		},
 		{
@@ -484,18 +375,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/category/business",
-			"style": {
-				"navigationBarTitleText": "商圈"
-			}
-		},
-		{
-			"path": "pages/game/game",
-			"style": {
-				"navigationBarTitleText": "响亮游戏"
-			}
-		},
 		{
 			"path": "pages/user/shareQrCode",
 			"style": {
@@ -503,49 +382,18 @@
 			}
 		}
 	],
-	"subPackages": [{
-		"root": "pages/activity",
-		"name": "activity",
-		"pages": [{
-				"path": "goods_bargain/index",
-				"style": {
-					"navigationStyle": "custom"
-						// #ifdef MP
-						,
-					"navigationBarTextStyle": "#fff"
-					// #endif
-				}
-			},
-			{
-				"path": "goods_bargain_details/index",
-				"style": {
-					"navigationStyle": "custom"
-						// #ifdef MP
-						,
-					"navigationBarTextStyle": "#fff"
-					// #endif
-				}
-			},
-			{
-				"path": "bargain/index",
-				"style": {
-					"navigationBarTitleText": "砍价记录"
-				}
-			}
-		]
-	}],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "响亮商城",
 		"navigationBarBackgroundColor": "#FFFFFF",
-		"backgroundColor": "#f8f8f8",
+		"backgroundColor": "#f8f8f8"
 		//#ifdef H5
-		"navigationStyle": "custom"
+		// "navigationStyle": "custom"
 		//#endif
 	},
 	"tabBar": {
 		"color": "#666666",
-		"selectedColor": "#f65067",
+		"selectedColor": "#d2a770",
 		"borderStyle": "black",
 		"backgroundColor": "#ffffff",
 		"list": [{
@@ -554,18 +402,18 @@
 				"selectedIconPath": "static/tabBar/tab-home-current.png",
 				"text": "首页"
 			},
+			{
+				"pagePath": "pages/shoping/list",
+				"iconPath": "static/tabBar/tab-pink.png",
+				"selectedIconPath": "static/tabBar/tab-pink-current.png",
+				"text": "商家"
+			},
 			{
 				"pagePath": "pages/category/category",
 				"iconPath": "static/tabBar/tab-cate.png",
 				"selectedIconPath": "static/tabBar/tab-cate-current.png",
 				"text": "分类"
 			},
-			// {
-			// 	"pagePath": "pages/game/game",
-			// 	"iconPath": "static/tabBar/tab-cate.png",
-			// 	"selectedIconPath": "static/tabBar/tab-cate-current.png",
-			// 	"text": "响亮游戏"
-			// },
 			{
 				"pagePath": "pages/cart/cart",
 				"iconPath": "static/tabBar/tab-cart.png",

+ 0 - 267
pages/activity/bargain/index.vue

@@ -1,267 +0,0 @@
-<template>
-	<view>
-		<block v-if="bargain.length>0">
-			<div class="bargain-record" ref="container">
-				<div class="item" v-for="(item, index) in bargain" :key="index">
-					<div class="picTxt acea-row row-between-wrapper">
-						<div class="pictrue">
-							<image :src="item.image" />
-						</div>
-						<div class="text acea-row row-column-around">
-							<div class="line1" style="width: 100%;">{{ item.title }}</div>
-							<count-down :justify-left="'justify-content:left'" :is-day="true" :tip-text="'倒计时 '" :day-text="' 天 '" :hour-text="' 时 '" :minute-text="' 分 '"
-							 :second-text="' 秒'" :datatime="item.datatime" v-if="item.status === 1"></count-down>
-							<div class="successTxt font-color-red" v-else-if="item.status === 3">砍价成功</div>
-							<div class="endTxt" v-else>活动已结束</div>
-							<div class="money font-color-red">
-								已砍至<span class="symbol">¥</span><span class="num">{{ item.residue_price }}</span>
-							</div>
-						</div>
-					</div>
-					<div class="bottom acea-row row-between-wrapper">
-						<div class="purple" v-if="item.status === 1">活动进行中</div>
-						<div class="success" v-else-if="item.status === 3">砍价成功</div>
-						<div class="end" v-else>活动已结束</div>
-						<div class="acea-row row-middle row-right">
-							<div class="bnt cancel" v-if="item.status === 1" @click="getBargainUserCancel(item.bargain_id)">
-								取消活动
-							</div>
-							<div class="bnt bg-color-red" v-if="item.status === 1" @click="goDetail(item.bargain_id)">
-								继续砍价
-							</div>
-							<!-- <div class="bnt bg-color-red" v-else @click="goList">重开一个</div> -->
-						</div>
-					</div>
-				</div>
-				<Loading :loaded="status" :loading="loadingList"></Loading>
-			</div>
-		</block>
-		<block v-if="bargain.length == 0">
-			<emptyPage title="暂无砍价记录~"></emptyPage>
-		</block>
-	</view>
-</template>
-<script>
-	import CountDown from "@/components/countDown";
-	import emptyPage from '@/components/emptyPage.vue'
-	import {
-		getBargainUserList,
-		getBargainUserCancel
-	} from "@/api/activity";
-	import {
-		userinfos
-	} from '@/api/user.js';
-	import Loading from "@/components/Loading";
-
-	export default {
-		name: "BargainRecord",
-		components: {
-			CountDown,
-			Loading,
-			emptyPage
-		},
-		props: {},
-		data: function() {
-			return {
-				bargain: [],
-				status: false, //砍价列表是否获取完成 false 未完成 true 完成
-				loadingList: false, //当前接口是否请求完成 false 完成 true 未完成
-				page: 1, //页码
-				limit: 20, //数量
-				userInfo: {}
-			};
-		},
-		onLoad: function() {
-			this.getBargainUserList();
-			this.getUserInfo();
-			// this.$scroll(this.$refs.container, () => {
-			//   !this.loadingList && this.getBargainUserList();
-			// });
-		},
-		methods: {
-			goDetail: function(id) {
-				// this.$router.push({
-				// 	path: "/activity/dargain_detail/" + id +'&bargain='+ userInfo.uid
-				// });
-				uni.navigateTo({
-					url: `/pages/activity/goods_bargain_details/index?id=${id}&bargain=${this.userInfo.uid}`
-				})
-			},
-			// 砍价列表
-			goList: function() {
-				uni.navigateTo({
-					url: '/pages/activity/goods_bargain/index'
-				})
-			},
-			getBargainUserList: function() {
-				var that = this;
-				if (that.loadingList) return;
-				if (that.status) return;
-				getBargainUserList({
-						page: that.page,
-						limit: that.limit
-					})
-					.then(res => {
-						that.status = res.data.length < that.limit;
-						that.bargain.push.apply(that.bargain, res.data);
-						that.page++;
-						that.loadingList = false;
-					})
-					.catch(res => {
-						that.$dialog.error(res.msg);
-					});
-			},
-			getBargainUserCancel: function(bargainId) {
-				var that = this;
-				uni.showModal({
-				    title: '提示',
-				    content: '确定取消砍价商品吗',
-				    success: function (res) {
-				        if (res.confirm) {
-				            console.log('用户点击确定');
-							getBargainUserCancel({
-									bargainId: bargainId
-								})
-								.then(res => {
-									that.status = false;
-									that.loadingList = false;
-									that.page = 1;
-									that.bargain = [];
-									that.getBargainUserList();
-									uni.showToast({
-										title:res.msg
-									});
-								})
-								.catch(res => {
-									uni.showToast({
-										title:res
-									});
-								});
-				        } else if (res.cancel) {
-				            console.log('用户点击取消');
-				        }
-				    }
-				});
-			},
-			/**
-			 * 获取个人用户信息
-			 */
-			getUserInfo: function() {
-				let that = this;
-				userinfos().then(res => {
-					that.userInfo = res.data;
-				});
-			},
-		},
-		onReachBottom() {
-			this.getBargainUserList();
-		}
-	};
-</script>
-
-<style lang="scss">
-	page{
-		background-color: #f5f5f5;
-	}
-	/*砍价记录*/
-	.bargain-record .item .picTxt .text .time .styleAll {
-		color: #fc4141;
-		font-size:24rpx;
-	}
-	.bargain-record .item .picTxt .text .time .red {
-		color: #999;
-		font-size:24rpx;
-	}
-	.bargain-record .item {
-		background-color: #fff;
-		margin-bottom: 12upx;
-	}
-
-	.bargain-record .item .picTxt {
-		height: 210upx;
-		border-bottom: 1px solid #f0f0f0;
-		padding: 0 30upx;
-	}
-
-	.bargain-record .item .picTxt .pictrue {
-		width: 150upx;
-		height: 150upx;
-	}
-
-	.bargain-record .item .picTxt .pictrue image {
-		width: 100%;
-		height: 100%;
-		border-radius: 6upx;
-	}
-
-	.bargain-record .item .picTxt .text {
-		width: 515upx;
-		font-size: 30upx;
-		color: #282828;
-		height: 150upx;
-	}
-
-	.bargain-record .item .picTxt .text .time {
-		font-size: 24upx;
-		color: #868686;
-		justify-content: left !important;
-	}
-	
-	.bargain-record .item .picTxt .text .successTxt{
-		font-size:24rpx;
-	}
-	
-	.bargain-record .item .picTxt .text .endTxt{
-		font-size:24rpx;
-		color: #999;
-	}
-	.bargain-record .item .picTxt .text .money {
-		font-size: 24upx;
-	}
-
-	.bargain-record .item .picTxt .text .money .num {
-		font-size: 32upx;
-		font-weight: bold;
-	}
-
-	.bargain-record .item .picTxt .text .money .symbol {
-		font-weight: bold;
-	}
-
-	.bargain-record .item .bottom {
-		height: 100upx;
-		padding: 0 30upx;
-		font-size: 27upx;
-	}
-
-	.bargain-record .item .bottom .purple {
-		color: #f78513;
-	}
-
-	.bargain-record .item .bottom .end {
-		color: #999;
-	}
-
-	.bargain-record .item .bottom .success {
-		color: #e93323;
-	}
-
-	.bargain-record .item .bottom .bnt {
-		font-size: 27upx;
-		color: #fff;
-		width: 176upx;
-		height: 60upx;
-		border-radius: 32upx;
-		text-align: center;
-		line-height: 60upx;
-	}
-
-	.bargain-record .item .bottom .bnt.cancel {
-		color: #aaa;
-		border: 1px solid #ddd;
-	}
-
-	.bargain-record .item .bottom .bnt~.bnt {
-		margin-left: 18upx;
-	}
-</style>

文件差異過大導致無法顯示
+ 0 - 172
pages/activity/goods_bargain/index.vue


文件差異過大導致無法顯示
+ 0 - 726
pages/activity/goods_bargain_details/index.vue


+ 128 - 0
pages/category/articleList.vue

@@ -0,0 +1,128 @@
+<template>
+	<view class="content">
+		<view class="main">
+			<view v-for="(item, index) in list">
+				<view class="item flex" @click="navToList(item.id)">
+					<view class="item-left"><image :src="item.image" mode=""></image></view>
+					<!-- <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>
+import { article,articleList } from '@/api/user.js';
+import { getTime } from '@/utils/rocessor.js';
+export default {
+	data() {
+		return {
+			list: []
+		};
+	},
+	onLoad() {
+		this.loadData();
+	},
+	methods: {
+		// 载入数据
+		async loadData() {
+			let obj = this;
+			// article({page:1,limit:1000}).then(({data}) =>{
+			articleList({page:1,limit:1000}).then(({data}) =>{
+				this.list = data.filter(e => {
+					console.log(e.id,'123456789')
+					return (e.id !== 0)
+				})
+			})
+		},
+		navToList(id) {
+			uni.navigateTo({
+				// url:'/pages/category/detail?id=' + id
+				url: '/pages/category/flList?id=' + id
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+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;
+			background: #DC4D46;
+			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 - 319
pages/category/business.vue

@@ -1,319 +0,0 @@
-<template>
-	<view class="center">
-		<!-- <view class="search-top">
-			<view class="search flex">
-				<view class="shop-name clamp">椒江区</view>
-				<image class="shop-jt" src="../../static/icon/dsjh.png" mode=""></image>
-				<view class="input-box flex">
-					<view class=" input-content flex">
-						<image src="../../static/icon/search-h.png" mode="" class="" style="width: 32rpx;height: 32rpx;">
-						</image>
-						<view class="input"><input type="text" value="输入关键字搜索" /></view>
-					</view>
-				</view>
-				<view class="search-tit" @click.stop="clickSearch">
-					搜索
-				</view>
-			</view>
-			<view class="shop">
-				<view class="shop-title">
-					<view class="shop-item">
-						<view class="sitem-font">智能排序</view>
-						<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
-					</view>
-					<view class="shop-item">
-						<view class="sitem-font">位置距离</view>
-						<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
-					</view>
-					<view class="shop-item">
-						<view class="sitem-font">折扣优惠</view>
-						<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
-					</view>
-					<view class="shop-item">
-						<view class="sitem-font">筛选</view>
-						<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
-					</view>
-				</view>
-			</view>
-		</view> -->
-		<!-- <view class="jg" style="height: 180rpx;">
-			
-		</view>
-		<view class="shop">
-			<view class="shop-main flex" v-for="(item, index) in 100" :key="index">
-				<image class="main-left" src="../../static/index/index13.png" mode=""></image>
-				<view class="main-right flex">
-					<view class="shopm-info">
-						<view class="shopm-title">
-							<view class="shopmt-font clamp">李家烤肉11111111111111111111111111111111111111111111</view>
-							<view class="shopmt-good">荐</view>
-						</view>
-						<view class="address">椒江区市府大道200号</view>
-						<view class="shopmt-tip">消费最高可得10%积分</view>
-					</view>
-					<view class="right">
-						<view class="mright-top">
-							<image class="mrt-image" src="../../static/index/index10.png" mode=""></image>
-							<view class="mrt-font">距离0.3KM</view>
-						</view>
-						<view class="mright-bottom">
-							<image class="mrb-item" src="../../static/index/index14.png" mode=""></image>
-							<image class="mrb-item" src="../../static/index/index11.png" mode=""></image>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view> -->
-		<view class="kong">
-			<u-empty mode="data" text="敬请期待"></u-empty>
-		</view>
-		<!-- <u-tabbar activeColor="#EE0979" v-model="current" :list="tabbar" :mid-button="true"></u-tabbar> -->
-	</view>
-</template>
-
-<script>
-	import {
-		tabbar
-	} from '@/utils/tabbar.js';
-	export default {
-		data() {
-			return {
-				tabbar: tabbar,
-				current: 1
-			};
-		},
-	};
-</script>
-
-<style lang="less">
-	.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;
-		}
-
-		.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;
-		}
-
-		.shop-jt {
-			margin-left: 8rpx;
-			width: 16rpx;
-			height: 10rpx;
-		}
-
-		.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;
-				flex-grow: 1;
-				padding: 5rpx 30rpx;
-				background: #F6F6F6;
-
-				.iconsearch {
-					font-size: 50rpx;
-					color: #ffffff;
-				}
-
-				.input {
-					margin-left: 19rpx;
-					flex-grow: 1;
-					color: #666;
-					background: #F6F6F6;
-
-					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;
-		}
-	}
-
-	.shop {
-		// margin-top: 20rpx;
-		background: #ffffff;
-		padding: 0 12rpx;
-
-		.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;
-				justify-content: center;
-
-				.sitem-font {
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #333333;
-				}
-
-				.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;
-			}
-
-			.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;
-						}
-					}
-
-					.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;
-						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;
-						}
-					}
-
-					.mright-bottom {
-						margin-top: 80rpx;
-						display: flex;
-						justify-content: flex-end;
-
-						.mrb-item {
-							width: 46rpx;
-							height: 46rpx;
-							margin-left: 14rpx;
-						}
-					}
-				}
-			}
-		}
-	}
-</style>

+ 5 - 6
pages/category/category.vue

@@ -25,7 +25,7 @@ export default {
 			sizeCalcState: false,
 			tabScrollTop: 0,
 			currentId: 9,
-			flist: [],
+			flist: []
 		};
 	},
 	onLoad() {
@@ -89,7 +89,7 @@ export default {
 				}
 			).exec();
 			// 获取所有距离顶部大于滚轮距离页面高度的所有分类
-			let tabs = this.flist.filter(item =>( item.top-10) <= scrollTop).reverse();
+			let tabs = this.flist.filter(item => item.top - 10 <= scrollTop).reverse();
 			if (tabs.length > 0) {
 				// 判断是否已经到达滚轮底部
 				if (box + scrollTop + bottom >= e.detail.scrollHeight) {
@@ -120,7 +120,7 @@ export default {
 		navToList(sid, tid) {
 			// 点击导航跳转到详细页面
 			uni.navigateTo({
-				url: '/pages/product/list?fid='+this.currentId+'&sid='+sid+'&tid='+tid
+				url: '/pages/product/list?fid=' + this.currentId + '&sid=' + sid + '&tid=' + tid
 			});
 		}
 	}
@@ -153,7 +153,6 @@ page,
 	color: $font-color-base;
 	position: relative;
 	&.active {
-		color: $base-color;
 		background: #f8f8f8;
 		&:before {
 			content: '';
@@ -161,9 +160,9 @@ page,
 			left: 0;
 			top: 50%;
 			transform: translateY(-50%);
-			height: 36rpx;
+			height: 72rpx;
 			width: 8rpx;
-			background-color: $base-color;
+			background: linear-gradient(90deg, #bb9159, #e6c79d);
 			border-radius: 0 4px 4px 0;
 			opacity: 0.8;
 		}

+ 97 - 0
pages/category/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>

+ 131 - 0
pages/category/flList.vue

@@ -0,0 +1,131 @@
+<template>
+	<view class="content">
+		<view class="main">
+			<view v-for="(item, index) in list">
+				<view class="item flex" @click="navToList(item.id)">
+					<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>
+import { article } from '@/api/user.js';
+import { getTime } from '@/utils/rocessor.js';
+export default {
+	data() {
+		return {
+			list: [],
+			id:'',
+		};
+	},
+	onLoad(option) {
+		this.id = option.id
+		this.loadData();
+	},
+	methods: {
+		// 载入数据
+		async loadData() {
+			let obj = this;
+			article({page:1,limit:1000},obj.id).then(({data}) =>{
+				// this.list = data.filter(e => {
+				// 	console.log(e.id,'123456789')
+				// 	return (e.id !== 0 && e.id !== 4 )
+				// })
+				this.list = data;
+				// this.list.forEach(e =>{
+				// 	e.add_time = getTime(e.add_time)
+				// })
+			})
+		},
+		navToList(id) {
+			uni.navigateTo({
+				url: '/pages/category/detail?id=' + id
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+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;
+			background: #DC4D46;
+			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 - 28
pages/game/game.vue

@@ -1,28 +0,0 @@
-<template>
-	<view class="center">
-		<view class="kong">
-			<u-empty mode="data" text="敬请期待"></u-empty>
-		</view>
-		
-		<!-- <u-tabbar activeColor="#EE0979" v-model="current" :list="tabbar" :mid-button="true"></u-tabbar> -->
-	</view>
-</template>
-
-<script>
-import { tabbar } from '@/utils/tabbar.js';
-export default {
-	data() {
-		return {
-			tabbar: tabbar,
-			current: 2
-		};
-	}
-};
-</script>
-
-<style lang="less">
-	.kong {
-		height: 100vh;
-		width: 750rpx;
-	}
-</style>

+ 654 - 850
pages/index/index.vue

@@ -1,38 +1,43 @@
 <template>
 	<view class="container">
-		<view class="carousel-section">
-			<!-- 背景色区域 -->
-			<view class="bg"></view>
-			<!-- 标题栏和状态栏占位符 -->
-			<view class="titleNview-placing"></view>
-			<!-- 搜素栏 -->
-			<view class="search flex">
-				<view class="input-box flex" @click.stop="clickSearch">
-					<view class=" input-content flex">
-						<view class="iconfont iconsearch"></view>
-						<view class="input"><input type="text" disabled value="输入关键字搜索" /></view>
-					</view>
-				</view>
+		<view class="top-search flex">
+			<view class="search-box flex" @click="clickSearch()">
+				<image class="search" src="../../static/icon/search-h.png" mode=""></image>
+				<view class="search-font">输入关键词搜索</view>
+			</view>
+		</view>
+		<!-- 顶部logo and 搜索 end-->
+		<view class="jg"></view>
+		<!-- 轮播图 start -->
+		<swiper class="top-swiper" autoplay="true" duration="400" interval="5000" @change="swiperChange">
+			<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item" @click="bannerNavToUrl(item)"><image :src="item.pic" /></swiper-item>
+		</swiper>
+		<!-- 轮播图 end -->
+		<view class="swiper-btm flex">
+			<view class="btm-item flex">
+				<image src="../../static/icon/index-gou.png" mode=""></image>
+				<view class="">自用购物返利</view>
+			</view>
+			<view class="btm-item flex">
+				<image src="../../static/icon/index-gou.png" mode=""></image>
+				<view class="">分享好友赚钱</view>
+			</view>
+			<view class="btm-item flex">
+				<image src="../../static/icon/index-gou.png" mode=""></image>
+				<view class="">超值正品优惠</view>
 			</view>
-			<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange"
-				: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>
-				</swiper-item>
-			</swiper>
 		</view>
 		<view class="navbar">
 			<view class="navbar-box flex">
-				<view class="navbar-item" @click="navTo('/pages/product/list')">
+				<view class="navbar-item" @click="navTo('/pages/category/category')">
 					<image class="nitem-image" src="../../static/sy/sy12.png" mode=""></image>
 					<view class="nitem-font">全部分类</view>
 				</view>
-				<view class="navbar-item" @click="navTo('')">
+				<view class="navbar-item" @click="navTo('/pages/product/classify')">
 					<image class="nitem-image" src="../../static/sy/sy14.png" mode=""></image>
-					<view class="nitem-font">超值拼团</view>
+					<view class="nitem-font">热销推荐</view>
 				</view>
-				<view class="navbar-item" @click="navTo('/pages/index/sign')">
+				<view class="navbar-item" @click="navTo('/pages/index/message')">
 					<image class="nitem-image" src="../../static/sy/sy15.png" mode=""></image>
 					<view class="nitem-font">公司介绍</view>
 				</view>
@@ -43,62 +48,41 @@
 			</view>
 		</view>
 		<view class="jx-box">
-			<view class="jx-box-title">
-				<image src="../../static/sy/sy03.png" mode=""></image>
-			</view>
-			<view class="jx-box-img">
-				<image src="../../static/sy/sy09.png" mode=""></image>
-			</view>
+			<view class="jx-box-title"><image src="../../static/sy/sy03.png" mode=""></image></view>
+			<view class="jx-box-img"><image src="../../static/sy/sy09.png" mode=""></image></view>
 		</view>
-		<view class="jx-box-content">
-			<view class="content-left">
-				<image src="../../static/sy/sy15.png" mode=""></image>
-			</view>
+		<view class="jx-box-content" v-for="(item, index) in bastList">
+			<view class="content-left"><image :src="item.image" mode=""></image></view>
 			<view class="content-right">
-				<view class="shop-name">
-					测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据
-				</view>
+				<view class="shop-name">{{ item.store_name }}</view>
 				<view class="shop-content">
 					<view class="shop-content-left">
 						<view class="price-box">
-							<view class="yuan-price">
-								${{99}}
-							</view>
+							<view class="yuan-price">¥{{ item.ot_price * 1 }}</view>
 							<image src="../../static/sy/sy06.png" mode=""></image>
-							<view class="j-price">
-								直降{{40}}元
-							</view>
+							<view class="j-price">直降{{ (item.ot_price - item.price).toFixed(2) * 1 }}元</view>
 						</view>
-						<view class="price-x">
-							${{199}}
-						</view>
-					</view>
-					<view class="shop-content-right">
-						立即购买
+						<view class="price-x">¥{{ item.price * 1 }}</view>
 					</view>
+					<view class="shop-content-right" @click="navToDetailPagevip(item)">购买升级</view>
 				</view>
 			</view>
-
 		</view>
-
-		<view class="product-box" v-if="bastList.length != 0">
+		<view class="more" @click="navTo('/pages/product/vip')">
+			<view class="more-font">查看更多</view>
+			<image class="more-icon" src="../../static/img/img39.png" mode=""></image>
+		</view>
+		<view class="xian"></view>
+		<view class="product-box" v-if="shoplist.length != 0">
 			<view class="product-title">
-				<view class="bb">
-
-				</view>
+				<view class="bb"></view>
 				<view class="pt-title">猜你喜欢</view>
-				<view class="bb">
-
-				</view>
+				<view class="bb"></view>
 			</view>
 			<view class="hotgoods">
-				<view class="hotgoods-item" v-for="item in bastList" :key="item.id" @click="navToDetailPage(item)">
-					<view class="image-wrapper">
-
-						<image class="image" :src="item.image" mode="scaleToFill"></image>
-					</view>
+				<view class="hotgoods-item" v-for="item in shoplist" :key="item.id" @click="navToDetailPage(item)">
+					<view class="image-wrapper"><image class="image" :src="item.image" mode="scaleToFill"></image></view>
 					<view class="title clamp2">{{ item.store_name }}</view>
-					<view class="titlee">{{ item.store_name }}</view>
 					<view class="hot-price">
 						<!-- <view class="hotPrice-box">会员价</view> -->
 						<view class="price">
@@ -115,919 +99,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
-	} 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 { 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';
+// #endif
+export default {
+	components: {
+		seckill
+	},
+	data() {
+		return {
+			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
+		};
+	},
+	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.getvip();
+	},
+	//下拉刷新
+	onPullDownRefresh() {
+		this.loadData();
+	},
+	// #ifndef MP
+	// 监听导航栏输入框点击事件
+	onNavigationBarSearchInputClicked(e) {
+		//跳转到搜索页面
+		this.clickSearch();
+	},
 	// #endif
-	export default {
-		components: {
-			seckill
-		},
-		data() {
-			return {
-				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
+	methods: {
+		...mapMutations(['setLat', 'setLon']),
+		// #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: 'http://hjdz.liuniu946.com/index/static/img/logo.jpg'
 			};
+			console.log(data, '分享数据');
+			shareLoad(data);
 		},
-		computed: {
-			...mapState(['loginInterceptor', 'baseURL']),
-			...mapState('user', ['hasLogin', 'userInfo'])
+		// #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();
+						});
+					}
+				});
+			});
 		},
-		onLoad: function(option) {
-			this.getaddress();
-			// #ifdef MP
-			if (option.scene) {
-				// 存储小程序邀请人
-				uni.setStorage({
-					key: 'spread_code',
-					data: option.scene
+		navTo(url) {
+			if (url == '') {
+				this.$api.msg('暂未开通,敬请期待');
+			} else {
+				uni.navigateTo({
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						});
+					}
 				});
 			}
-			// #endif
-			// #ifdef H5
-			this.IndexShare();
-			//#endif
 		},
-		onShow: function() {
-			// 判断是否强制登录
-			if (!this.hasLogin) {
-				// 登录拦截
-				interceptor();
-			}
-			this.loadData();
-			this.getBargainList();
+		// 监听切换事件
+		listChange(e) {
+			this.checkid = e.detail.current;
 		},
-		//下拉刷新
-		onPullDownRefresh() {
-			this.loadData();
+		// 點擊搜索框
+		clickSearch() {
+			uni.navigateTo({
+				url: '/pages/product/search'
+			});
 		},
-		// #ifndef MP
-		// 监听导航栏输入框点击事件
-		onNavigationBarSearchInputClicked(e) {
-			//跳转到搜索页面
-			this.clickSearch();
+		// 监听图片加载完成
+		onImageError(key, index) {
+			this[key][index].image = '/static/error/errorImage.jpg';
 		},
-		//点击导航栏 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'
+		// 请求载入数据
+		async loadData() {
+			loadIndexs({})
+				.then(({ data }) => {
+					let goods = data.info;
+					this.carouselList = data.banner;
+					this.swiperLength = this.carouselList.length;
+					this.shoplist = data.likeInfo; //会员礼包
+					uni.stopPullDownRefresh();
+				})
+				.catch(e => {
+					uni.stopPullDownRefresh();
 				});
-			}
 		},
-		// #endif
-		methods: {
-			...mapMutations(['setLat', 'setLon']),
-			// #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);
-			},
-			// #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 {
-					uni.navigateTo({
-						url
-					});
-				}
-			},
-			openSubscribe: function(e) {
-				let page = e;
-				// #ifndef MP
-				uni.navigateTo({
-					url: page
-				});
-				// #endif
-				// #ifdef MP
-				uni.showLoading({
-					title: '正在加载'
-				});
-				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));
-					})
-					.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');
-					}
-				});
-			},
-			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
-					});
-				}
-			},
-			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;
-						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
-				});
-			}
+		getvip() {
+			getProducts({ cid: 52, page: 1, limit: 10 }).then(({ data }) => {
+				this.bastList = data; //会员礼包
+				console.log(this.bastList, '123456');
+			});
+		},
+		//轮播图切换修改背景色
+		swiperChange(e) {
+			const index = e.detail.current;
+			this.swiperCurrent = index;
+			this.titleNViewBackground = this.carouselList[index].background;
+		},
+		//详情页
+		navToDetailPagevip(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id + '&isVip=1'
+			});
+		},
+		navToDetailPage(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id
+			});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	.carousel-section {
-		position: relative;
-		padding-top: 10px;
+page,
+.container {
+	background: #ffffff;
+	height: auto;
+	min-height: 100%;
+}
+.top-search {
+	height: 80rpx;
+	padding: 0 20rpx;
+	background-color: #fff;
+	.search-box {
+		justify-content: center;
+		width: 698rpx;
+		height: 60rpx;
+		background: #eeeeee;
+		// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+		border-radius: 30rpx;
 
-		.bg {
-			position: absolute;
-			top: 0;
-			left: 0;
-			width: 750rpx;
-			height: 378rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
+		.search {
+			width: 34rpx;
+			height: 34rpx;
 		}
 
-		.titleNview-placing {
-			height: var(--status-bar-height);
-			box-sizing: content-box;
+		.search-font {
+			margin-left: 14rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #cbcbcb;
 		}
-
-		.search {
-			justify-content: flex-start;
-			padding: 10rpx 32rpx 20rpx;
+	}
+}
+.jg {
+	height: 20rpx;
+	background-color: #fff;
+}
+.top-swiper {
+	width: 750rpx;
+	height: 360rpx;
+	// margin: 20rpx 0 0;
+	image {
+		width: 750rpx;
+		height: 360rpx;
+	}
+}
+.swiper-btm {
+	height: 60rpx;
+	width: 750rpx;
+	background-color: #fff;
+	margin-bottom: 20rpx;
+	font-size: 21rpx;
+	font-weight: 500;
+	color: #333333;
+	.btm-item {
+		flex-grow: 1;
+		justify-content: center;
+		image {
+			width: 25rpx;
+			height: 25rpx;
+			margin-right: 14rpx;
+		}
+	}
+}
+.navbar {
+	position: relative;
+	z-index: 2;
+	padding: 0 50rpx;
+	width: 750rpx;
+	background: #ffffff;
+
+	.navbar-box {
+		padding-top: 38rpx;
+		.navbar-item {
+			display: flex;
+			flex-direction: column;
 			align-items: center;
+			width: 20%;
 
-			.address {
-				width: 32rpx;
-				height: 38rpx;
+			.nitem-image {
+				width: 90rpx;
+				height: 90rpx;
 			}
 
-			.shop-name {
-				height: 38rpx;
-				position: relative;
-				top: -4rpx;
-				z-index: 100;
-				font-size: 30rpx;
+			.nitem-font {
+				margin-top: 22rpx;
+				font-size: 26rpx;
 				font-family: PingFang SC;
 				font-weight: 500;
-				padding-left: 10rpx;
-			}
-
-			.shop-jt {
-				margin-left: 8rpx;
-				width: 16rpx;
-				height: 10rpx;
+				color: #000000;
 			}
+		}
+	}
+}
 
-			.input-box {
-				margin-left: 10rpx;
-				position: relative;
-				z-index: 99;
-				width: 710rpx;
-				height: 60rpx;
-				background: #EEEEEE;
-				border-radius: 30rpx;
-
-				.input-content {
-					position: relative;
-					z-index: 11;
-					border-radius: 99rpx;
-					flex-grow: 1;
-					padding: 5rpx 30rpx;
-					background: #EEEEEE;
-					.iconsearch {
-						font-size: 50rpx;
-						color: #CBCBCB;
-					}
+.jx-box {
+	background: #fff;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	width: 750rpx;
 
-					.input {
-						margin-left: 19rpx;
-						flex-grow: 1;
-						color: #CBCBCB;
-						input {
-							font-size: 28rpx;
+	.jx-box-title {
+		margin: 50rpx 0;
+		width: 610rpx;
+		height: 30rpx;
 
-							color: #CBCBCB;
-						}
-					}
-				}
-
-				.input-button {
-					padding-left: 20rpx;
-					font-size: $font-base;
-					height: 100%;
-				}
-			}
+		image {
+			width: 100%;
+			height: 100%;
 		}
 	}
 
-	.carousel {
-		position: relative;
-		z-index: 3;
-		width: 100%;
-		height: 360rpx;
+	.jx-box-img {
+		width: 750rpx;
+		height: 220rpx;
 
-		.carousel-item {
+		image {
 			width: 100%;
 			height: 100%;
-			padding: 0 28rpx;
-			overflow: hidden;
 		}
-
+	}
+}
+
+.jx-box-content {
+	margin: 20rpx auto 0;
+	display: flex;
+	width: 710rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	padding: 20rpx 30rpx 20rpx 14rpx;
+	.content-left {
+		flex-shrink: 0;
+		width: 236rpx;
+		height: 236rpx;
+		background: #e2e2e2;
+		border-radius: 10rpx;
 		image {
 			width: 100%;
 			height: 100%;
-			border-radius: $border-radius-sm;
 		}
 	}
 
-	.navbar {
-		position: relative;
-		z-index: 2;
-		padding: 0 50rpx;
-		margin-top: -200rpx;
-		width: 750rpx;
-		height: 420rpx;
-		background: #ffffff;
-		border-radius: 40rpx;
+	.content-right {
+		width: 100%;
+		margin-left: 20rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
 
-		.navbar-box {
-			padding-top: 250rpx;
+		.shop-name {
+			width: 382rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #333333;
 
-			.navbar-item {
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
+		}
+
+		.shop-content {
+			display: flex;
+			justify-content: space-between;
+
+			.shop-content-left {
 				display: flex;
 				flex-direction: column;
-				align-items: center;
-				width: 20%;
 
-				.nitem-image {
-					width: 90rpx;
-					height: 90rpx;
+				.price-box {
+					display: flex;
+					align-items: center;
+					.yuan-price {
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
+					}
+
+					image {
+						margin-left: 8rpx;
+						width: 16rpx;
+						height: 18rpx;
+					}
+
+					.j-price {
+						margin-left: 8rpx;
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #b59467;
+					}
 				}
 
-				.nitem-font {
-					margin-top: 22rpx;
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #000000;
+				.price-x {
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #ff4c4c;
 				}
 			}
-		}
-
 
+			.shop-content-right {
+				margin-top: 20rpx;
+				align-items: center;
+				text-align: center;
+				width: 137rpx;
+				height: 52rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #ffffff;
+				background: linear-gradient(90deg, #bb9159, #e6c79d);
+				border-radius: 26rpx;
+				line-height: 52rpx;
+			}
+		}
 	}
-
-	.jx-box {
-		background: #fff;
+}
+.more {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	height: 104rpx;
+	.more-font {
+		margin-left: 10rpx;
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #999999;
+	}
+	.more-icon {
+		width: 16rpx;
+		height: 28rpx;
+	}
+}
+.xian {
+	height: 20rpx;
+	background: #eeeeee;
+}
+
+.product-box {
+	margin-top: 20rpx;
+	background: #ffffff;
+	padding: 26rpx 30rpx 20rpx;
+
+	.product-title {
 		display: flex;
-		flex-direction: column;
 		align-items: center;
-		width: 750rpx;
+		justify-content: center;
 
-		.jx-box-title {
-			margin: 50rpx 0;
-			width: 610rpx;
-			height: 30rpx;
+		.pt-image {
+			width: 36rpx;
+			height: 36rpx;
+		}
 
-			image {
-				width: 100%;
-				height: 100%;
-			}
+		.bb {
+			width: 120rpx;
+			height: 1rpx;
+			background: #989898;
 		}
 
-		.jx-box-img {
-			width: 750rpx;
-			height: 220rpx;
+		.pt-title {
+			margin: 0 28rpx;
+			font-size: 30rpx;
+			font-weight: 500;
+			color: #363636;
+		}
 
-			image {
-				width: 100%;
-				height: 100%;
-			}
+		.pt-tip {
+			margin-left: 16rpx;
+			font-size: 20rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #95a0b1;
 		}
 	}
 
-	.jx-box-content {
+	.hotgoods {
+		margin-top: 38rpx;
+		width: 100%;
 		display: flex;
-		.content-left {
-			margin: 20rpx 15rpx;
-			width: 236rpx;
-			height: 236rpx;
-			background: #E2E2E2;
-			border-radius: 10rpx;
-			image {
+		flex-wrap: wrap;
+		padding: 0 0 30rpx;
+
+		.hotgoods-item {
+			width: 44%;
+			background: #ffffff;
+			margin: 20rpx;
+			box-shadow: 0px 0px 20px 0px rgba(50, 50, 52, 0.06);
+			border-radius: 10px;
+
+			.image-wrapper {
 				width: 100%;
-				height: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;
+				}
+
+				.image {
+					width: 100%;
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+				}
 			}
-		}
 
-		.content-right {
-			display: flex;
-			flex-direction: column;
-			justify-content: space-around;
-			
-			.shop-name {
-				width: 382rpx;
-				font-size: 32rpx;
-				font-weight: bold;
+			.title {
+				margin-left: 15rpx;
+				margin-top: 20rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
 				color: #333333;
-				
+			}
+
+			.titlee {
+				margin-left: 15rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #666666;
+				white-space: nowrap;
 				overflow: hidden;
 				text-overflow: ellipsis;
-				display:-webkit-box;
-				-webkit-box-orient:vertical;
-				-webkit-line-clamp:2;
 			}
 
-			.shop-content {
+			.hot-price {
 				display: flex;
-				justify-content: space-between;
-				
-				.shop-content-left {
-					display: flex;
-					flex-direction: column;
-					
-					
-					
-					.price-box {
-						display: flex;
-						align-items: center;
-						.yuan-price {
-							font-size: 26rpx;
-							font-weight: 500;
-							text-decoration: line-through;
-							color: #999999;
-						}
-
-						image {
-							width: 16rpx;
-							height: 18rpx;
-						}
+				justify-content: flex-start;
+				align-items: center;
+				padding: 14rpx 0 30rpx;
 
-						.j-price {
-							font-size: 24rpx;
-							font-weight: bold;
-							color: #B59467;
-						}
-					}
+				.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-weight: 400;
+					color: #ffffff;
+				}
 
-					.price-x {
-						font-size: 36rpx;
-						font-weight: bold;
-						color: #FF4C4C;
-					}
+				.price {
+					margin-left: 10rpx;
+					font-size: 36rpx;
+					color: #ff0000;
+					font-weight: 500;
 				}
 
-				.shop-content-right {
-					margin-top:20rpx ;
-					align-items: center;
-					text-align: center;
-					width: 137rpx;
-					height: 52rpx;
-					font-size: 26rpx;
+				.yuanPrice {
+					margin-left: 10rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
 					font-weight: 500;
-					color: #F8DABA;
-					background: #303030;
-					border-radius: 26rpx;
-					line-height: 52rpx;
+					text-decoration: line-through;
+					color: #999999;
+				}
+
+				.cart-icon {
+					image {
+						width: 44rpx;
+						height: 44rpx;
+					}
 				}
 			}
 		}
 	}
+}
+
+.shop {
+	margin-top: 20rpx;
+	background: #ffffff;
+	padding: 0 12rpx;
 
-	.product-box {
-		margin-top: 20rpx;
-		background: #ffffff;
-		padding: 26rpx 30rpx 20rpx;
+	.shop-title {
+		padding: 30rpx 0 20rpx;
+		display: flex;
+		align-items: center;
+		border-bottom: 1px solid #e3e6e7;
 
-		.product-title {
+		.shop-item {
+			width: 25%;
 			display: flex;
 			align-items: center;
 			justify-content: center;
 
-
-			.pt-image {
-				width: 36rpx;
-				height: 36rpx;
-			}
-
-			.bb {
-				width: 120rpx;
-				height: 1rpx;
-				background: #989898;
-			}
-
-			.pt-title {
-				margin: 0 28rpx;
-				font-size: 30rpx;
-				font-weight: 500;
-				color: #363636;
-			}
-
-			.pt-tip {
-				margin-left: 16rpx;
-				font-size: 20rpx;
+			.sitem-font {
+				font-size: 26rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
-				color: #95a0b1;
+				color: #333333;
+			}
+
+			.jt-down {
+				width: 10rpx;
+				height: 8rpx;
+				margin-left: 12rpx;
 			}
 		}
+	}
+}
 
-		.hotgoods {
-			margin-top: 38rpx;
-			width: 100%;
-			display: flex;
-			flex-wrap: wrap;
-			padding: 0 0 30rpx;
+.shop-main {
+	padding: 32rpx 18rpx 0 12rpx;
+	align-items: flex-start;
+	justify-content: flex-start;
 
-			.hotgoods-item {
-				width: 44%;
-				background: #FFFFFF;
-				margin: 20rpx;
-				box-shadow: 0px 0px 20px 0px rgba(50, 50, 52, 0.06);
-				border-radius: 10px;
+	.main-left {
+		width: 180rpx;
+		height: 180rpx;
+		border-radius: 10rpx;
+	}
 
-				.image-wrapper {
-					width: 100%;
-					height: 330rpx;
-					border-radius: 3px;
-					overflow: hidden;
-					position: relative;
+	.main-right {
+		width: 500rpx;
+		justify-content: space-between;
+		align-items: flex-start;
+		margin-left: 20rpx;
+		padding: 13rpx 0 35rpx;
+		border-bottom: 1px solid #eaeced;
 
-					.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;
-					}
+		.shopm-info {
+			max-width: 60%;
+			line-height: 1;
 
-					.image {
-						width: 100%;
-						height: 100%;
-						opacity: 1;
-						border-radius: 12rpx 12rpx 0 0;
-					}
-				}
+			.shopm-title {
+				display: flex;
+				justify-content: flex-start;
 
-				.title {
-					margin-top: 20rpx;
-					font-size: 28rpx;
+				.shopmt-font {
+					font-size: 34rpx;
 					font-family: PingFang SC;
-					font-weight: 500;
+					font-weight: bold;
 					color: #333333;
 				}
 
-				.titlee {
-					margin-left: 15rpx;
-					font-size: 26rpx;
+				.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: #666666;
-					white-space: nowrap;
-					overflow: hidden;
-					text-overflow: ellipsis;
-
+					color: #ff4c4c;
+					text-align: center;
+					line-height: 30rpx;
 				}
+			}
 
-				.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-weight: 400;
-						color: #ffffff;
-					}
-
-					.price {
-						margin-left: 10rpx;
-						font-size: 36rpx;
-						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;
-					}
+			.address {
+				margin-top: 16rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+			}
 
-					.cart-icon {
-						image {
-							width: 44rpx;
-							height: 44rpx;
-						}
-					}
-				}
+			.shopmt-tip {
+				position: relative;
+				display: inline-block;
+				flex-grow: 0;
+				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;
 			}
 		}
-	}
 
-	.shop {
-		margin-top: 20rpx;
-		background: #ffffff;
-		padding: 0 12rpx;
-
-		.shop-title {
-			padding: 30rpx 0 20rpx;
+		.right {
+			height: 100%;
+			margin-top: 5rpx;
 			display: flex;
-			align-items: center;
-			border-bottom: 1px solid #e3e6e7;
+			flex-direction: column;
 
-			.shop-item {
-				width: 25%;
+			.mright-top {
 				display: flex;
+				justify-content: flex-end;
 				align-items: center;
-				justify-content: center;
 
-				.sitem-font {
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #333333;
+				.mrt-image {
+					width: 20rpx;
+					height: 28rpx;
 				}
 
-				.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;
-		}
-
-		.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;
-					}
-				}
-
-				.address {
-					margin-top: 16rpx;
-					font-size: 24rpx;
+				.mrt-font {
+					margin-left: 8rpx;
+					font-size: 22rpx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #666666;
 				}
-
-				.shopmt-tip {
-					position: relative;
-					display: inline-block;
-					flex-grow: 0;
-					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;
+			.mright-bottom {
+				margin-top: 80rpx;
 				display: flex;
-				flex-direction: column;
-
-				.mright-top {
-					display: flex;
-					justify-content: flex-end;
-					align-items: center;
-
-					.mrt-image {
-						width: 20rpx;
-						height: 28rpx;
-					}
+				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>

+ 56 - 0
pages/index/message.vue

@@ -0,0 +1,56 @@
+<template>
+	<view class="center">
+		<view class="massage" v-for="(item, index) in list" :key="index" @click="nav('/pages/index/messageInfo?id=' + item.id)">
+			<view class="title">{{ item.title }}</view>
+			<view class="time">{{ item.add_time }}</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { article } from '@/api/user.js';
+export default {
+	data() {
+		return {
+			list: []
+		};
+	},
+	onLoad(opt) {
+		let obj = this;
+		article({ page: 1, limit: 1000 }, 1).then(({ data }) => {
+			this.list = data;
+		});
+	},
+	methods: {
+		nav(url) {
+			uni.navigateTo({
+				url
+			});
+		}
+	}
+};
+</script>
+
+<style lang="less">
+.center {
+	background: #f3f3f3;
+}
+.massage {
+	background: #ffffff;
+	padding: 30rpx;
+	border-bottom: 1px solid #e9e9e9;
+	.title {
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #333333;
+	}
+	.time {
+		margin-top: 18rpx;
+		font-size: 20rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #999999;
+	}
+}
+</style>

+ 98 - 0
pages/index/messageInfo.vue

@@ -0,0 +1,98 @@
+<template>
+	<view class="center">
+		<view class="title clamp">{{ item.title }}</view>
+		<view class="tip flex">
+			<view class="tip-left">作者:{{item.author}}</view>
+			<view class="tip-right">{{item.add_time}}</view>
+		</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="less">
+.center {
+	width: 100%;
+	height: 100%;
+}
+.title {
+	padding: 30rpx 30rpx 0 24rpx;
+	font-size: 32rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #333333;
+
+}
+.tip {
+	padding: 38rpx 32rpx 28rpx 24rpx;
+	font-size: 24rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #666666;
+	border-bottom: 1px solid #E9E9E9;
+}
+/deep/ .main {
+	.rich-img {
+		width: 100% !important;
+		height: auto;
+	}
+}
+</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>

+ 1 - 63
pages/money/pay.vue

@@ -28,22 +28,6 @@
 				</view>
 				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 3"></radio></label>
 			</view>
-			<view class="type-item" @click="changePayType(5)">
-				<image class="cash-icon" src="../../static/icon/mygx.png" mode=""></image>
-				<view class="con">
-					<text class="tit">现金支付</text>
-					<text>可用现金 {{ userInfo.cash }}</text>
-				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 5"></radio></label>
-			</view>
-			<view class="type-item" @click="changePayType(4)" v-if="isP == 1">
-				<text class="icon iconfont iconyue"></text>
-				<view class="con">
-					<text class="tit">拼团积分</text>
-					<text>可用余额 {{ userInfo.pink_integral }}</text>
-				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 4"></radio></label>
-			</view>
 		</view>
 		<text class="mix-btn" :class="{ clickbg: payLoding }" @click="!payLoding ? confirm() : ''">确认支付</text>
 	</view>
@@ -142,12 +126,6 @@ export default {
 			if (this.payType == 3) {
 				this.payName = 'yue';
 			}
-			if (this.payType == 4) {
-				this.payName = 'pink_integral';
-			}
-			if (this.payType == 5) {
-				this.payName = 'cash';
-			}
 		},
 		// 支付金额
 		orderMoneyPay() {
@@ -174,20 +152,6 @@ export default {
 							obj.$api.msg(msg);
 						}
 					}
-					if (obj.payName == 'pink_integral' && e.data.status == 'SUCCESS') {
-						if (e.status == 200) {
-							obj.paySuccessTo();
-						} else {
-							obj.$api.msg(msg);
-						}
-					}
-					if (obj.payName == 'cash' && e.data.status == 'SUCCESS') {
-						if (e.status == 200) {
-							obj.paySuccessTo();
-						} else {
-							obj.$api.msg(msg);
-						}
-					}
 					if (obj.payName == 'weixin' || obj.payName == 'routine') {
 						let da = e.data.result.jsConfig;
 						let data = {
@@ -245,32 +209,6 @@ export default {
 				title: '支付中',
 				mask: true
 			});
-			// 判断是否拼团积分不足
-			if (obj.payName == 'pink_integral' && +obj.userInfo.pink_integral < obj.money) {
-				uni.showModal({
-					title: '提示',
-					content: '拼团积分不足!',
-					showCancel: false,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-				uni.hideLoading();
-				return;
-			}
-			// 判断是否拼团积分不足
-			if (obj.payName == 'cash' && +obj.userInfo.cash < obj.money) {
-				uni.showModal({
-					title: '提示',
-					content: '现金不足!',
-					showCancel: false,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-				uni.hideLoading();
-				return;
-			}
 			// 判断是否余额不足
 			if (obj.payName == 'yue' && +obj.now_money < obj.money) {
 				uni.showModal({
@@ -323,7 +261,7 @@ export default {
 				from: 'app', //来源
 				// #endif
 				shipping_type: prepage.tabCurrentIndex + 1, //提货方式 1 快递 2自提
-				store_id: prepage.tabCurrentIndex == 1 ? prepage.shopAddress.id : '',
+				store_id: prepage.tabCurrentIndex == 1 ? prepage.shopAddress.id : ''
 			};
 			// 判断是否拼团商品
 			if (obj.pinkid) {

+ 5 - 6
pages/money/recharge.vue

@@ -277,7 +277,7 @@ page {
 			}
 		}
 		.seletPrice {
-			background: linear-gradient(143.2747deg, #ff6a00, #ee0979);
+			background: linear-gradient(90deg, #bb9159, #e6c79d);
 			color: #ffffff;
 		}
 	}
@@ -378,10 +378,9 @@ page {
 }
 .add-btn {
 	&.modified {
-		
 	}
 	&.up {
-		color: #F21F5D;
+		color: #fff;
 	}
 	margin-top: 100rpx;
 	display: flex;
@@ -389,12 +388,12 @@ page {
 	justify-content: center;
 	width: 604rpx;
 	height: 90rpx;
-	border: 2rpx solid #F21F5D;
+	background: linear-gradient(90deg, #bb9159, #e6c79d);
 	border-radius: 10rpx;
 	font-size: 36rpx;
 	font-family: PingFang SC;
 	font-weight: 500;
-	color: #F21F5D;
+	color: #fff;
 	line-height: 90rpx;
 	text-align: center;
 }
@@ -480,6 +479,6 @@ page {
 
 .active-bg {
 	background: linear-gradient(143.2747deg, #ff6a00, #ee0979) !important;
-	color: #FFFFFF !important;
+	color: #ffffff !important;
 }
 </style>

+ 40 - 38
pages/money/wallet.vue

@@ -4,31 +4,27 @@
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的易货券</view>
+				<view class="header">我的钱包</view>
 			</view>
-			<view class="content-bg"><image src="../../static/img/myyue.png" mode=""></image></view>
+			<view class="content-bg"><image src="../../static/img/my-bg.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{money | getMoneyStyle}}</view>
-				<view>我的易货券</view>
+				<view class="money">{{ money | getMoneyStyle }}</view>
+				<view>余额</view>
 			</view>
-			<view class="moneybtn-box">
-				<view class="money-btn" @click="navto('/pages/money/withdmoenys?type=yue')">
-					易货券转账
-				</view>
-				<view class="money-btn" @click="navto('/pages/money/recharge')">
-					易货券充值
-				</view>
+			<view class="money-btn" @click="navto('/pages/money/recharge')">
+				余额充值
+				<text>></text>
 			</view>
 		</view>
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge}}</view>
+				<view class="info-num">{{ recharge }}</view>
 			</view>
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum}}</view>
+				<view class="info-num">{{ orderStatusSum }}</view>
 			</view>
 		</view>
 		<view class="navbar">
@@ -39,7 +35,7 @@
 				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
 					<!-- 空白页 -->
 					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-	
+
 					<!-- 订单列表 -->
 					<view>
 						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
@@ -95,7 +91,7 @@ export default {
 		return {
 			height: '',
 			// 头部图高度
-			maxheight:'',
+			maxheight: '',
 			tabCurrentIndex: 0,
 			orderStatusSum: 0,
 			recharge: 0,
@@ -145,7 +141,7 @@ export default {
 		},
 		//获取收入支出信息
 		async loadData(source) {
-			let obj = this
+			let obj = this;
 			//这里是将订单挂载到tab列表下
 			let index = this.tabCurrentIndex;
 			let navItem = this.navList[index];
@@ -169,24 +165,26 @@ export default {
 				state
 			)
 				.then(({ data }) => {
-					console.log(data,'1');
-					console.log(JSON.stringify(data),'2')
-					
-					obj.recharge = data.income;
-					obj.orderStatusSum = data.expend;
-					if (data.list.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data.list[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}else {
-						navItem.loadingType = 'noMore';
-					}
-					if (navItem.limit == data.list[0].list.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
+					obj.recharge = data.sr;
+					obj.orderStatusSum = data.zc;
+					if (data.data.length != 0) {
+						console.log(data.data[0].list, '1');
+						if (data.data[0].list.length > 0) {
+							navItem.orderList = navItem.orderList.concat(data.data[0].list);
+							console.log(navItem.orderList);
+							navItem.page++;
+						} else {
+							navItem.loadingType = 'noMore';
+						}
+						if (navItem.limit == data.data[0].list.length) {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'noMore';
+						}
 					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
 						navItem.loadingType = 'noMore';
 					}
 					uni.hideLoading();
@@ -323,17 +321,21 @@ page {
 		font-size: 30rpx;
 	}
 }
-.moneybtn-box {
-	display: flex;
-	justify-content: space-between;
+.money-btn {
 	position: relative;
 	z-index: 2;
 	color: #ffffff;
-	padding:20rpx 50rpx ;
+	padding-right: 50rpx;
+	text-align: right;
 	font-size: 30rpx;
 	font-family: PingFang SC;
 	font-weight: bold;
-	color: #FFFFFF;
+	color: #ffffff;
+
+	text {
+		display: inline-block;
+		padding-left: 10rpx;
+	}
 }
 
 .navbar {

+ 0 - 328
pages/money/withdmoenys.vue

@@ -1,328 +0,0 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="flex" v-if="type == 'xl'">
-				<view class="buttom">
-					<view class="icon">{{ userInfo.integral | getMoneyStyle }}</view>
-					<text class="text">可用响亮积分</text>
-				</view>
-			</view>
-			<view class="flex" v-if="type == 'yue'">
-				<view class="buttom">
-					<view class="icon">{{ userInfo.now_money | getMoneyStyle }}</view>
-					<text class="text">可用余额</text>
-				</view>
-			</view>
-			<view class="flex" v-if="type == 'cash'">
-				<view class="buttom">
-					<view class="icon">{{ userInfo.cash | getMoneyStyle }}</view>
-					<text class="text">可用现金</text>
-				</view>
-			</view>
-		</view>
-		<view class="row-box">
-			<view class="title">收款人手机号</view>
-			<view class="row"><input class="input" type="number" v-model="card" placeholder="请输入收款人手机号" placeholder-class="placeholder" /></view>
-		</view>
-		<view class="row-box">
-			<view class="title">转账金额</view>
-			<view class="row">
-				<!-- <text class="tit">¥</text> -->
-				<input class="input" type="number" v-model="withdrawal" placeholder="转入金额" placeholder-class="placeholder" />
-				<view class="buttom" v-if="type == 'xl'" @click="withdrawal = userInfo.integral">全部转账</view>
-				<view class="buttom" v-if="type == 'yue'" @click="withdrawal = userInfo.now_money">全部转账</view>
-				<view class="buttom" v-if="type == 'cash'" @click="withdrawal = userInfo.cash">全部转账</view>
-			</view>
-		</view>
-		<view class="tip" v-if="withdrawal != 0 && type == 'xl'">实际转入{{ realmoney }}响亮积分,{{ gy }}响亮积分流入公益池</view>
-
-		<button class="add-btn up" :class="{ action: loding }" @click="!loding ? confirm() : ''">提交申请</button>
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { getUserInfo, transfer, yuetransfer, cashtransfer } from '@/api/user.js';
-import { mapMutations, mapState } from 'vuex';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	data() {
-		return {
-			money: '0.00', //可提现金额
-			withdrawal: '', //提现金额
-			password: '', //支付密码
-			card: '', //转账卡号
-			name: '',
-			// #ifdef H5
-			weichatBsrowser: false,
-			// #endif
-			loding: false,
-			type: 'xl'
-		};
-	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		this.dataUp();
-		if (options.type) {
-			this.type = options.type;
-			console.log(this.type);
-		}
-	},
-	computed: {
-		...mapState('user', ['userInfo']),
-		realmoney() {
-			return (this.withdrawal * 0.9).toFixed(2) * 1;
-		},
-		gy() {
-			return (this.withdrawal * 0.08).toFixed(2) * 1;
-		}
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'login']),
-		// 更新数据
-		dataUp() {
-			let obj = this;
-			getUserInfo({})
-				.then(e => {
-					obj.login();
-					// 保存返回用户数据
-					obj.setUserInfo(e.data);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let obj = this;
-			obj.loding = true;
-			if (obj.withdrawal == 0) {
-				obj.loding = false;
-				uni.showModal({
-					title: '提示',
-					content: '转账金额不要为0'
-				});
-				return;
-			}
-			if (obj.card == obj.userInfo.phone) {
-				obj.loding = false;
-				uni.showModal({
-					title: '提示',
-					content: '不要输入自己的用户账号'
-				});
-			} else {
-				let data = {
-					to_user_account: obj.card, //编号
-					num: obj.withdrawal //金额
-				};
-				if (obj.type == 'xl') {
-					transfer(data)
-						.then(e => {
-							// 允许按钮点击
-							obj.loding = false;
-							// 初始化提现金额
-							obj.withdrawal = '';
-							uni.showToast({
-								title: '提交成功',
-								duration: 2000,
-								position: 'top'
-							});
-							obj.dataUp();
-						})
-						.catch(e => {
-							obj.$api.msg(e.msg);
-							obj.loding = false;
-							console.log();
-						});
-				}
-				if (obj.type == 'yue') {
-					yuetransfer(data)
-						.then(e => {
-							// 允许按钮点击
-							obj.loding = false;
-							// 初始化提现金额
-							obj.withdrawal = '';
-							uni.showToast({
-								title: '提交成功',
-								duration: 2000,
-								position: 'top'
-							});
-							obj.dataUp();
-						})
-						.catch(e => {
-							obj.$api.msg(e.msg);
-							obj.loding = false;
-							console.log();
-						});
-				}
-				if (obj.type == 'cash') {
-					cashtransfer(data)
-						.then(e => {
-							// 允许按钮点击
-							obj.loding = false;
-							// 初始化提现金额
-							obj.withdrawal = '';
-							uni.showToast({
-								title: '提交成功',
-								duration: 2000,
-								position: 'top'
-							});
-							obj.dataUp();
-						})
-						.catch(e => {
-							obj.$api.msg(e.msg);
-							obj.loding = false;
-							console.log();
-						});
-				}
-			}
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.content-money {
-	padding: 30rpx 0;
-	background: #ffffff;
-}
-
-.item {
-	padding: 0 $page-row-spacing;
-	background-color: #ffffff;
-}
-.flex {
-	background-color: #ffffff;
-	text-align: center;
-	margin: 0 30rpx;
-	border-radius: $border-radius-sm;
-	justify-content: center;
-	.buttom {
-		font-size: $font-lg;
-		width: 50%;
-	}
-	.interval {
-		width: 2px;
-		height: 60rpx;
-		background-color: #eeeeee;
-	}
-	.icon {
-		background-size: 100%;
-		font-size: 42rpx;
-		color: $font-color-dark;
-		font-weight: bold;
-		background-repeat: no-repeat;
-		background-position: center;
-	}
-	.text {
-		color: $font-color-light;
-	}
-}
-
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.iconlocation {
-			font-size: 36rpx;
-			color: $font-color-light;
-		}
-
-		.buttom {
-			color: #f21f5d;
-			font-size: $font-base;
-		}
-	}
-}
-.add-btn {
-	width: 520rpx;
-	height: 80rpx;
-	border: 2rpx solid #f21f5d;
-	border-radius: 40rpx;
-	margin: 140rpx auto;
-	font-family: PingFang SC;
-	font-weight: bold;
-	color: #f21f5d;
-}
-.name {
-	background: #fff;
-	padding: 30rpx;
-}
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-			.icon-img {
-				height: 50rpx;
-				width: 50rpx;
-			}
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-.tip {
-	padding: 20rpx;
-	color: #ff0000;
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-</style>

+ 164 - 50
pages/money/withdrawal.vue

@@ -1,31 +1,98 @@
 <template>
 	<view class="content">
+		<!-- <uni-notice-bar single="true" text="实际到账98%"></uni-notice-bar> -->
 		<view class="content-money">
-			<view class="flex ">
+			<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">可转换金额</text>
+					<view class="icon">{{ userInfo.cash | getMoneyStyle }}</view>
+					<text class="text">可提现现金</text>
 				</view>
 			</view>
 		</view>
+
 		<view class="row-box">
-			<view class="title">转换金额</view>
+			<view class="title">提现金额</view>
 			<view class="row">
 				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" placeholder="请输入消费券数量" placeholder-class="placeholder" />
-				<view class="buttom" @click="withdrawal = money">全部转换</view>
+				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = userInfo.cash">全部提现</view>
 			</view>
 		</view>
-		<button class="add-btn up" @click="confirm">提交申请</button>
-		<view class="tip" v-if="withdrawal != 0">
-			实际到账{{ realmoney }}现金,{{ gy }}响亮积分
+		<!-- #ifndef MP-WEIXIN -->
+		<view class="list">
+			<radio-group @change="tabRadio">
+				<!-- <label>
+					<view class="box">
+						<view class="icon iconfont iconweixin1"></view>
+						<view class="title-box">
+							<view class="title"><text>提现至微信</text></view>
+						</view>
+						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
+					</view>
+				</label> -->
+				<label>
+					<view class="box">
+						<view class="icon iconfont iconzhifubao"></view>
+						<view class="title-box">
+							<view class="title">
+								<text v-if="aliData.fullname">提现至支付宝</text>
+								<text v-else>请创建支付宝账号</text>
+							</view>
+							<view class="node">
+								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
+							</view>
+						</view>
+						<view class="right"><radio value="alipay" color="#c29963" :checked="type == 'alipay'" /></view>
+					</view>
+				</label>
+				<label>
+					<view class="box">
+						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
+						<view class="title-box">
+							<view class="title">
+								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
+								<text v-else>请创建银行账号</text>
+							</view>
+							<view class="node">
+								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
+							</view>
+						</view>
+						<view class="right"><radio value="bank" color="#c29963" :checked="type == 'bank'" /></view>
+					</view>
+				</label>
+			</radio-group>
+		</view>
+		<!-- #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" />
+		</view>
+		<view class="row b-b" v-if="type == 'alipay'">
+			<text class="tit">支付宝姓名</text>
+			<input class="input" type="text" v-model="alipay_name" placeholder="请输入支付宝姓名" placeholder-class="placeholder" />
+		</view>
+		<view 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" />
 		</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" />
+		</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" />
+		</view>
+		<button class="add-btn up" @click="confirm">提交申请</button>
+		<!-- <button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button> -->
 	</view>
 </template>
 
 <script>
 import { getMoneyStyle } from '@/utils/rocessor.js';
-import { exchangeCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.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: {
@@ -34,13 +101,23 @@ export default {
 	components: {
 		uniNoticeBar
 	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
 	data() {
 		return {
-			type: 'weixin', //提现方式
+			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
@@ -52,41 +129,16 @@ export default {
 		// #endif
 		//加载提现信息
 		this.loadData();
-		// 加载提款账号信息
-		this.loadAli();
-		this.loadBank();
-	},
-	computed:{
-		realmoney() {
-			return (this.withdrawal * 0.7).toFixed(2) * 1
-		},
-		gy() {
-			return (this.withdrawal * 0.3).toFixed(2) * 1
-		}
+		// // 加载提款账号信息
+		// this.loadAli();
+		// this.loadBank();
 	},
 	methods: {
-		// 更新数据
-		dataUp(){
-			this.loadAli();
-			this.loadBank();
-		},
-		//加载数据
-		async loadAli(source) {
-			aliInfo({}).then(e => {
-				this.aliData = e.data;
-			});
-		},
-		// 加载银行卡信息
-		async loadBank() {
-			bankInfo({}).then(e => {
-				this.bankData = e.data;
-			});
-		},
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
 		// 加载余额信息
 		async loadData() {
 			extractBank({}).then(({ data }) => {
-				this.money = data.commissionCount;//可提现余额
-				this.minPrice = data.minPrice;//最小提现
+				this.minPrice = data.minPrice;
 			});
 		},
 		// 跳转
@@ -102,10 +154,49 @@ export default {
 		// 提交
 		confirm() {
 			let data = {
+				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
 				money: this.withdrawal, //金额
+				money_type: 0 //0佣金1余额
+			};
+			if (this.withdrawal % 100 != 0) {
+				uni.showToast({
+					title: '提现金额为100的倍数',
+					duration: 2000,
+					mask: false,
+					icon: 'none'
+				});
+				return;
+			}
+			if (this.withdrawal < this.minPrice) {
+				uni.showToast({
+					title: '提现金额不可少于' + this.minPrice,
+					duration: 2000,
+					mask: false,
+					icon: 'none'
+				});
+				return;
 			}
-			exchangeCash(data)
+			if (this.type == 'alipay') {
+				console.log('alipay');
+				data.name = this.alipay_name;
+				data.alipay_code = this.alipay_code;
+			}
+			if (this.type == 'bank') {
+				console.log(bank);
+				data.name = this.bank_people;
+				data.bankname = this.bank_name;
+				data.cardnum = this.bank_code;
+			}
+
+			extractCash(data)
 				.then(e => {
+					getUserInfo({})
+						.then(({ data }) => {
+							this.setUserInfo(data);
+						})
+						.catch(e => {
+							console.log(e);
+						});
 					uni.showToast({
 						title: '提交成功',
 						duration: 2000,
@@ -134,9 +225,8 @@ page {
 	margin: 0 30rpx;
 	border-radius: $border-radius-sm;
 	.buttom {
-		width: 100%;
-		text-align: center;
 		font-size: $font-lg;
+		width: 50%;
 	}
 	.interval {
 		width: 2px;
@@ -193,10 +283,10 @@ page {
 }
 .add-btn {
 	&.modified {
-		color: $base-color;
+		color: #ffffff;
 	}
 	&.up {
-		background-color: $base-color;
+		background: linear-gradient(90deg, #bb9159, #e6c79d);
 		color: #fff;
 	}
 	display: flex;
@@ -249,12 +339,36 @@ page {
 		}
 	}
 }
-.tip {
-	padding: 20rpx 40rpx;
-	color: #FD3B39;
-}
 /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;
+	}
+	.input {
+		flex: 1;
+		font-size: 30upx;
+		color: $font-color-dark;
+	}
+	.iconlocation {
+		font-size: 36upx;
+		color: $font-color-light;
+	}
+}
+.tip {
+	padding: 20rpx;
+	color: #fd3b39;
+}
 </style>

+ 22 - 47
pages/order/createOrder.vue

@@ -1,8 +1,8 @@
 <template>
 	<view>
-		<view class="navbar">
+		<!-- <view class="navbar">
 			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
+		</view> -->
 
 		<!-- 地址 -->
 		<navigator v-if="tabCurrentIndex == 0" url="/pages/set/address?source=1" class="address-section">
@@ -93,10 +93,10 @@
 				<text class="cell-tit clamp">优惠金额</text>
 				<text class="cell-tip red">-¥35</text>
 			</view> -->
-			<!-- <view class="yt-list-cell b-b">
-				<text class="cell-tit clamp">积分抵扣{{ '(当前积分:' + integralAll + ')' }}</text>
+			<view class="yt-list-cell b-b" v-if="shopList[0].product_id != 2 && shopList[0].product_id != 1">
+				<text class="cell-tit clamp">抵扣券抵扣{{ '(当前抵扣券:' + integralAll + ')' }}</text>
 				<view class="cell-tip"><radio @click="checkedPoints = !checkedPoints" color=" #5dbc7c" :checked="checkedPoints" /></view>
-			</view> -->
+			</view>
 			<view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">运费</text>
 				<text class="cell-tip">{{ Postage }}</text>
@@ -164,7 +164,7 @@
 </template>
 
 <script>
-import { confirm,computedOrderkey,couponsOrder } from '@/api/order.js';
+import { confirm, computedOrderkey, couponsOrder } from '@/api/order.js';
 import { userinfo } from '@/api/user.js';
 import { cartAdd } from '@/api/product.js';
 export default {
@@ -226,13 +226,13 @@ export default {
 			integralMoney: 0, //积分抵扣金额
 			integralShow: false, //是否显示积分抵扣金额
 			payType: true, //是否可支付
-			pinkid: '' ,//保存拼团商品id
-			isP: 0,
+			pinkid: '', //保存拼团商品id
+			isP: 0
 		};
 	},
 	onLoad(option) {
 		// 判断是否为拼团商品
-		this.isP = option.isP
+		this.isP = option.isP;
 		if (option.type == 'pink') {
 			this.pinkid = option.pinkId;
 			this.cartAdd(option);
@@ -271,7 +271,7 @@ export default {
 				new: 1, //商品是否新增加到购物车1为不加入0为加入
 				mer_id: +opt.merid, //商店id
 				combinationId: +opt.gid, //拼团商品id
-				productId: +opt.pid ,//普通商品id
+				productId: +opt.pid, //普通商品id
 				uniqueId: opt.unique
 			})
 				.then(function(e) {
@@ -289,7 +289,7 @@ export default {
 		userinfo() {
 			userinfo({}).then(({ data }) => {
 				let ob = this;
-				ob.integralAll = data.integral;
+				ob.integralAll = data.voucher;
 				// 保存默认提货人姓名
 				ob.pickUpInfo.real_name = data.nickname;
 				// 保存默认提货人手机号
@@ -305,7 +305,7 @@ export default {
 				addressId: this.addressData.id //地址编号
 			})
 				.then(({ data }) => {
-					console.log(data,'111');
+					console.log(data, '111');
 					this.payType = true;
 					this.integralShow = true;
 					// 获取支付金额
@@ -322,49 +322,24 @@ export default {
 		checkedIntegral() {
 			this.checkedPoints = !this.checkedPoints;
 		},
-		// 选中优惠券
-		checkedCp(item) {
-			this.couponChecked = item;
-			this.payMoneyNub();
-		},
-		// 加载优惠券列表
-		couponsOrder(money) {
-			couponsOrder({}, money,this.cartId).then(e => {
-				if (e.data.length > 0) {
-					this.couponListshow = true;
-				}
-				this.couponList = e.data;
-			});
-		},
 		//顶部tab点击
 		tabClick(index) {
 			this.tabCurrentIndex = index;
 			this.addressData = {};
 		},
-		//显示优惠券面板
-		toggleMask(type) {
-			let timer = type === 'show' ? 10 : 300;
-			let state = type === 'show' ? 1 : 0;
-			this.maskState = 2;
-			setTimeout(() => {
-				this.maskState = state;
-			}, timer);
-		},
 		loadData() {
 			let obj = this;
-			confirm({ cartId: obj.cartId+'' }).then(({ data }) => {
-				console.log(data,'123456');
+			confirm({ cartId: obj.cartId + '' }).then(({ data }) => {
+				console.log(data, '123456');
 				obj.addressData = data.addressInfo || {};
 				obj.shopList = data.cartInfo; //商品列表
 				obj.moneyAll = data.priceGroup; //金额数据
 				obj.orderKey = data.orderKey; //订单key
 				(obj.system_store = data.system_store), //到店自提列表
-					obj.shopAddress = data.system_store //选中的地址
-					obj.shopAddress.address = obj.shopAddress.address.join(',')
+					(obj.shopAddress = data.system_store); //选中的地址
+				obj.shopAddress.address = obj.shopAddress.address.join(',');
 				// 计算金额
 				this.payMoneyNub();
-				// 加载优惠券
-				obj.couponsOrder(data.priceGroup.totalPrice);
 			});
 		},
 		// 购买数量变化
@@ -377,7 +352,7 @@ export default {
 		},
 		// 提交订单
 		submit() {
-			let obj = this
+			let obj = this;
 			if (this.checkedPoints && this.shopList.length > 1) {
 				this.$api.msg('积分商品只可单件购买');
 				return false;
@@ -398,9 +373,9 @@ export default {
 				obj.addressData.real_name = obj.pickUpInfo.real_name;
 				obj.addressData.phone = obj.pickUpInfo.phone;
 			}
-			let url =  '/pages/money/pay?key='+ this.orderKey + '&isP=' + this.isP
-			if(this.pinkid){
-				url += '&pinkid='+this.pinkid
+			let url = '/pages/money/pay?key=' + this.orderKey + '&isP=' + this.isP;
+			if (this.pinkid) {
+				url += '&pinkid=' + this.pinkid;
 			}
 			uni.navigateTo({
 				url
@@ -746,9 +721,9 @@ page {
 		height: 100%;
 		color: #fff;
 		font-size: 32rpx;
-		background-color: #FF4C4C;
+		background-color: #ff4c4c;
 		&.submitNo {
-			background-color:  #FF4C4C;
+			background-color: #ff4c4c;
 		}
 	}
 }

+ 100 - 125
pages/product/classify.vue

@@ -1,44 +1,19 @@
 <template>
 	<view class="container">
-		<!-- 头部轮播 -->
-		<view class="carousel-section">
-			<swiper class="carousel" autoplay="true" duration="400" interval="5000">
-				<swiper-item v-for="(item, index) in bannerImg" :key="index" class="carousel-item" @click="bannerNavToUrl(item)">
-					<image :src="item.img" mode=" scaleToFill" />
-				</swiper-item>
-			</swiper>
-		</view>
-		<view class="type-title-box flex">
-			<view class="title-border"></view>
-			<view class="title-content">
-				<text v-if="type == 1">精品推荐</text>
-				<text v-if="type == 2">热门榜单</text>
-				<text v-if="type == 3">首发新品</text>
-				<text v-if="type == 4">促销单品</text>
-			</view>
-			<view class="title-border"></view>
-		</view>
-
-		<view class="goodsList-box">
-			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in list">
-				<image :src="ls.image" mode=" scaleToFill"></image>
-				<view class="goodsList-content">
-					<view class="title">
-						<text>{{ ls.store_name }}</text>
-					</view>
-					<view class="goods-money flex">
-						<view class="money-box">
-							<view class="money">
-								<text class="font-size-sm">¥</text>
-								{{ ls.price }}
-							</view>
-							<view class="otMoney-box">
-								<text class="otMoney">¥{{ ls.ot_price }}</text>
-								<text class="sales">已售{{ ls.sales }}件</text>
-							</view>
+		<view class="jx-box-content" v-for="(item, index) in list">
+			<view class="content-left"><image :src="item.image" mode=""></image></view>
+			<view class="content-right">
+				<view class="shop-name">{{ item.store_name }}</view>
+				<view class="shop-content">
+					<view class="shop-content-left">
+						<view class="price-box">
+							<view class="yuan-price">¥{{ item.ot_price * 1 }}</view>
+							<image src="../../static/sy/sy06.png" mode=""></image>
+							<view class="j-price">直降{{ (item.ot_price - item.price).toFixed(2) * 1 }}元</view>
 						</view>
-						<view @click="navTo(ls)" class="cart iconfont iconcart"></view>
+						<view class="price-x">¥{{ item.price * 1 }}</view>
 					</view>
+					<view class="shop-content-right" @click="navToDetailPage(item)">购买</view>
 				</view>
 			</view>
 		</view>
@@ -68,7 +43,13 @@ export default {
 		},
 		// 请求载入数据
 		async loadData() {
-			groomList({}, this.type)
+			groomList(
+				{
+					page: 1,
+					limit: 1000
+				},
+				1
+			)
 				.then(({ data }) => {
 					// 保存轮播图
 					this.bannerImg = data.banner;
@@ -98,106 +79,100 @@ export default {
 
 <style lang="scss">
 page {
-	background: $page-color-base;
+	background: #fff;
 }
-.carousel-section {
-	padding: 0;
-	.titleNview-placing {
-		padding-top: 0;
-		height: 0;
-	}
-	.swiper-dots {
-		left: 45rpx;
-		bottom: 40rpx;
-	}
-	.carousel {
-		width: 100%;
-		height: 360rpx;
-		.carousel-item {
-			width: 100%;
-			height: 100%;
-			overflow: hidden;
-		}
+.jx-box-content {
+	margin: 20rpx auto 0;
+	display: flex;
+	width: 710rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	padding: 20rpx 30rpx 20rpx 14rpx;
+	.content-left {
+		flex-shrink: 0;
+		width: 236rpx;
+		height: 236rpx;
+		background: #e2e2e2;
+		border-radius: 10rpx;
 		image {
 			width: 100%;
 			height: 100%;
 		}
 	}
-}
-// 中间标题样式
-.type-title-box {
-	padding: 40rpx;
-	.title-content {
-		height: 100%;
-		width: 200rpx;
-		text-align: center;
-		font-size: $font-lg;
-		font-weight: 500;
-		color: $font-color-dark;
-	}
-	.title-border {
-		width: 250rpx;
-		height: 2rpx;
-		background-color: #e9e9e9;
-	}
-}
-// 商品列表
-.goodsList-box {
-	.goodsList-item {
-		margin-bottom: 40rpx;
-		background-color: #ffffff;
-		padding: 30rpx;
-		image {
-			flex-shrink: 0;
-			border-radius: $border-radius-sm;
-			height: 180rpx;
-			width: 180rpx;
+
+	.content-right {
+		width: 100%;
+		margin-left: 20rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+
+		.shop-name {
+			width: 382rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #333333;
+
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
 		}
-		.goodsList-content {
-			margin-left: 20rpx;
-			flex-grow: 1;
-			height: 180rpx;
-			position: relative;
-			.title {
-				font-size: $font-base;
-				color: $font-color-dark;
-				font-weight: 500;
-			}
-			.goods-money {
-				position: absolute;
-				left: 0;
-				bottom: 0;
-				width:100%;
-				.money-box {
-					.money {
-						font-size: $font-lg;
-						color: $color-red;
-						font-weight: bold;
+
+		.shop-content {
+			display: flex;
+			justify-content: space-between;
+
+			.shop-content-left {
+				display: flex;
+				flex-direction: column;
+
+				.price-box {
+					display: flex;
+					align-items: center;
+					.yuan-price {
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
 					}
-					.otMoney-box {
-						font-size: $font-sm;
-						.otMoney {
-							color: $font-color-dark;
-							padding-right: 20rpx;
-						}
-						.sales {
-							color: $font-color-light;
-						}
+
+					image {
+						margin-left: 8rpx;
+						width: 16rpx;
+						height: 18rpx;
+					}
+
+					.j-price {
+						margin-left: 8rpx;
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #b59467;
 					}
 				}
-				.cart {
-					border: 1px solid $color-red;
-					color: $color-red;
-					font-size: $font-base;
+
+				.price-x {
+					font-size: 36rpx;
 					font-weight: bold;
-					border-radius: 99px;
-					width: 55rpx;
-					height: 55rpx;
-					display: flex;
-					justify-content: center;
-					align-items: center;
+					color: #ff4c4c;
 				}
 			}
+
+			.shop-content-right {
+				margin-top: 20rpx;
+				align-items: center;
+				text-align: center;
+				width: 137rpx;
+				height: 52rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #ffffff;
+				background: linear-gradient(90deg, #bb9159, #e6c79d);
+				border-radius: 26rpx;
+				line-height: 52rpx;
+			}
 		}
 	}
 }

+ 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;
 			}
 		}
 	}

+ 165 - 0
pages/product/common/productBottomVip.vue

@@ -0,0 +1,165 @@
+<template>
+	<view class="page-bottom">
+		<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>
+		</view>
+	</view>
+</template>
+
+<script>
+import { collectAdd, collectDel } from '@/api/product.js';
+export default {
+	props: {
+		many: {
+			default: 9
+		},
+		goodsObjact: {
+			default: function() {
+				return {};
+			}
+		},
+		goodsid: {
+			default: ''
+		}
+	},
+	data() {
+		return {};
+	},
+	methods: {
+		buy(type) {
+			this.$emit('specOPne', type);
+		},
+		//收藏
+		toFavorite(item) {
+			let obj = this;
+			item.userCollect = !item.userCollect;
+			if (!item.userCollect) {
+				collectDel({ id: obj.goodsid, category: 'product' }).then(function(e) {
+					uni.showToast({
+						title: '成功取消收藏',
+						type: 'top',
+						duration: 1500
+					});
+				});
+			} else {
+				collectAdd({ id: obj.goodsid, category: 'product' }).then(function(e) {
+					uni.showToast({
+						title: '成功加入收藏',
+						type: 'top',
+						duration: 1500
+					});
+				});
+			}
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+/* 底部操作菜单 */
+.page-bottom {
+	position: fixed;
+	bottom: 0rpx;
+	z-index: 95;
+	display: flex;
+	justify-content: space-between;
+	padding-left: 20rpx;
+	align-items: center;
+	width: 750rpx;
+	height: 96rpx;
+	background-color: #ffffff;
+	/* box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
+	border-radius: 16rpx; */
+	.p-b-btn {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		font-size: $font-sm;
+		color: $font-color-base;
+		width: 96rpx;
+		height: 80rpx;
+		.iconfont {
+			font-size: 40rpx;
+			line-height: 48rpx;
+			color: $font-color-light;
+		}
+		&.active,
+		&.active .iconfont {
+			color: $uni-color-primary;
+		}
+		.iconlikefill {
+			font-size: 46rpx;
+		}
+		image {
+			width: 56rpx;
+			height: 58rpx;
+		}
+	}
+	.action-btn-group {
+		display: flex;
+		width: 100%;
+		height: 96rpx;
+		overflow: hidden;
+		margin-left: 20rpx;
+		position: relative;
+		&:after {
+			content: '';
+			position: absolute;
+			top: 50%;
+			right: 50%;
+			transform: translateY(-50%);
+			height: 28rpx;
+			width: 0;
+		}
+		.action-btn {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 100%;
+			height: 100%;
+			font-size: $font-base;
+			padding: 0;
+			border-radius: 0;
+			background: transparent;
+			&.buy-now-btn {
+				background-color: #ff4c4c;
+			}
+			&.add-cart-btn {
+				background-color: #ffb238;
+			}
+		}
+	}
+}
+.p-b-btn {
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	justify-content: center;
+	font-size: $font-sm;
+	color: $font-color-base;
+	width: 96rpx;
+	height: 80rpx;
+	.iconfont {
+		font-size: 40rpx;
+		line-height: 48rpx;
+		color: $font-color-light;
+	}
+	&.active,
+	&.active .iconfont {
+		color: $uni-color-primary;
+	}
+	.icon-fenxiang2 {
+		font-size: 42rpx;
+		transform: translateY(-2rpx);
+	}
+	.iconlikefill {
+		font-size: 46rpx;
+	}
+}
+</style>

+ 0 - 386
pages/product/groupBooking/detail.vue

@@ -1,386 +0,0 @@
-<template>
-	<view class="box">
-		<!-- 拼团 -->
-		<view class="lyy-a">
-			<view class="lyy-a-p">
-				<view class="lyy-a-f">
-					<view><image :src="goods.image" class="lyy-a-tu" /></view>
-					<view class="lyy-a-z">
-						<view class="lyy-a-word lyy-a-word2">{{ goods.title }}</view>
-						<view class="flex money-box">
-							<view class="lyy-a-f lyy-a-word margin-r-20">
-								<view class="lyy-a-word3">¥{{ goods.price }}</view>
-							</view>
-							<view class="lyy-a-tu2 lyy-a-f padding-c-20 border-radius-all">
-								<view class="lyy-a-tu3"><image src="http://lxscimg.liuniu946.com/2019-11-02_5dbd110b5928a.png" class="lyy-a-tu5"></image></view>
-								<view class="lyy-a-tu4 flex-shrink-false">{{ goods.people }}人拼</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="lyy-hx"></view>
-		<!-- 第二部分 -->
-		<view class="lyy-b padding-t-20">
-			<view class="lyy-b-p">
-				<view class="lyy-b-jz flex">
-					<view class="image1"><view class="lyy-b-word">剩余时间</view></view>
-				</view>
-				<view class="lyy-b-jz flex">
-					<uni-countdowns
-						v-if="pinkBool == 0"
-						color="#FFFFFF"
-						splitor-color="#FC5B62"
-						background-color="#FC5B62"
-						border-color="#FC5B62"
-						:show-day="false"
-						:hour="stopTime.stopTimeH"
-						:minute="stopTime.stopTimeM"
-						:second="stopTime.stopTimeS"
-					></uni-countdowns>
-				</view>
-				<view class="lyy-b-jz flex">
-					<span class="lyy-b-word2">{{ pinkT.people }}</span>
-					<span class="lyy-b-word3">人成团,还差{{ peopleNub }}人</span>
-				</view>
-				<view class="lyy-b-jz flex">
-					<view class="cmy-user-box">
-						<view class="user-list">
-							<view class="lyy-y bg-gray"><image :src="pinkT.avatar" class="user-list-img" /></view>
-							<view class="lyy-y-word clamp">{{ pinkT.nickname }}</view>
-						</view>
-						<view class="user-list" v-for="(item , i) in people" :key='i'>
-						    <view class="lyy-y bg-gray"><image :src="item.avatar" class="user-list-img" /></view>
-						    <view class="lyy-y-word clamp">{{ item.nickname }}</view>
-						</view>
-						<view class="user-list" v-for="(l, i) in peopleNub" :key="i">
-							<view class="lyy-y bg-gray"></view>
-							<view class="lyy-y-word clamp">待邀请</view>
-						</view>
-					</view>
-				</view>
-				<view class="lyy-b-jz flex">
-					<view class="lyy-b-but" v-if="status == 1 && pinkBool == 0" @click="invitation">邀请好友参团</view>
-					<view class="lyy-b-but" v-if="status == 0&&pinkBool==0" @click="goBuy">立即加入</view>
-					<!-- <view class="lyy-b-but" @click="goBuy">立即加入</view> -->
-					<view class="lyy-b-but bg-gray" v-if="pinkBool == -1">拼团失败</view>
-					<view class="lyy-b-but" v-if="pinkBool == 1">拼团成功</view>
-				</view> 
-			</view>
-		</view>
-		<view class="lyy-hx"></view>
-		<!-- 第三部分 -->
-		<view class="lyy-c">
-			<view class="lyy-c-p">
-				<view class="lyy-c-word">
-					<view>拼团规则:</view>
-					<view>1.点击商品进入商品详情,通过超值拼团进入订单支付 页,用户付款成功后,按页面提示分享给微信好友。</view>
-					<view>2.好友通过分享,加入超值拼团,完成订单支付,待达成 拼团人数后,拼团成功。</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
-import { getCombinationLisPink } from '@/api/product.js';
-import { groupGoods } from '@/api/product.js';
-import { timeComputed } from '@/utils/rocessor.js';
-import { mapState } from 'vuex';
-// 倒计时
-export default {
-	data() {
-		return {
-			gp_id: 0, //拼团商品id
-			goods: {}, //商品信息
-			pinkT: {}, //拼团团长信息
-			people: [], //拼团成员信息
-			status: 0, //判断是否为团长
-			gid: 0,
-			user_info: {}, //当前用户信息
-			// 倒计时
-			stopTime: {
-				stopTimeH: 0,
-				stopTimeM: 0,
-				stopTimeS: 0
-			},
-			pinkBool: 0, //拼团状态0为待拼团 -1为拼团失败 1为拼团成功
-			userBool: 0, //判断用户是否已经参与拼团 0未参加 1为已参加
-			spread: '', //默认没有邀请人
-			userInfo: {} ,//当前用户信息
-			peopleNub:0
-		};
-	},
-	onLoad(e) {
-		// 保存拼团订单id
-		this.gp_id = e.id;
-		// 判断是否有人邀请
-		if (e.spread) {
-			// 存储邀请人
-			this.spread = e.spread;
-			uni.setStorageSync('spread', option.spread);
-		}
-	},
-	onShow() {
-		this.getData();
-	},
-	components: {
-		uniCountdowns
-	},
-	methods: {
-		//前往参团
-		goBuy() {
-			let _self = this;
-			uni.navigateTo({
-				url: '/pages/order/createOrder?pinkId=' + this.gp_id + '&type=pink' + '&pid=' + this.goods.product_id + '&gid=' + this.goods.id + '&merid=' + this.goods.mer_id +'&unique=' + this.goods.productValue[this.goods.productAttr[0].attr_values[0]].unique + '&isP=1'
-			});
-		},
-		//邀请参团
-		invitation() {
-			let obj = this;
-			// 判断拼团是否已经结束
-			if (obj.userBool == 0) {
-				uni.showModal({
-					title: '提示',
-					content: '该拼团已经结束!',
-					showCancel: false,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-				return;
-			}
-			uni.navigateTo({
-				url: '/pages/product/groupBooking/inviteImg?id=' + this.pinkT.id + '&spread=' + this.userInfo.uid,
-				success: res => {},
-				fail: e => {
-					console.log(e);
-				},
-				complete: () => {}
-			});
-		},
-		// #ifdef H5
-		// 加载微信html5页面分享方法
-		shareDate() {
-			let obj = this;
-			// 判断是否微信浏览器
-			let bool = uni.getStorageSync('weichatBrowser') || '';
-			if (bool) {
-				// 过滤微信强制添加的链接地址
-				url = url.replace('?from=singlemessage', '');
-				let data = {
-					link: url, // 分享链接
-					imgUrl: obj.goodsObjact.image, // 分享图标
-					desc: obj.goodsObjact.store_info,
-					title: obj.goodsObjact.store_name,
-					success: function() {}
-				};
-				obj.weichatObj.updateAppMessageShareData(data);
-				obj.weichatObj.updateTimelineShareData(data);
-			}
-		},
-		// #endif
-		// 获取拼团信息
-		getData() {
-			let obj = this;
-			// let data = {gp_id:_self.gp_id},
-			getCombinationLisPink({}, this.gp_id).then(e => {
-				let r = e.data;
-				// 保存拼团商品详细
-				obj.goods = r.store_combination;
-				// 保存团长信息
-				obj.pinkT = r.pinkT;
-				/* 计算倒计时 */
-				obj.timeComputed(obj.pinkT.stop_time * 1000);
-				// 获取拼团用户列表
-				obj.people = r.pinkAll;
-				// 获取当前是否已参与过这个拼团
-				obj.userBool = r.userBool;
-				// 判断当前用户是否为团长
-				if (r.pinkT.uid == r.userInfo.uid) {
-					// 显示邀请好用选项
-					obj.status = 1;
-				}
-				// 保存当前登录用户信息
-				obj.userInfo = r.userInfo;
-				// 获取拼团是否已经过期
-				obj.pinkBool = r.pinkBool;
-				obj.peopleNub = obj.pinkT.people - 1 - obj.people.length;
-				// #ifdef H5
-				// 加载微信分享配置
-				this.shareDate();
-				// #endif
-			});
-		},
-		// 计算倒计时时间
-		timeComputed(da) {
-			let obj = this;
-			let stopTime = timeComputed(da);
-			obj.stopTime.stopTimeH = stopTime.hours;
-			obj.stopTime.stopTimeM = stopTime.minutes;
-			obj.stopTime.stopTimeS = stopTime.seconds;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.box {
-	/* #ifdef APP-PLUS | MP */
-	padding-top: var(--status-bar-height);
-	/* #endif */
-}
-.lyy-c {
-	width: 100%;
-	background: rgba(255, 255, 255, 1);
-	.lyy-c-word {
-		font-size: 28rpx;
-		color: rgba(102, 102, 102, 1);
-		line-height: 50rpx;
-	}
-
-	.lyy-c-p {
-		padding: 39rpx 30rpx;
-	}
-}
-
-.lyy-wrap {
-	background-color: #f4f4f4;
-}
-
-.lyy-hx {
-	height: 14rpx;
-}
-
-.image1 {
-	width: 200rpx;
-	height: 33rpx;
-	background: url('http://lxscimg.liuniu946.com/2019-11-02_5dbd0e10a2160.png') center center no-repeat;
-	background-size: 200rpx auto;
-}
-
-.lyy-b {
-	width: 100%;
-	background-color: white;
-	.lyy-b-p {
-		padding: 30rpx 45rpx;
-		.lyy-b-word2,
-		.lyy-b-word3 {
-			font-size: 28rpx;
-			font-weight: bold;
-		}
-		.lyy-b-word2 {
-			color: #fc5b62;
-		}
-		.lyy-b-word3 {
-			color: #1d2023;
-		}
-		.lyy-b-jz {
-			width: 100%;
-			justify-content: center;
-			margin-bottom: 20rpx;
-			.lyy-y {
-				width: 80rpx;
-				height: 80rpx;
-				margin: 0px 15rpx;
-				border-radius: 40rpx;
-				overflow: hidden;
-				.user-list-img {
-					width: 100%;
-					height: 100%;
-				}
-			}
-			.lyy-y-word {
-				margin-top: 10rpx;
-				font-size: 28rpx;
-				text-align: center;
-				width: 110rpx;
-			}
-			.lyy-b-but {
-				width: 550rpx;
-				height: 80rpx;
-				background: #fc5b62;
-				border-radius: 100rpx;
-				text-align: center;
-				color: white;
-				line-height: 80rpx;
-				font-size: 32rpx;
-			}
-			.cmy-user-box {
-				.user-list {
-					display: inline-block;
-					line-height: 1;
-				}
-			}
-		}
-		.lyy-b-word {
-			text-align: center;
-			font-size: 26rpx;
-			color: rgba(29, 32, 35, 1);
-		}
-	}
-}
-
-// 商品列表样式
-.lyy-a {
-	width: 100%;
-	background-color: white;
-	.lyy-a-p {
-		padding: 22rpx 30rpx;
-		.lyy-a-f {
-			display: flex;
-			align-items: center;
-			.lyy-a-f2 {
-				flex: 1;
-			}
-			.lyy-a-tu {
-				width: 122rpx;
-				height: 122rpx;
-			}
-			.lyy-a-z {
-				padding-left: 30rpx;
-				flex-grow: 1;
-				.money-box {
-					justify-content: flex-start;
-					.lyy-a-tu2 {
-						background: rgba(255, 255, 255, 1);
-						border: 1rpx solid #fc5b62;
-						.lyy-a-tu3 {
-							background-color: #fc5b62;
-							padding: 2px 4px 0px 4px;
-							text-align: center;
-							height: 26rpx;
-							.lyy-a-tu5 {
-								width: 20rpx;
-								height: 20rpx;
-								display: block;
-							}
-						}
-						.lyy-a-tu4 {
-							margin-left: 2px;
-							font-size: 10px;
-							color: #fc5b62;
-							padding: 0px 10rpx;
-							text-align: center;
-						}
-					}
-				}
-				.lyy-a-word {
-					line-height: 56rpx;
-					.lyy-a-word3 {
-						font-size: 28rpx;
-						font-weight: bold;
-						color: #fc5b62;
-					}
-				}
-				.lyy-a-word2 {
-					font-size: 30rpx;
-					color: rgba(29, 32, 35, 1);
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 236
pages/product/groupBooking/index.vue

@@ -1,236 +0,0 @@
-<template>
-	<view class="lyy-bg4">
-		<view class="lyy-f-a">
-			<view class="lyy-f-b lyy-flex">
-				<view class="lyy-f-c item" @click="goProduct(items)" v-for="(items, ind) in goodsList" :key="ind">
-					<view class="content">
-						<view><image :src="items.image" class="lyy-f-image" /></view>
-						<view class="lyy-f-word1 lyy-f-jl ellipsis">{{ items.title }}</view>
-						<view class="lyy-flex2">
-							<view class="lyy-flex3">
-								<view class="lyy-f-word2 lyy-f-jl">¥{{ items.price * 1 }}</view>
-							</view>
-							<view class="lyy-a-tu2 lyy-flex2">
-								<view class="lyy-a-tu3"><image src="../../../static/img/img11.png" class="lyy-a-tu5" /></view>
-								<view class="lyy-a-tu4">{{ items.people }}人拼</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { getCombinationList } from '@/api/product.js';
-export default {
-	components: {
-		uniLoadMore
-	},
-	data() {
-		return {
-			goodsList: [],
-			loadingType: 'more', //加载更多状态
-			limit: 20, //每次加载数据条数
-			page: 1 //当前页数
-		};
-	},
-	onLoad(options) {
-		this.loadData();
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		this.loadData('refresh');
-	},
-	//监听页面是否滚动到底部加载更多
-	onReachBottom() {
-		this.loadData();
-	},
-	methods: {
-		//加载商品 ,带下拉刷新和上滑加载
-		async loadData(type = 'add', loading) {
-			let obj = this;
-			let data = {
-				page: obj.page,
-				limit: obj.limit
-			};
-			//没有更多直接返回
-			if (type === 'add') {
-				if (obj.loadingType === 'nomore') {
-					return;
-				}
-				obj.loadingType = 'loading';
-			} else {
-				obj.loadingType = 'more';
-			}
-
-			// 加载商品信息
-			getCombinationList(data)
-				.then(e => {
-					if (type === 'refresh') {
-						// 清空数组
-						obj.goodsList = [];
-					}
-					obj.goodsList = obj.goodsList.concat(e.data);
-					//判断是否还有下一页,有是more  没有是nomore
-					if (obj.limit == e.data.length) {
-						obj.page++;
-						obj.loadingType = 'more';
-					} else {
-						obj.loadingType = 'nomore';
-					}
-					if (type === 'refresh') {
-						if (loading == 1) {
-							uni.hideLoading();
-						} else {
-							uni.stopPullDownRefresh();
-						}
-					}
-				})
-				.catch();
-		},
-		goProduct(e) {
-			uni.navigateTo({
-				url: '/pages/product/groupBooking/productGroup?id=' + e.id
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-// 拼团列表
-.lyy-f-a {
-	margin: 0px 15px;
-
-	.lyy-flex {
-		/* 内部模块1*/
-		display: flex;
-		justify-content: space-between;
-	}
-	.lyy-f-b {
-		flex-wrap: wrap;
-		.lyy-f-c {
-			flex: 0 0 50%;
-			/* width: 50%; */
-			margin: 10px 0px 0px 0px;
-		}
-
-		.item:nth-child(2n + 1) .content {
-			margin: 0px 7.5px 0px 0px;
-			border-radius: 10px;
-		}
-	}
-
-	.lyy-f-b .content {
-		background-color: white;
-		.lyy-f-image {
-			width: 100%;
-			height: 340rpx;
-			border-radius: 10rpx 10rpx 0rpx 0rpx;
-		}
-		.ellipsis {
-			width: 165px;
-			white-space: nowrap;
-			overflow: hidden;
-			text-overflow: ellipsis;
-		}
-		.lyy-f-jl {
-			padding: 5px 7px;
-		}
-		.lyy-f-word1 {
-			font-size: 12px;
-			color: rgba(50, 50, 50, 1);
-			line-height: 20px;
-			width: 300rpx;
-			white-space: nowrap;
-			overflow: hidden;
-			text-overflow: ellipsis;
-		}
-	}
-
-	.item:nth-child(2n) .content {
-		margin: 0px 0 0px 7.5px;
-		border-radius: 10px;
-	}
-
-	.lyy-f-word3 {
-		font-size: 12px;
-		text-decoration: line-through;
-		color: rgba(139, 139, 139, 1);
-	}
-
-	.lyy-f-word5 {
-		font-size: 20rpx;
-		color: rgba(153, 153, 153, 1);
-		margin: 20rpx 0px 0px 0px;
-	}
-
-	.lyy-f-word4 {
-		height: 26px;
-		background: #6fb22f;
-		color: white;
-		text-align: center;
-	}
-
-	.lyy-f-d {
-		height: 24rpx;
-		border: 1px solid rgba(252, 91, 98, 1);
-		border-radius: 3px;
-		font-size: 20rpx;
-		text-align: center;
-		width: 50rpx;
-		color: rgba(252, 91, 98, 1);
-		margin: 23rpx 0rpx 0rpx 0rpx;
-		line-height: 24rpx;
-	}
-
-	.lyy-flex2 {
-		display: flex;
-		padding-right: 10rpx;
-		align-items: center;
-		.lyy-flex3 {
-			flex: 1;
-			.lyy-f-word2 {
-				font-size: 14px;
-				color: rgba(241, 13, 59, 1);
-			}
-		}
-		&.lyy-a-tu2 {
-			height: 34rpx;
-			background: rgba(255, 255, 255, 1);
-			border: 1px solid #fc5b62;
-			border-radius: 2px;
-			margin: 10rpx 0rpx;
-
-			.lyy-a-tu3 {
-				height: 30rpx;
-				background-color: #fc5b62;
-				padding: 0px 6px;
-				text-align: center;
-				.lyy-a-tu5 {
-					width: 20rpx;
-					height: 20rpx;
-					margin-top: 6rpx;
-					display: block;
-				}
-			}
-
-			.lyy-a-tu4 {
-				margin-left: 4rpx;
-				font-size: 24rpx;
-				line-height: 30rpx;
-				color: #fc5b62;
-				padding: 0px 10rpx;
-				text-align: center;
-			}
-		}
-	}
-}
-</style>

+ 0 - 75
pages/product/groupBooking/inviteImg.vue

@@ -1,75 +0,0 @@
-<template>
-	<view class="box">
-		<image class="inviteImg" :src="image" ></image>
-		<view class="lyy-b-but">长按图片下载</view>
-		<!-- <view class="lyy-b-but" @click="domImg">点击下载图片</view> -->
-	</view>
-</template>
-
-<script>
-	import { getCombinationPoster } from '@/api/product.js';
-	import { mapState } from 'vuex';
-	export default {
-		data() {
-			return {
-				image:'',//海报
-				ptId:'',//拼团id
-			}
-		},
-		computed: {
-			...mapState(['baseURL','urlFile'])
-		},
-		onLoad(option) {
-			// 保存拼团id
-			this.ptId = option.id;
-			// 保存团长id
-			this.spread = option.spread;
-			// 加载分享图
-			this.getCombinationPoster();
-		},
-		methods: {
-			// 加载海报
-			getCombinationPoster() {
-				let obj = this;
-				getCombinationPoster({
-					id:obj.ptId,
-					// #ifdef H5|APP-PLUS
-					url:obj.baseURL+obj.urlFile+'/#/pages/product/groupBooking/detail?id='+obj.ptId+'&spread='+obj.spread,
-					from:'wechat',//来源wechat公众号
-					// #endif
-					// #ifdef MP
-					from:'routine',//来源routine小程序
-					url:'/pages/product/groupBooking/detail?id='+obj.ptId
-					// #endif
-				}).then((e) => {
-					obj.image = e.data.url;
-				}).catch((e) => {
-					console.log(e);
-				})
-			}
-		},
-	}
-</script>
-
-<style lang="scss">
-	page{
-		background-color: #FFFFFF;
-		height: 100%;
-	}
-	.box{
-		.inviteImg{
-			width: 750rpx;
-			height: 1200rpx;
-		}
-	}
-	.lyy-b-but {
-		height: 80rpx;
-		background: #fc5b62;
-		border-radius: 100rpx;
-		text-align: center;
-		color: white;
-		line-height: 80rpx;
-		font-size: 32rpx;
-		margin:  0 100rpx;
-	}
-</style>

+ 0 - 2094
pages/product/groupBooking/productCollage.vue

@@ -1,2094 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 轮播图 -->
-		<view class="carousel">
-			<swiper indicator-dots :circular="true" duration="400">
-				<swiper-item class="swiper-item" v-for="(item, index) in imgList" :key="index">
-					<view class="image-wrapper"><image :src="item" class="loaded" mode="scaleToFill"></image></view>
-				</swiper-item>
-			</swiper>
-		</view>
-		<!-- 介绍部分 -->
-		<view class="introduce-section">
-			<view class="introduce-price flex1">
-				<view class="price">
-					<view class="price-left">
-						<view class="left-1">¥</view>
-						<view class="left-2">{{goodsObjact.price}}</view>
-					</view>
-					<!-- <view class="price-right" >单买价 ¥{{goodsObjact.product_price}}</view> -->
-				</view>
-				<view class="people flex_item">
-					<view class="people_number">{{goodsObjact.people}}人拼</view>
-				</view>
-			</view>
-			<view class="title" >{{goodsObjact.title}}</view>
-			<view class="bot-row flex1">
-				<view>快递:¥ {{goodsObjact.postage}}</view>
-				<view>剩余:{{ goodsObjact.allStock}}件</view>
-				<view>销量:{{ goodsObjact.sales }}</view>
-			</view>
-		</view>
-		<!-- <view class="c-list">
-			<view class="c-row b-b"><text class="tit">拼团玩法</text></view>
-			<view class="c-row b-b">
-				<view class="c-text">
-					①开团/参团
-					<text>——</text>
-					②邀请好友
-					<text>——</text>
-					③满员发货
-				</view>
-			</view>
-			<view class="c-row b-b" @click="toggleSpec()" v-if="goodsType == 2">
-				<text class="tit">购买数量</text>
-				<view class="con">
-					<text class="selected-text">{{ goodsNumber }}</text>
-				</view>
-				<text class="iconfont iconenter"></text>
-			</view>
-		</view> -->
-		<view class="pinklistbox" v-if="pinkTlist.length > 0">
-			<view class="listbox-1 flex1">
-				<view >{{pinkTlist.length}}人在拼单,可直接参与</view>
-				<view class="more flex-center" @click="opens_popup" v-if="more">查看全部
-					<image src="../../../static/img/img39.png"></image>
-				</view>
-			</view>
-			<view class="pinklist">
-				<view v-for="(ls, ind) in showlist" :key="ind" class="flex pinklist_list">
-					<view class="pink_row flex1">
-						<view class="pink_img"><image :src="ls.avatar"></image></view>
-						<view class="pink_name">{{ ls.nickname }}</view>
-					</view>
-					<view class="pink_tpl flex1">
-						<view >
-							<view class="pink_people">
-								还差
-								<text>{{ ls.count}}</text>
-								人拼团
-							</view>
-							<!-- <view class="pink_people">
-								剩余{{ls.time || '00:00:00'}}
-							</view> -->
-						</view>
-						<view class="pint" @click="groupBooking(ls.id)">
-							去拼单
-							<!-- <text class="iconfont iconenter"></text> opens_popups-->
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 评价 -->
-		<!-- <view class="eva-section" v-if="replyCount > 0" @click="navTo('/pages/product/reply')">
-			<view class="e-header">
-				<text class="tit">评价</text>
-				<text class="number">({{replyCount}})</text>
-				<text class="tip">全部评价</text>
-				<text class="iconfont iconenter"></text>
-			</view>
-			<view class="eva-box">
-				<view class="box-1 flex1">
-					<view class="left flex-start">
-						<image :src="commentList.avatar"></image>
-						<view class="content">
-							<view class="content-name">{{commentList.nickname}}</view>
-							<view class="content-time">{{commentList.add_time}}</view>
-						</view>
-					</view>
-					<view class="right flex-upDown-center">
-						<view><uniRate text="1" size="14" margin="1" :value="commentList.product_score" ></uniRate></view>
-						<text class="red">{{commentList.product_score}}分</text>
-					</view>
-				</view>
-				<view class="box-2">{{commentList.comment}}</view>
-				<view class="box-3">
-					<view v-for="(item,index) in commentList.pics" :key="index" class="box-3-1">
-						<image :src="item"></image>
-					</view>
-				</view>
-			</view>
-		</view> -->
-		<view class="eva-section" v-if="reply.length > 0" @click="navTo('/pages/product/reply?id=' + goodsid)">
-			<view class="e-header">
-				<text class="tit">评价</text>
-				<text>({{ list.replyCount }})</text>
-				<text class="tip">好评率 {{ list.replyChance }}%</text>
-				<text class="iconfont iconenter"></text>
-			</view>
-			<view class="eva-box">
-				<image class="portrait" :src="reply.avatar" mode="aspectFill"></image>
-				<view class="right">
-					<text class="name">{{ reply.nickname }}</text>
-					<text class="con">{{ reply.comment }}</text>
-					<view class="con_box">
-						<view class="con_image" v-for="item in reply.pics"><image :src="item"></image></view>
-					</view>
-					<view class="bot">
-						<text class="attr"></text>
-						<text class="time">{{ reply.add_time }}</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 商品详情图 -->
-		<view class="detail-desc">
-			<view class="desc-title flex-center">
-				<view class="one"></view>
-				商品详情
-				<view class="two"></view>
-			</view>
-			<rich-text :nodes="goodsObjact.description"></rich-text>
-		</view>
-		<!-- <view class="detail-desc">
-			<view class="d-header"><text>图文详情</text></view>
-			<rich-text :nodes="goodsObjact.description"></rich-text>
-		</view> -->
-		<!-- 拼团商品 -->
-		<view class="page-bottom" >
-			<!-- <navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
-				<text class="iconfont iconhomefill"></text>
-				<text>首页</text>
-			</navigator> -->
-			<!--<view class="botton-1 flex-center">
-				<view class="botton-frame" @click="toFavorite(goodsObjact)">
-					<view class="img-box" v-if="goodsObjact.userCollect == false"><image src="../../static/label/img02.png"></image></view>
-					<view class="img-box" v-if="goodsObjact.userCollect == true"><image src="../../static/label/img08.png"></image></view>
-					<view class="word" :class="{ active: goodsObjact.userCollect }">收藏</view>
-				</view>
-			</view> 
-			<view class="p-b-btn" :class="{ active: goodsObjact.userCollect }" @click="toFavorite(goodsObjact)">
-				<text class="iconfont iconlikefill"></text>
-				<text>收藏</text>
-			</view> -->
-			<view class="action-btn-group">
-				<!-- <button type="primary" class=" action-btn no-border btn-favorites-btn" @click="navTo('/pages/favorites/favorites')">收藏夹</button> -->
-				<!-- <button type="primary" class=" action-btn no-border buy-now-btn" @click="toFavorite(goodsObjact)">{{ goodsObjact.userCollect ? '取消收藏' : '收藏' }}</button> -->
-				<button type="primary" class=" action-btn no-border add-cart-btn" @click="specOPne()">一键开团</button>
-			</view>
-		</view>
-		
-		<!-- 规格-模态层弹窗 -->
-		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec()">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer attr-content" @click.stop="stopPrevent">
-				<view class="a-t">
-					<image :src="actionImage"></image>
-					<view class="right">
-						<text class="name">{{ goodsObjact.store_name }}</text>
-						<text class="price">¥{{ actionPrice * goodsNumber }}</text>
-						<text class="stock">库存:{{ goodsStore }}件</text>
-						<view class="selected" v-if="specList != ''">
-							已选:
-							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
-						</view>
-					</view>
-				</view>
-				<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)"
-						>
-							{{ childItem.attr }}
-						</text>
-					</view>
-				</view>
-				<!-- <view class="attr-list">
-					<text>购买数量</text>
-					<view class="item-list">
-						<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" v-show="buys_show">完成</button>
-				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button>
-			</view>
-		</view>
-		
-		<!-- 查看全部拼单 -->
-		<uni-popup ref="popup" type="center" >
-			<view class="popup-row">
-				<view class="popup-1">
-					正在拼单
-				</view>
-				
-				<scroll-view scroll-y="true" class="popcont-box">
-					<view class="popup-2">
-						<view v-for="(item,index) in pinkTlist" :key="index" class="popup-2-row flex1">
-							<view class="row-1 flex1">
-								<view class="one">
-									<image :src="item.avatar"></image>
-									<view class="two">
-										<view class="two-1">{{item.nickname }}</view>
-										<!-- <view>剩余 {{item.time}}</view> -->
-									</view>
-								</view>
-								
-								<text class="two-1-1">还差{{item.count}}人</text>
-							</view>
-							<view class="row-2" @click="groupBooking(item.id)">
-								去拼单
-							</view>
-						</view>
-					</view>
-				</scroll-view>
-				
-			</view>
-			<view class="delete" @click="closes_popup"><image src="../../../static/img/deletes.png"></image></view>
-		</uni-popup>
-		
-		<!-- <uni-popup ref="popups" type="center" >
-			<view class="popup-rows" >
-				<view class="rows-1">参与李丹的拼单</view>
-				<view class="rows-2">仅剩<text class="red">1</text>个名额,23:41:55后结束</view>
-				<view class="rows-3 flex1">
-					<view class="rows-3-group" v-for="(item,index) in information" >
-						<view class="group-1">
-							<image src="../../static/delete/timg.jpg"></image>
-							<view class="group-1-1" >团长</view>
-						</view>
-						<view class="group-2">婷930sadasa</view>
-					</view>
-					<view class="rows-3-group" v-for="i in (5 - information.length) " >
-						<view class="group-1">
-							<image src="../../static/label/blank.png"></image>
-						</view>
-						<view class="group-2">带邀请</view>
-					</view>
-				</view>
-				<view class="rows-4" @click="navTo('/pages/order/createOrder')">参与拼单</view>
-			</view>
-			<view class="delete" @click="groupBooking()"><image src="../../static/label/deletes.png"></image></view>
-		</uni-popup>
-		 -->
-		
-		
-		<!-- #ifdef H5 -->
-        <!-- <view class="btn_fenxiang" @click="open">分享</view> -->
-        <view class="mask" v-show="show"><image @click="onTap" src="https://mmz.liuniu946.com/statics/img/shareimg.png"></image></view>
-        <!-- #endif -->  
-		<!-- #ifdef MP-WEIXIN -->
-		<button  open-type="share" class="shareDate">分享</button>
-		<!-- #endif -->
-	</view>
-</template>
-<script>
-import { mapState } from 'vuex';
-
-import { uniFav } from '@/components/uni-fav/uni-fav.vue';
-import { groupGoods, cartAdd, collectAdd, collectDel, productDetail } from '@/api/product.js';
-import { saveUrl } from '@/utils/loginUtils.js';
-import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-import uniRate from '@/components/uni-rate/uni-rate.vue';
-import uniPopup from '@/components/uni-popup/uni-popup.vue'
-import uniPopupMessage from '@/components/uni-popup/uni-popup-message.vue'
-import uniPopupDialog from '@/components/uni-popup/uni-popup-dialog.vue'
-import uniNumberBox from '@/components/uni-number-box.vue';
-// #ifdef H5
-import { weixindata } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	components: {
-		uniNumberBox,
-		uniFav,
-		uniNoticeBar,
-		uniRate,
-		uniPopup,
-		uniPopupMessage,
-		uniPopupDialog
-	},
-	// #ifdef MP
-	onShareAppMessage: function(res) {
-		if (res.from === 'button') {
-			// 来自页面内分享按钮
-			let pages = getCurrentPages();
-			// 获取当前页面
-			let page = pages[pages.length - 1];
-			let path = '/' + page.route + '?';
-			// 保存传值
-			for (let i in page.options) {
-				path += i + '=' + page.options[i] + '&';
-			}
-			// 保存邀请人
-			path += 'spread=' + this.userInfo.uid;
-			let data = {
-				path: path,
-				imageUrl: this.goodsObjact.image,
-				title: this.goodsObjact.title
-			};
-			return data;
-		}
-	},
-	// #endif
-	data() {
-		return {
-			imgList: [], //商品轮播图
-			goodsObjact: {}, //保存商品数据
-			pinkTlist:{
-				length:5
-			}, //进行中的拼团的信息
-			showlist: [],//进行中的拼团前两组的信息
-			replyCount:0,//评价总数
-			commentList:{},
-			specList: [],
-			ishow:'',
-			information:[],
-			popuplist:[],
-			show: false,
-			showModal: true, //拼单遮罩层
-			more: true, //查看更多按钮
-			autoplay: true,
-			vertical: true,
-			interval: 3000,
-			duration: 500,
-			buys_show: true,
-			buys_shows: false,
-			circular: true,
-			type: 1, //默认支付方式add为
-			specClass: 'none', //显示隐藏弹窗
-			actionImage: '', //商品图片
-			goodsid: '', //商品id
-			actionPrice: '', //商品价格
-			// specClass: 'none', //显示隐藏弹窗
-			shareList: [], //分享列表
-			goodsNumberMax: 0, //商品库存
-			//图片循环
-			people: '', //拼团人数
-			goodsNumber: 1, //购买数量(开团数量为1,整团数量为1*参团人数)
-			carnumber: '', //整团购买商品数量
-			reply: {}, //商品数据
-			list: '', //详情数据
-			goodsType: 1, //商品类型1秒杀商品0为普通商品2为拼团商品3为新人礼包
-			count: 0, //点击查看更多
-			showmore: true,
-			pinkTlistnum: '',
-			spread: '',
-			chooseGoodsNumber: 1, //选择商品的数量
-			specSelected: [], //选中的分类
-			goodsStore: 0, //选中库存
-			uniqueId: '',
-			productValue: '',
-			isCollect: '', //是否被收藏
-			maskshow: false, //弹窗
-			posturl: '',
-			option: '', //保存传值
-			opt: '', //保存小程序传值
-			uniquetype:false,//判断是否是从拼团详情界面跳回的 false 不是  true 是 
-			shop:'',//返回的拼团订单id
-			allStock:0//商品总库存
-		};
-	},
-	onLoad(option) {
-		this.option = option;
-		if (option.scene) {
-			if (typeof option.scene == 'string') {
-				let scene = ('{' + option.scene + '}')
-					.replace('qr%26', '')
-					.replace(/%3D/g, ':')
-					.replace(/%26/g, ',')
-					.replace('pid', '"pid"')
-					.replace('type', '"type"')
-					.replace('id', '"id"');
-				let opt = JSON.parse(scene);
-				this.opt = opt;
-				// 保存拼团订单id
-				this.goodsid = opt.id;
-				if (opt.pid) {
-					// 存储邀请人
-					this.spread = opt.pid;
-					uni.setStorageSync('spread', opt.pid);
-				}
-				if (opt.type) {
-					this.goodsType = opt.type;
-				}
-			}
-		} else {
-			//保存商品id
-			this.goodsid = option.id;
-			//判断有无人邀请
-			if (option.spread) {
-				// 存储邀请人
-				this.spread = option.spread;
-				uni.setStorageSync('spread', option.spread);
-			}
-			//判断是否是普通商品
-			if (option.type) {
-				console.log(option.type);
-				this.goodsType = option.type;
-			}
-			
-		}
-		//判断是否是从拼团详情界面跳回的
-		if (option.uniquetype) {
-			console.log(option.uniquetype);
-			this.uniquetype = option.uniquetype;
-		}
-		//接受返回的拼团订单id
-		if (option.shop) {
-			console.log(option.uniquetype);
-			this.shop = option.shop;
-		}
-		// 保存当前页面
-		saveUrl();
-	},
-	onShow() {
-		let obj = this;
-		groupGoods({}, obj.goodsid).then(function({ data }) {
-			console.log(data,112)
-			let goods = data.storeInfo;
-			obj.imgList = goods.images;//拼团轮播图
-			obj.goodsObjact = goods;//拼团拼团产品信息
-			// 保存商品总库存
-			obj.allStock = 0;
-			for(let key in 	data.productValue){
-				obj.allStock +=data.productValue[key].stock
-			}
-			obj.pinkTlist = data.pink;//进行中的拼团的信息
-			obj.showlist = obj.pinkTlist.slice(0, 2);//截取拼团信息的前两组
-			obj.replyCount = data.replyCount;//评价总数
-			//obj.commentList = data.reply[0];//保存评价里的第一条
-			obj.specList = data.productAttr;//保存产品属性
-			//商品详情图超出屏幕问题
-			if (obj.goodsObjact.description != null) {
-				obj.goodsObjact.description = obj.goodsObjact.description.replace(/<img/g, '<img class="rich-img"').replace(/<p>\S*<img/g, '<p class="pHeight"><img');
-			}
-			
-			if(obj.pinkTlist.length<=2){
-				obj.more = false;
-			};
-			if (data.reply) {
-				obj.reply = data.reply;
-			}
-			obj.list = data; //详情数据
-			obj.productValue = data.productValue; //保存属性值
-			// 保存数据修改数组
-			// console.log(obj.pinkTlist,55)
-			obj.people = goods.people; //拼团人数
-			obj.productId = goods.product_id;
-			
-			// 保存默认选中的对象
-			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(',');
-			// 设置默认值
-			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;
-			console.log(obj.goodsStore,9000)
-			// #ifdef H5
-			obj.shareDate();
-			// #endif
-			// obj.clickMore();
-		});
-		// combination({}, obj.goodsid).then()
-	},
-	computed: {
-		...mapState(['userInfo', 'baseURL'])
-	},
-	methods: {
-		//选择规格
-		selectSpec(item, arr, ind) {
-			console.log(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(',');
-			console.log(obj.productValue[str],116)
-			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;
-				if (obj.goodsType == 2) {
-					obj.goodsStore = obj.productValue[str].quota;
-				} else {
-					obj.goodsStore = obj.productValue[str].product_stock;
-				}
-			} else {
-				(obj.buys_show = false), (obj.buys_shows = true);
-			}
-		},
-		numberChange(e) {
-			//购买数量
-			this.chooseGoodsNumber = e.number;
-			// console.log(e.number)
-			// console.log(this.chooseGoodsNumber,'chooseGoodsNumber')
-		},
-		opens_popup(){
-			this.$refs.popup.open()
-		},
-		closes_popup(){
-			this.$refs.popup.close()
-		},
-		opens_popups(){
-			this.$refs.popup.close()
-			this.$refs.popups.open()
-		},
-		closes_popups(){
-			this.$refs.popups.close()
-		},
-		// 处理数组结构
-		dataUpReturn(data) {
-			//保存处理完毕数据
-			let arr = [];
-			// 保存临时数据
-			let arr1 = [];
-			// 设置每个小数组可以存放的数量
-			let num = 2;
-			if (data.length > 1) {
-				for (let i = 0; i < data.length; i++) {
-					// 保存数据到临时数组
-					arr1.push(data[i]);
-					if ((i + 1) % num === 0) {
-						console.log(arr1, 2);
-						// 添加数据到返回数组,用map方法解决物理指针问题导致的数据对象改变问题
-						arr.push(
-							arr1.map(e => {
-								return e;
-							})
-						);
-						// 清空临时数组重新开始计算
-						arr1 = [];
-					}
-				}
-			}
-			// 判断是否为奇数
-			if (data.length % num === 1) {
-				arr.push([data[data.length - 1]]);
-			}
-			return arr;
-		},
-		specOPne() {
-			//显示弹出框
-			// 是否有开团用户
-			// if (this.pinkTlist.length > 0) {
-			// 	this.groupBooking(this.pinkTlist[0][0].id);
-			// } else {
-			// }
-			this.specClass = 'show';
-		},
-		
-		//去拼团
-		groupBooking(item) {
-			uni.navigateTo({
-				url: '/pages/product/details?pink_id=' + item
-			});
-		},
-		//拼团列表数据分页
-		setPinkList() {
-			let obj = this;
-			let showlist = new Array();
-			for (let i = 0; i < obj.pinkTlist.length; i++) {
-				if (i >= obj.count) {
-					break;
-				}
-				showlist[i] = obj.pinkTlist[i];
-			}
-			obj.showlist = showlist;
-		},
-		//查看更多
-		// clickMore() {
-		// 	let obj = this;
-		// 	obj.count += 2;
-		// 	obj.setPinkList();
-		// 	if (obj.count >= obj.pinkTlist.length) {
-		// 		obj.showmore = false; //当次数大于拼团数据,查看更多隐藏
-		// 	} else {
-		// 		obj.showmore = true; //当次数大于拼团数据,查看更多隐藏
-		// 	}
-		// },
-		clickMore() {
-			this.showlist = this.pinkTlist;
-			console.log(this.showlist, 22);
-			this.more = false;
-		},
-		//规格弹窗开关
-		toggleSpec(str) {
-			if (this.specClass === 'show') {
-				this.specClass = 'hide';
-				setTimeout(() => {
-					this.specClass = 'none';
-				}, 250);
-			} else if (this.specClass === 'none') {
-				this.specClass = 'show';
-			}
-			// 判断是否为数字
-			if (typeof str == 'number') {
-				// 保存当前购买类型
-				this.type = str;
-			}
-		},
-		//显示弹窗
-		open() {
-			this.show = true;
-		},
-		//随意点击隐藏弹窗
-		onTap() {
-			if (!this.open) return;
-			this.close();
-		},
-		close() {
-			this.show = false;
-		},
-		//收藏
-		toFavorite(item) {
-			let obj = this;
-
-			item.userCollect = !item.userCollect;
-			// 判断是否已经收藏
-			if (!item.userCollect) {
-				collectDel({
-					id: item.id,
-					category: 'pink'
-				}).then(function(e) {
-					obj.$api.msg('成功取消收藏!');
-				});
-			} else {
-				collectAdd({
-					id: item.id,
-					category: 'pink'
-				}).then(function(e) {
-					obj.$api.msg('成功加入收藏!');
-				});
-			}
-		},
-		
-		// #ifdef H5
-		shareDate() {
-			let obj = this;
-			let url = window.location.href.replace(/[\?,&]{0,1}from=singlemessage/g, '') + '&spread=' + this.userInfo.uid;
-			let bool = uni.getStorageSync('weichatBrowser') || '';
-			// 判断是否微信浏览器
-			if (bool) {
-				let data;
-				if (obj.goodsType == 0) {
-					data = {
-						link: url, // 分享链接
-						imgUrl: obj.goodsObjact.image, // 分享图标
-						desc: obj.goodsObjact.store_info,
-						title: obj.goodsObjact.store_name,
-						success: function() {}
-					};
-				}
-				if (obj.goodsType == 2) {
-					data = {
-						link: url, // 分享链接
-						imgUrl: obj.goodsObjact.image, // 分享图标
-						title: obj.goodsObjact.title,
-						desc: obj.goodsObjact.info,
-						success: function() {}
-					};
-				}
-				weixindata(data);
-			}
-		},
-		// #endif
-		/**
-		 * 统一跳转接口,拦截未登录路由
-		 * navigator标签现在默认没有转场动画,所以用view
-		 */
-		navTo(url) {
-			uni.navigateTo({
-				url
-			});
-		},
-		// 立即购买
-		buy(item) {
-			let obj = this;
-			if(obj.uniquetype == false){
-				// 创建传值对象
-				console.log(obj.list.productValue);
-				console.log(obj.list);
-				let data = {
-					// cartNum: obj.goodsNumber, //商品数量
-					cartNum: obj.chooseGoodsNumber, //商品数量
-					uniqueId: obj.uniqueId, //商品标签
-					new: 1, //商品是否新增加到购物车1为不加入0为加入
-					mer_id: obj.shopId,
-					combinationId: obj.goodsid, //拼团编号
-					productId: obj.goodsObjact.product_id, //商品编号
-				};
-				this.specClass = 'none';
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						console.log(e);
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId + '&goodsType=' + obj.goodsType
-							});
-						}
-						if (obj.type == 2) {
-							obj.$api.msg('成功加入购物车');
-							obj.toggleSpec();
-						}
-					})
-					.catch(e => {
-						console.log(e);
-					}); 
-			}else{
-				console.log(obj.uniquetype,'obj.uniquetype')
-				uni.navigateTo({
-					url: '/pages/product/details?pink_id=' + obj.shop + '&unique=' + obj.uniqueId + '&uniquetype=' + obj.uniquetype
-				});
-			}
-			
-		},
-		// 阻止触发上级事件
-		stopPrevent() {}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-	padding-bottom: 160rpx;
-	line-height: 1;
-}
-
-// 处理图片间白色间距问题
-/deep/ .pHeight {
-	line-height: 0;
-}
-
-/deep/ div,
-/deep/ table {
-	max-width: 100% !important;
-}
-
-/* #ifdef MP */
-.rich-img {
-	width: 100% !important;
-	height: auto;
-}
-// 处理图片间白色间距问题
-.pHeight {
-	line-height: 0;
-}
-/* #endif */
-
-.popup-row{
-	width:580rpx;
-	background:#ffffff;
-	border-radius:20rpx;
-	.popup-1{
-		padding: 35rpx 0;
-		font-size:$font-lg;
-		font-weight:bold;
-		color:#333333;
-		text-align: center;
-		border-bottom: 1px solid #EEEEEE;
-	}
-	.popcont-box {
-		height: 600rpx;
-	}
-	.popup-2{
-		padding: 0 25rpx;
-		.popup-2-row{
-			padding: 25rpx 0;
-			border-bottom: 1px solid #EEEEEE;
-			&:nth-last-child(1){
-				border-bottom:none;
-			}
-			.row-1{
-				width: 70%;
-				.one{
-					display: flex;
-					align-items: center;
-					image{
-						width: 75rpx;
-						height: 75rpx;
-						border-radius: 50%;
-					}
-				}
-				.two{
-					margin-left: 20rpx;
-					font-size:28rpx;
-					font-weight:500;
-					color:#333333;
-					.two-1{
-						// margin-bottom: 20rpx;
-						font-size:$font-base;
-						font-weight:500;
-						max-width: 160rpx;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						white-space: nowrap;
-					}
-				}
-				.two-1-1{
-					font-size:$font-base;
-					font-weight:500;
-					color:#666666;
-				}
-			}
-			.row-2{
-				padding: 20rpx 30rpx;
-				background:$base-color;
-				border-radius:10rpx;
-				font-size:28rpx;
-				font-weight:500;
-				color:#FFFFFF;
-			}
-		}
-	}
-}
-.popup-rows{
-	width:580rpx;
-	background:#ffffff;
-	border-radius:20rpx;
-	text-align: center;
-	padding-bottom: 35rpx;
-	.rows-1{
-		font-size:$font-lg;
-		font-weight:bold;
-		color:#333333;
-		padding-top: 60rpx;
-	}
-	.rows-2{
-		margin-top: 25rpx;
-		font-size:28rpx;
-		font-weight:500;
-		color:#333333;
-	}
-	.rows-3{
-		margin-top: 35rpx;
-		padding: 0 50rpx;
-		
-		.rows-3-group {
-			display: flex;
-			align-items: center;
-			flex-direction: column;
-			.group-1{
-				display: flex;
-				align-items: center;
-				flex-direction: column;
-			}
-			.group-2{
-				flex: 1;
-				font-size:$font-sm - 4rpx;
-				font-weight:500;
-				color:#666666;
-				margin-top: 10rpx;
-				width:55rpx;
-				overflow:hidden;
-				white-space:nowrap;
-				text-overflow:ellipsis;
-			}
-			image{
-				width: 80rpx;
-				height: 80rpx;
-				border-radius: 50%;
-			}
-			.group-1-1{
-				z-index: 10;
-				margin-top: -25rpx;
-				width:70rpx;
-				height:25rpx;
-				background:#e64048;
-				border-radius:12rpx;
-				font-size:$font-sm - 4rpx;
-				font-weight:500;
-				color:#ffffff;
-				line-height: 25rpx;
-			}
-		}
-	}
-	.rows-4{
-		margin: 40rpx 45rpx 0rpx 45rpx;
-		padding: 25rpx 0;
-		background:$base-color;
-		border-radius:10rpx;
-		
-		font-size:$font-lg;
-		font-weight:500;
-		color:#ffffff;
-	}
-}
-
-.delete{
-	width: 60rpx;
-	height: 60rpx;
-	position: absolute;
-	right: -30rpx;
-	top:-30rpx;
-	image{
-		width: 60rpx;
-		height: 60rpx;
-	}
-}
-
-/* 评价 */
-.eva-section {
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin-top: 20rpx;
-	.e-header {
-		display: flex;
-		align-items: center;
-		font-size:28rpx;
-		color: #333333;
-		.tit {
-			margin-right: 15rpx;
-		}
-		.tip {
-			flex: 1;
-			font-size:24rpx;
-			color: #999999;
-			text-align: right;
-		}
-		.iconenter {
-			width: 24rpx;
-			height: 24rpx;
-			margin-left: 10rpx;
-		}
-	}
-	.eva-box {
-		padding-top: 30rpx;
-		.box-1{
-			.left{
-				image{
-					width: 80rpx;
-					height: 80rpx;
-					border-radius: 50%;
-				}
-				.content{
-					margin-left: 15rpx;
-					.content-name{
-						font-size:24rpx;
-						font-weight:500;
-						color:#333333;
-					}
-					.content-time{
-						font-size:20rpx;
-						font-weight:500;
-						color:#999999;
-					}
-				}
-			}
-			.right{
-				.image{
-					width: 25rpx;
-					height: 25rpx;
-					margin-left: 10rpx;
-				}
-				.red{
-					margin-left: 15rpx;
-					font-size:24rpx;
-					font-weight:500;
-					color:#fd5b23;
-				}
-				.con_image{
-					
-				}
-			}
-		}
-		.box-2{
-			padding: 30rpx 0 15rpx 0;
-			font-size:28rpx;
-			font-weight:500;
-			color:#666666;
-		}
-		.box-3{
-			.box-3-1{
-				display: inline;
-				width: 150rpx;
-				height: 150rpx;
-				image{
-					margin-right: 20rpx;
-					width: 150rpx;
-					height: 150rpx;
-				}
-			}
-			
-		}
-	}
-}
-
-/* .list-row {
-	position: fixed;
-	top: 450rpx;
-	left: 86rpx;
-
-	.row {
-		position: relative;
-		width: 578rpx;
-		height: 700rpx;
-		background: #ffffff;
-		border-radius: 20rpx;
-
-		.row-1 {
-			flex: 1;
-			text-align: center;
-			padding: 26rpx 223rpx;
-			border-bottom: 2rpx solid #eeeeee;
-
-			.row-1-1 {
-				font-size: $font-lg;
-				font-weight: bold;
-				color: #333333;
-			}
-		}
-
-		.row-2 {
-			padding: 0 23rpx;
-
-			.pinklist_list {
-				padding: 20rpx 0;
-				display: flex;
-				justify-content: space-around;
-				align-items: center;
-				border-bottom: 1px solid #eeeeee;
-
-				.left {
-					width: 74rpx;
-					height: 74rpx;
-					background-color: #e3e3e3;
-					border-radius: 50%;
-				}
-
-				.center {
-					display: flex;
-					flex-wrap: wrap;
-					margin-left: 17rpx;
-
-					.center-1 {
-						display: flex;
-						align-items: center;
-						letter-spacing: 3rpx;
-
-						.center-1-1 {
-							font-size: $font-base;
-							font-weight: 500;
-							color: #333333;
-						}
-
-						.center-1-2 {
-							font-size: $font-base - 2rpx;
-							font-weight: 500;
-							color: #333333;
-						}
-					}
-				}
-
-				.right {
-					width: 134rpx;
-					height: 59rpx;
-					background: $base-color;
-					border-radius: 10rpx;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-
-					.right-word {
-						font-size: 26rpx;
-						font-weight: 500;
-						color: #ffffff;
-					}
-				}
-			}
-		}
-
-		.row-3 {
-			width: 56rpx;
-			height: 56rpx;
-			position: absolute;
-			top: -28rpx;
-			right: -28rpx;
-		}
-	}
-} */
-
-.iconenter {
-	font-size: $font-base + 2rpx;
-	color: #888;
-}
-
-
-.carousel {
-	height: 722rpx;
-	position: relative;
-
-	swiper {
-		height: 100%;
-	}
-
-	.image-wrapper {
-		width: 100%;
-		height: 100%;
-	}
-
-	.swiper-item {
-		display: flex;
-		justify-content: center;
-		align-content: center;
-		height: 750rpx;
-		overflow: hidden;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-
-/* 标题简介 */
-.introduce-section {
-	background: #fff;
-	padding: 15rpx 25rpx 30rpx 25rpx;
-	.introduce-price{
-		width: 100%;
-		overflow: hidden;
-		.price{
-			display: flex;
-			align-items: flex-end;
-			justify-content: flex-start;
-			
-			.price-left{
-				display: flex;
-				align-items: flex-end;
-				color:#fc4141;
-				margin-right: 20rpx;
-				.left-1{
-					margin-right: 5rpx;
-					font-size:28rpx;
-				}
-				.left-2{
-					font-size:$font-lg + 16rpx;
-					line-height: 38rpx;
-				}
-			}
-			.price-right{
-				font-size:28rpx;
-				color:#333333;
-				opacity:0.61;
-			}
-		}
-		.people{
-			width: 140rpx;
-			height: 45rpx;
-			background: url(../../../static/img/img43.png) no-repeat center;
-			background-size: 100%;
-			.people_number{
-				margin-left: 60rpx;
-				font-size:20rpx;
-				font-weight:500;
-				color:rgba(250,39,64,1);
-				line-height: 40rpx;
-			}
-		}
-		/* .share{
-			image{
-				width: 30rpx;
-				height: 35rpx;
-			}
-		} */
-	}
-	.title {
-		margin-top: 30rpx;
-		font-size: 32rpx;
-		color: #1D2023;
-		line-height: 40rpx;
-		font-weight: 600;
-	}
-	.bot-row{
-		margin-top: 20rpx;
-		overflow: hidden;
-		font-size:24rpx;
-		font-weight:500;
-		color:#999999;
-	}
-}
-
-
-/* 标题简介 */
-/* .introduce-section {
-	background: #fff;
-	padding: 20rpx 30rpx;
-
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		height: 50rpx;
-		line-height: 50rpx;
-	}
-
-	.price-box {
-		display: flex;
-		align-items: baseline;
-		// height: 64rpx;
-		padding: 10rpx 0;
-		font-size: 26rpx;
-		color: $uni-color-primary;
-	}
-
-	.price {
-		font-size: $font-lg + 2rpx;
-		color: #666666 !important;
-	}
-
-	.vip_price {
-		font-size: $font-lg + 2rpx;
-		color: $uni-color-primary;
-		padding-left: 15rpx;
-	}
-
-	.m-price {
-		margin: 0 12rpx;
-		color: $font-color-light;
-		text-decoration: line-through;
-	}
-
-	.coupon-tip {
-		align-items: center;
-		padding: 4rpx 10rpx;
-		background: $uni-color-primary;
-		font-size: $font-sm;
-		color: #fff;
-		border-radius: 6rpx;
-		line-height: 1;
-		transform: translateY(-4rpx);
-	}
-
-	.bot-row {
-		display: flex;
-		align-items: center;
-		height: 50rpx;
-		font-size: $font-sm;
-		color: $font-color-light;
-
-		text {
-			flex: 1;
-		}
-	}
-
-	.people {
-		border-radius: 10rpx;
-		height: 35rpx !important;
-		border: 2rpx solid #db1935;
-		height: 40rpx;
-
-		.people_image {
-			background-color: #db1935;
-			width: 40rpx;
-			height: 35rpx;
-			text-align: center;
-			border-top-left-radius: 20%;
-			border-bottom-left-radius: 20%;
-
-			image {
-				width: 25rpx;
-				height: 20rpx;
-				// margin-bottom: 5rpx;
-			}
-		}
-
-		.people_number {
-			padding: 5rpx 10rpx;
-		}
-	}
-} */
-
-/* 分享 */
-.share-section {
-	display: flex;
-	align-items: center;
-	color: $font-color-base;
-	background: linear-gradient(left, #fdf5f6, #fbebf6);
-	padding: 12rpx 30rpx;
-
-	.share-icon {
-		display: flex;
-		align-items: center;
-		width: 70rpx;
-		height: 30rpx;
-		line-height: 1;
-		border: 1px solid $uni-color-primary;
-		border-radius: 4rpx;
-		position: relative;
-		overflow: hidden;
-		font-size: 22rpx;
-		color: $uni-color-primary;
-
-		&:after {
-			content: '';
-			width: 50rpx;
-			height: 50rpx;
-			border-radius: 50%;
-			left: -20rpx;
-			top: -12rpx;
-			position: absolute;
-			background: $uni-color-primary;
-		}
-	}
-
-	.iconfavorfill {
-		position: relative;
-		z-index: 1;
-		font-size: 24rpx;
-		margin-left: 2rpx;
-		margin-right: 10rpx;
-		color: #fff;
-		line-height: 1;
-	}
-
-	.tit {
-		font-size: $font-base;
-		margin-left: 10rpx;
-	}
-
-	.iconprompt {
-		padding: 10rpx;
-		font-size: 30rpx;
-		line-height: 1;
-	}
-
-	.share-btn {
-		flex: 1;
-		text-align: right;
-		font-size: $font-sm;
-		color: $uni-color-primary;
-	}
-
-	.iconenter {
-		font-size: $font-sm;
-		margin-left: 4rpx;
-		color: $uni-color-primary;
-	}
-}
-
-.c-list {
-	font-size: $font-sm + 2rpx;
-	color: #303133;
-	margin-top: 20rpx;
-	background: #fff;
-
-	.c-row {
-		display: flex;
-		align-items: center;
-		padding: 20rpx 30rpx;
-		position: relative;
-
-		.c-text {
-			text {
-				padding-left: 25rpx;
-				padding-right: 25rpx;
-			}
-		}
-	}
-
-	.tit {
-		width: 140rpx;
-	}
-
-	.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;
-
-		text {
-			display: inline-block;
-			margin-right: 30rpx;
-		}
-	}
-
-	.con-list {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		color: $font-color-dark;
-		line-height: 40rpx;
-	}
-
-	.red {
-		color: $uni-color-primary;
-	}
-}
-
-/* 评价 */
-/* .eva-section {
-	display: flex;
-	flex-direction: column;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-
-	.e-header {
-		display: flex;
-		align-items: center;
-		height: 70rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
-
-		.tit {
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right: 4rpx;
-		}
-
-		.tip {
-			flex: 1;
-			text-align: right;
-		}
-
-		.iconenter {
-			margin-left: 10rpx;
-		}
-	}
-}
- 
-.eva-box {
-	display: flex;
-	padding: 20rpx 0;
-
-	.portrait {
-		flex-shrink: 0;
-		width: 80rpx;
-		height: 80rpx;
-		border-radius: 100px;
-	}
-
-	.right {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base;
-		color: $font-color-base;
-		padding-left: 26rpx;
-
-		.con {
-			font-size: $font-base;
-			color: $font-color-dark;
-			padding: 20rpx 0;
-		}
-
-		.bot {
-			display: flex;
-			justify-content: space-between;
-			font-size: $font-sm;
-			color: $font-color-light;
-		}
-	}
-}
-
-.con_image {
-	width: 130rpx;
-	height: 130rpx;
-	display: inline-block;
-	padding: 15rpx;
-
-	image {
-		width: 100%;
-		height: 100%;
-	}
-}*/
-
-/*  详情 */
-.detail-desc {
-	.desc-title{
-		font-size:28rpx;
-		font-weight:500;
-		color:#1D2023;
-		padding: 25rpx 0;
-		.one{
-			width:77rpx;
-			height:1px;
-			background:linear-gradient( to right ,rgba(204,204,204,0), rgba(204,204,204,1));
-			margin-right: 10rpx;
-		}
-		.two{
-			margin-left: 10rpx;
-			width:77rpx;
-			height:1px;
-			background:linear-gradient( to left ,rgba(204,204,204,0), rgba(204,204,204,1));
-		}
-	}
-	
-}
-/* .detail-desc {
-	background: #fff;
-	margin-top: 16rpx;
-
-	img {
-		max-width: 100%;
-	}
-
-	.d-header {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 80rpx;
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-		position: relative;
-
-		text {
-			padding: 0 20rpx;
-			background: #fff;
-			position: relative;
-			z-index: 1;
-		}
-
-		&:after {
-			position: absolute;
-			left: 50%;
-			top: 50%;
-			transform: translateX(-50%);
-			width: 300rpx;
-			height: 0;
-			content: '';
-			border-bottom: 1px solid #ccc;
-		}
-	}
-} */
-
-/* 规格选择弹窗 */
-.attr-content {
-	padding: 25rpx 30rpx;
-
-	.a-t {
-		display: flex;
-
-		image {
-			width: 170rpx;
-			height: 170rpx;
-			flex-shrink: 0;
-			border-radius: 8rpx;
-		}
-
-		.right {
-			display: flex;
-			flex-direction: column;
-			padding-left: 24rpx;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-base;
-			line-height: 42rpx;
-			width: 75%;
-
-			.price {
-				font-size: $font-lg;
-				color: $uni-color-primary;
-				margin: 10rpx 0rpx;
-			}
-
-			.name {
-				font-size: 32rpx;
-				color: $font-color-dark;
-				height: 50rpx;
-				overflow: hidden;
-				text-overflow: ellipsis;
-				white-space: nowrap;
-				display: block;
-			}
-
-			.selected-text {
-				margin-right: 10rpx;
-			}
-		}
-	}
-
-	.attr-list {
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base + 2rpx;
-		color: $font-color-base;
-		padding-top: 30rpx;
-		padding-left: 10rpx;
-	}
-
-	.item-list {
-		padding: 20rpx 0 0;
-		display: flex;
-		flex-wrap: wrap;
-
-		text {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			background: #eee;
-			margin-right: 20rpx;
-			margin-bottom: 20rpx;
-			border-radius: 100rpx;
-			min-width: 60rpx;
-			height: 60rpx;
-			padding: 0 20rpx;
-			font-size: $font-base;
-			color: $font-color-dark;
-		}
-
-		.selected {
-			background: #fbebee;
-			color: $uni-color-primary;
-		}
-	}
-}
-
-/*  弹出层 */
-.popup {
-	position: fixed;
-	left: 0;
-	top: 0;
-	right: 0;
-	bottom: 0;
-	z-index: 99;
-
-	&.show {
-		display: block;
-
-		.mask {
-			animation: showPopup 0.2s linear both;
-		}
-
-		.layer {
-			animation: showLayer 0.2s linear both;
-		}
-	}
-
-	&.hide {
-		.mask {
-			animation: hidePopup 0.2s linear both;
-		}
-
-		.layer {
-			animation: hideLayer 0.2s linear both;
-		}
-	}
-
-	&.none {
-		display: none;
-	}
-
-	.mask {
-		position: fixed;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		z-index: 1;
-		background-color: rgba(0, 0, 0, 0.4);
-	}
-
-	.layer {
-		position: fixed;
-		z-index: 99;
-		bottom: 0;
-		width: 100%;
-		min-height: 35vh;
-		border-radius: 10rpx 10rpx 0 0;
-		background-color: #fff;
-
-		.btn {
-			height: 66rpx;
-			line-height: 66rpx;
-			border-radius: 100rpx;
-			background: $uni-color-primary;
-			font-size: $font-base + 2rpx;
-			color: #fff;
-			margin: 30rpx auto 20rpx;
-		}
-	}
-
-	@keyframes showPopup {
-		0% {
-			opacity: 0;
-		}
-
-		100% {
-			opacity: 1;
-		}
-	}
-
-	@keyframes hidePopup {
-		0% {
-			opacity: 1;
-		}
-
-		100% {
-			opacity: 0;
-		}
-	}
-
-	@keyframes showLayer {
-		0% {
-			transform: translateY(120%);
-		}
-
-		100% {
-			transform: translateY(0%);
-		}
-	}
-
-	@keyframes hideLayer {
-		0% {
-			transform: translateY(0);
-		}
-
-		100% {
-			transform: translateY(120%);
-		}
-	}
-}
-//分享
-.btn_fenxiang {
-	position: fixed;
-	right: 20rpx;
-	bottom: 50%;
-	z-index: 95;
-	width: 100rpx;
-	color: #ffffff;
-	border-radius: 100%;
-	background-color: $background-color;
-	line-height: 100rpx;
-	text-align: center;
-	font-size: 30rpx;
-}
-.shareDate{
-	position: fixed;
-	right: 20rpx;
-	bottom: 50%;
-	z-index: 95;
-	color: #ffffff;
-	border-radius: 100rpx;
-	height: 120rpx;
-	line-height: 120rpx;
-	background-color: $background-color;
-	text-align: center;
-	font-size: 30rpx;
-}
-/* 底部操作菜单 */
-.page-bottom {
-	position: fixed;
-	bottom: 0rpx;
-	z-index: 95;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	width: 100%;
-	height: 100rpx;
-	background: rgba(255, 255, 255, 0.9);
-	.botton-1{
-		width: 100rpx;
-		height: 100rpx;
-		background-color: #FFFFFF;
-		.botton-frame {
-			display: flex;
-			align-items: center;
-			flex-direction: column;
-			.img-box {
-				width: 45rpx;
-				height: 40rpx;
-				image{
-					width: 100%;
-					height: 100%;
-				}
-			}
-			
-		}
-		.word{
-			margin-top: 6rpx;
-			font-size:20rpx;
-			font-weight:400;
-			color:#666666;
-			&.active {
-				color: $uni-color-primary;
-			}
-		}
-	}
-	.p-b-btn {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		font-size: $font-sm;
-		color: $font-color-base;
-		width: 100rpx;
-		height: 100rpx;
-
-		.iconfont {
-			font-size: 40rpx;
-			line-height: 48rpx;
-			color: $font-color-light;
-		}
-
-		&.active,
-		&.active .iconfont {
-			color: $uni-color-primary;
-		}
-
-		.icon-fenxiang2 {
-			font-size: 42rpx;
-			transform: translateY(-2rpx);
-		}
-
-		.iconlikefill {
-			font-size: 46rpx;
-		}
-	}
-
-	.gobuy {
-		width: 100%;
-		background: #db1935;
-		height: 100%;
-		color: #ffffff;
-		text-align: center;
-		padding-top: 25rpx;
-		border-radius: 15rpx;
-	}
-
-	.action-btn-group {
-		display: flex;
-		flex:1;
-		height: 100%;
-		overflow: hidden;
-		position: relative;
-
-		&:after {
-			content: '';
-			position: absolute;
-			top: 50%;
-			right: 50%;
-			transform: translateY(-50%);
-			height: 28rpx;
-			width: 0;
-			// border-right: 1px solid rgba(255, 255, 255, 0.5);
-		}
-
-		.action-btn {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			flex: 1;
-			height: 100%;
-			font-size: $font-lg + 4rpx;
-			font-weight:bold;
-			background: transparent;
-			border-radius:0;
-			letter-spacing: 5rpx;
-
-			&.buy-now-btn {
-				background-color: #ffb238;
-			}
-
-			&.add-cart-btn {
-				background:$base-color;
-			}
-			&.btn-favorites-btn {
-				background-color: rgba(24, 179, 255, 1);
-			}
-		}
-
-		/* .action-btn1 {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 210rpx;
-			height: 100%;
-			font-size: $font-base;
-			padding: 0;
-			border-radius: 0;
-			background: transparent;
-
-			&.buy-now-btn {
-				background-color: #ffb238;
-			}
-
-			&.add-cart-btn {
-				background-color: #db1935;
-			}
-		} */
-	}
-}
-
-// 底部拼团、秒杀支付按钮
-.goods-pay-box {
-	position: fixed;
-	left: 0;
-	bottom: 0;
-	z-index: 95;
-	width: 750rpx;
-	height: 100rpx;
-	line-height: 1;
-	color: #ffffff;
-	text-align: center;
-	font-size: $font-lg;
-	.bgLine {
-		background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%);
-	}
-	// 拼团支付按钮
-	.goods-pay {
-		display: flex;
-		align-content: center;
-		flex-wrap: wrap;
-		justify-content: center;
-		.goods-buttom,
-		.goods-buttom-money {
-			width: 100%;
-		}
-		.goods-buttom-money {
-			font-size: $font-base;
-		}
-	}
-	.goods-pay-stop,
-	.goods-pay {
-		padding: 15rpx 0;
-		height: 100%;
-		width: 100%;
-	}
-	.goods-pay-stop {
-		background: $color-gray;
-		line-height: 70rpx;
-	}
-}
-
-
-//拼团列表
-.pinklistbox {
-	background: #ffffff;
-	text-align: center;
-	font-size: 26rpx;
-	margin-top: 25rpx;
-	.listbox-1{
-		padding: 25rpx;
-		font-size:$font-lg - 2rpx;
-		font-weight:500;
-		color:#333333;
-		border-bottom: 1px solid #EEEEEE;
-		.more{
-			font-size:$font-base - 2rpx;
-			font-weight:500;
-			color:#999999;
-			image {
-				width: 25rpx;
-				height: 25rpx;
-			}
-		}
-	}
-	.pinklist{
-		margin: 0 25rpx;
-		
-		.pinklist_list{
-			padding: 25rpx 0;
-			border-bottom: 1px solid #EEEEEE;
-			&:nth-last-child(1){
-				border-bottom: none;
-			}
-		}
-	}
-}
-
-/* .pinklistbox {
-	background: #ffffff;
-	margin-top: 25rpx;
-	overflow: hidden;
-} */
-
-.pink_num {
-	background: -webkit-linear-gradient(left, #fdf5f6, #fbebf6);
-	padding: 15rpx 25rpx;
-	font-size: 26rpx;
-	color: #dd524d;
-}
-
-.pint {
-	background: -webkit-linear-gradient(0deg, #fa2740,#fe5544);
-	border-radius:10rpx;
-	margin-left: 20rpx;
-	padding: 20rpx 25rpx;
-	color: #ffffff;
-	font-size: $font-base - 2rpx;
-
-	/* .iconenter {
-		font-size: 15px;
-		color: #ffffff;
-	} */
-}
-
-
-
-.pink_row {
-	.pink_img{
-		width: 70rpx;
-		height: 70rpx;
-		
-		image {
-			width: 100%;
-			height: 100%;
-			border-radius: 100%;
-		}
-	}
-	
-}
-.pink_people {
-	font-size: $font-base - 2rpx;
-	// margin-top: 10rpx;
-	text {
-		color: $font-color;
-	}
-}
-
-.pink_time {
-	font-size: 26rpx;
-	color: #909399;
-}
-
-.pink_name {
-	font-size:30rpx;
-	color:#333333;
-	margin-left: 20rpx;
-}
-.More {
-	width: 100%;
-	line-height: 2;
-	background-color: #fc2a3f;
-	font-size:$font-lg;
-	margin: 0 auto;
-	text-align: center;
-	color: #ffffff;
-	// border-radius: 50rpx;
-}
-.mask {
-	z-index: 999;
-	width: 100%;
-	height: 100%;
-	position: fixed;
-	top: 0;
-	left: 0;
-	text-align: center;
-	background-color: rgba(0, 0, 0, 0.5);
-	image {
-		width: 100%;
-		height: 100%;
-		opacity: 0.8;
-	}
-}
-</style>

+ 0 - 1008
pages/product/groupBooking/productGroup.vue

@@ -1,1008 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 轮播图 -->
-		<top-swiper :imgList="imgList"></top-swiper>
-		<!-- 拼团倒计时 -->
-		<group-time :goodsObjact="goodsObjact" :key='goodsObjact.product_price' :seckillObj="seckillObj"></group-time>
-		<!-- 拼团标题 -->
-		<group-content :goodsObjact="goodsObjact"></group-content>
-		
-		<!-- 拼团到货时间及优惠 -->
-		<discounts :mark='goodsObjact.mark' :Info="goodsObjact.info" @clickCoupon="Getcoupon" :showCoupon='false'></discounts>
-		<view class="p-list">
-			<view class="p-list-tit">这些人刚开团成功,可一键参与拼团</view>
-			<scroll-view scroll-y="true" class="p-list-wrap">
-				<view class="p-list-item flex" v-for="item in pList">
-					<view class="p-item-img">
-						<image :src="item.avatar" mode=""></image>
-					</view>
-					<view class="p-item-name clamp">
-						{{item.nickname}}
-					</view>
-					<view class="p-item-btn" @click="OneClickPT(item)">
-						一键参团
-					</view>
-				</view>
-			</scroll-view>
-		</view>
-		<!-- 规格信息 -->
-		<!-- <fresh-detail :goodsObjact="goodsObjact"></fresh-detail> -->
-		<!-- <view class="uni-padding-wrap pinklistbox" v-if="pinkTlist.length > 0">
-			<view class="pinklist">
-				<view v-for="(ls, ind) in showlist">
-					<view class="flex pinklist_list">
-						<view class="pink_img"><image :src="ls.avatar"></image></view>
-						<view class="pink_name">{{ ls.nickname }}</view>
-						<view class="pink_tpl">
-							<view class="pink_people">
-								还差
-								<text>{{ ls.count }}</text>
-								人拼团
-							</view>
-						</view>
-						<view class="pint" @click="groupBooking(ls.id)">
-							去拼团
-							<text class="iconfont iconenter"></text>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="More" @click="clickMore" v-if="more">查看更多</view>
-		</view> -->
-		<!-- <view class="ping-plan">
-			<view class="participate-7 flex-between-center">
-				<view class="participate-7-1">
-					<text class="word" v-if="pink_type == 1">AA团</text>
-					<text class="word" v-else>达人团</text>
-					<text>玩法</text>
-				</view>
-				<view class="participate-7-1" @click="ToRule()">
-					<text class="word1">详细规则</text>
-					<image src="../../../static/img/img74.png"></image>
-				</view>
-			</view>
-			<view class="participate-8 flex-between-center">
-				<view class="participate-8-1">
-					<image class="img1" src="https://shicai.liuniu946.com/img/img76.png"></image>
-					<view class="word-1">开团/参团</view>
-					<view class="word-2">拼团享低价</view>
-				</view>
-				<image src="https://shicai.liuniu946.com/img/img75.png"></image>
-				<view class="participate-8-1">
-					<image class="img2" src="https://shicai.liuniu946.com/img/img77.png"></image>
-					<view class="word-1">邀请邻里参团</view>
-					<view class="word-2">分享优惠多</view>
-				</view>
-				<image src="https://shicai.liuniu946.com/img/img75.png"></image>
-				<view class="participate-8-1">
-					<image class="img3" src="https://shicai.liuniu946.com/img/img78.png"></image>
-					<view class="word-1">人满发货</view>
-					<view class="word-2">人不满退款</view>
-				</view>
-			</view>
-		</view> -->
-		
-		<!-- 大家都在拼 达人团显示 -->
-		<!-- <now-list v-if="pink_type == 2" :recommendedlist="recommendedlist"></now-list> -->
-		
-		
-		<!-- 图文详情 -->
-		<content-text :description="description"></content-text>
-
-		<!-- 底部高度撑开 -->
-		<view class="contentBottomHeight"></view>
-		<!-- 底部操作菜单 -->
-		<view >
-			<view >
-				<group-bottom :peoplePrize='goodsObjact.people_prize' @buy="openPinkT" @specOPne="specOPne" :seckillObj="seckillObj" :many='many'></group-bottom>
-			</view>
-		</view>
-		<!-- 规格-模态层弹窗 -->
-		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec()">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer attr-content" @click.stop="stopPrevent">
-				<view class="a-t">
-					<image :src="actionImage"></image>
-					<view class="right">
-						<text class="name">{{ goodsObjact.store_name }}</text>
-						<text class="price">¥{{ actionPrice * goodsNumber }}</text>
-						<text class="stock">库存:{{ goodsStore }}件</text>
-						<view class="selected" v-if="specList != ''">
-							已选:
-							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
-						</view>
-					</view>
-				</view>
-				<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)"
-						>
-							{{ childItem.attr }}
-						</text>
-					</view>
-				</view>
-				<!-- <view class="attr-list">
-					<text>购买数量</text>
-					<view class="item-list">
-						<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" v-show="buys_show">完成</button>
-				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button>
-			</view>
-		</view>
-		<!-- 返回按钮 -->
-		<return-button :btmSize="500"></return-button>
-
-	</view>
-</template>
-
-<script>
-	import { nowPinkLst } from '@/api/order.js';
-	import {
-		goodsDetail,
-		cartAdd,
-		collectAdd,
-		collectDel,
-		seckillGoods,
-		groupGoods
-	} from '@/api/product.js';
-	import {
-		mapState
-	} from 'vuex';
-	import store from '@/store/index.js';
-	import {
-		saveUrl
-	} from '@/utils/loginUtils.js';
-	import {
-		timeComputed
-	} from '@/utils/rocessor.js';
-	// #ifdef H5
-	import {
-		weixindata
-	} from '@/utils/wxAuthorized';
-	// #endif
-	// 头部轮播图
-	import topSwiper from '../common/topSwiper.vue';
-	// 拼团倒计时
-	import groupTime from '../common/groupTime.vue';
-	// 拼团标题
-	import groupContent from '../common/groupContent.vue';
-	// 拼团到货时间及优惠
-	import discounts from '../common/discounts.vue';
-	// 规格信息
-	import freshDetail from '../common/freshDetail.vue';
-	// 图文详情
-	import contentText from '../common/contentText.vue';
-	// 底部按钮
-	import groupBottom from '../common/groupBottom.vue';
-	// 返回按钮
-	import returnButton from '@/components/returnButton.vue';
-	// 大家还在拼
-	import NowList from '@/components/newlist/nowList.vue';
-	export default {
-		components: {
-			topSwiper,
-			groupTime,
-			groupContent,
-			discounts,
-			freshDetail,
-			contentText,
-			groupBottom,
-			returnButton,
-			NowList
-		},
-		data() {
-			return {
-				goodsStore: 0, //选中库存
-				specList: [],
-				buys_show: true,
-				buys_shows: false,
-				specSelected: [], //选中的分类
-				reply: '', //评论
-				list: '', //商品详情的数据
-				type: 1, //默认支付方式add为
-				goodsNumber: 1, //购买数量
-				goodsid: '', //商品id
-				description: '', //商品描述
-				goodsObjact: {}, //保存商品数据
-				//图片循环
-				imgList: [],
-				// 对比对象
-				actionPrice: 0, //默认选中商品价格
-				actionImage: '', //默认选中图片
-				good_list: '', //猜你喜欢列表
-				goodsNumberMax: 0, //最大可购买数量
-				many:1,//1是单规格  2是多规格
-				// 倒计时数据保存
-				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: '',
-				pinkTlist: '', //拼团数据
-				more: true, //查看更多按钮
-				showlist: [],
-				pink_type: 1, //拼团类别
-				show: false, // 是否显示底部按钮
-				recommendedlist:[],// 大家都在拼
-				specClass: 'none' ,//显示隐藏弹窗
-				pList: [],//在拼团list
-			};
-
-		},
-		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;
-			obj.userInfo = uni.getStorageSync('userInfo');
-			//保存商品id
-			this.goodsid = options.id;
-			if (options.show) {
-				this.show = options.show;
-			}
-			console.log(this.show, 5656)
-			// 判断有无人邀请
-			if (options.spread) {
-				// 存储邀请人
-				uni.setStorageSync('spread', options.spread);
-			}
-			saveUrl();
-			// 家在数据
-			this.groupGoods();
-			return;
-			
-			// 注册邀请信息
-			// #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.title + '   价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)
-		// 		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: {
-			// 跳转详细规则
-			ToRule() {
-				if( this.pink_type == 1 ) {
-					// AA团
-					uni.navigateTo({
-						url: '/pages/rule/AArule'
-					})
-				} else {
-					// 达人团
-					uni.navigateTo({
-						url: '/pages/rule/DaRrule'
-					})
-				}
-			},
-			//选择规格
-			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(',');
-				console.log(obj.productValue[str],116)
-				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;
-					// if (obj.goodsType == 2) {
-					// 	obj.goodsStore = obj.productValue[str].quota;
-					// } else {
-					// 	obj.goodsStore = obj.productValue[str].product_stock;
-					// }
-				} else {
-					(obj.buys_show = false), (obj.buys_shows = true);
-				}
-			},
-			// 立即购买
-			buy(item) {
-				let obj = this;
-				/* obj.toggleSpec();
-				this.specClass='show',
-				console.log(obj.list.productValue.默认.unique)
-				console.log(obj.chooseGoodsNumber,'chooseGoodsNumber')
-				return */
-				// 创建传值对象
-				console.log(obj.list.productValue);
-				console.log(obj.list);
-				let data = {
-					// cartNum: obj.goodsNumber, //商品数量
-					cartNum: obj.chooseGoodsNumber, //商品数量
-					uniqueId: obj.uniqueId, //商品标签
-					new: 1, //商品是否新增加到购物车1为不加入0为加入
-					mer_id: obj.shopId,
-					combinationId: obj.goodsid, //拼团编号
-					productId: obj.goodsObjact.product_id, //商品编号
-				};
-				this.specClass = 'none';
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						console.log(e);
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId + '&goodsType=' + obj.goodsType + '&isP=1'
-							});
-						}
-						if (obj.type == 2) {
-							obj.$api.msg('成功加入购物车');
-							obj.toggleSpec();
-						}
-					})
-					.catch(e => {
-						console.log(e);
-					}); 
-			},
-			// 去开团
-			ToKaiTuan(item) {
-				let id = item.id;
-				uni.navigateTo({
-					url: '/pages/product/productGroup?id=' + id
-				});
-			},
-			
-			// 跳转页面
-			navTo(url) {
-				uni.navigateTo({
-					url
-				});
-			},
-			// 查看更多
-			clickMore() {
-				this.showlist = this.pinkTlist;
-				console.log(this.showlist, 22);
-				this.more = false;
-			},
-			//去拼团
-			groupBooking(item) {
-				uni.navigateTo({
-					url: '/pages/groupBooking/groupdetails?id=' + item
-				});
-			},
-			// 获取拼团商品详情
-			groupGoods() {
-				let obj = this;
-				
-				// // 大家还在拼
-				// nowPinkLst({}).then(({data}) => {
-				// 	this.recommendedlist = data;
-				// })
-				
-				groupGoods({}, this.goodsid).then(function({
-					data
-				}) {
-					obj.pList = data.pink
-					let goods = data.storeInfo;
-					obj.goodsObjact = goods;
-					console.log(obj.goodsObjact, 88)
-					console.log(Array.isArray(data.productValue), 99)
-					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;
-					}
-					console.log(obj.many,'obj.many')
-					if (obj.goodsObjact.description != null) {
-						obj.description = obj.goodsObjact.description.replace(/\<img/gi, '<img class="rich-img"');
-					}
-					obj.imgList = goods.images; //保存轮播图
-					obj.actionPrice = goods.price; //保存默认选中商品价格
-					obj.actionImage = goods.image_base; //保存默认选中商品图片
-					obj.goodsNumberMax = 1; //保存默认选中最大可购买商品数量
-					if (obj.goodsObjact.pink_type == 'AA团') {
-						obj.pink_type = 1;
-					} else {
-						obj.pink_type = 2;
-					}
-					obj.pinkTlist = data.pink;
-					obj.showlist = obj.pinkTlist.slice(0, 2);
-					if (obj.pinkTlist.length <= 2) {
-						obj.more = false;
-					}
-
-					// 保存结束时间
-					obj.seckillObj.stopTime = goods.stop_time * 1000;
-					// 获取当前时间
-					let acitonTime = new Date();
-					// 判断当前时间是否大于结束时间
-					if (acitonTime.getTime() > obj.seckillObj.stopTime) {
-						// 当前秒杀时间已经结束
-						obj.seckillObj.stop = true;
-					} else {
-						// 计算倒计时
-						let time = timeComputed(obj.seckillObj.stopTime)
-						// 倒计时数据保存
-						obj.seckillObj = {
-							stopTime: goods.stop_time * 1000, //结束时间
-							stop: false, //是否结束
-							stopTimeD: time.day, //天
-							stopTimeH: time.hours, //小时
-							stopTimeM: time.minutes, //分钟
-							stopTimeS: time.seconds, //秒钟
-							upTime: (new Date()).getTime()
-						}
-					}
-				});
-			},
-			// 立即购买
-			openPinkT(item) {
-				let obj = this;
-				obj.type = item;
-				// 创建传值对象
-				let data = {
-					cartNum: obj.goodsNumber, //商品数量
-					new: 1, //商品是否新增加到购物车1为不加入0为加入
-					combinationId: obj.goodsid,
-					productId: obj.goodsObjact.product_id
-				};
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId+'&goodsType=2'
-							});
-						}
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			specOPne(item) {
-				let obj = this;
-				obj.specClass = 'show';
-				console.log(obj.specClass,'this.specClass')
-			},
-			//规格弹窗开关
-			toggleSpec(str) {
-				if (this.specClass === 'show') {
-					this.specClass = 'hide';
-					setTimeout(() => {
-						this.specClass = 'none';
-					}, 250);
-				} else if (this.specClass === 'none') {
-					this.specClass = 'show';
-				}
-				// 判断是否为数字
-				if (typeof str == 'number') {
-					// 保存当前购买类型
-					this.type = str;
-				}
-			},
-			// 阻止触发上级事件
-			stopPrevent() {},
-			OneClickPT(item) {
-				console.log(item)
-				uni.navigateTo({
-					url: '/pages/product/groupBooking/detail?id=' + item.id
-				})
-			}
-		}
-	};
-</script>
-
-<style lang="scss">
-	/*  弹出层 */
-	.popup {
-		position: fixed;
-		left: 0;
-		top: 0;
-		right: 0;
-		bottom: 0;
-		z-index: 99;
-		&.show {
-			display: block;
-	
-			.mask {
-				animation: showPopup 0.2s linear both;
-			}
-	
-			.layer {
-				animation: showLayer 0.2s linear both;
-			}
-		}
-	
-		&.hide {
-			.mask {
-				animation: hidePopup 0.2s linear both;
-			}
-	
-			.layer {
-				animation: hideLayer 0.2s linear both;
-			}
-		}
-	
-		&.none {
-			display: none;
-		}
-	
-		.mask {
-			position: fixed;
-			top: 0;
-			width: 100%;
-			height: 100%;
-			z-index: 1;
-			background-color: rgba(0, 0, 0, 0.4);
-		}
-	
-		.layer {
-			position: fixed;
-			z-index: 99;
-			bottom: 0;
-			width: 100%;
-			min-height: 35vh;
-			border-radius: 10rpx 10rpx 0 0;
-			background-color: #fff;
-	
-			.btn {
-				height: 66rpx;
-				line-height: 66rpx;
-				border-radius: 100rpx;
-				background: $uni-color-primary;
-				font-size: $font-base + 2rpx;
-				color: #fff;
-				margin: 30rpx auto 20rpx;
-			}
-		}
-	
-		@keyframes showPopup {
-			0% {
-				opacity: 0;
-			}
-	
-			100% {
-				opacity: 1;
-			}
-		}
-	
-		@keyframes hidePopup {
-			0% {
-				opacity: 1;
-			}
-	
-			100% {
-				opacity: 0;
-			}
-		}
-	
-		@keyframes showLayer {
-			0% {
-				transform: translateY(120%);
-			}
-	
-			100% {
-				transform: translateY(0%);
-			}
-		}
-	
-		@keyframes hideLayer {
-			0% {
-				transform: translateY(0);
-			}
-	
-			100% {
-				transform: translateY(120%);
-			}
-		}
-	}
-	/* 规格选择弹窗 */
-	.attr-content {
-		padding: 25rpx 30rpx;
-	
-		.a-t {
-			display: flex;
-	
-			image {
-				width: 170rpx;
-				height: 170rpx;
-				flex-shrink: 0;
-				border-radius: 8rpx;
-			}
-	
-			.right {
-				display: flex;
-				flex-direction: column;
-				padding-left: 24rpx;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-base;
-				line-height: 42rpx;
-				width: 75%;
-	
-				.price {
-					font-size: $font-lg;
-					color: $uni-color-primary;
-					margin: 10rpx 0rpx;
-				}
-	
-				.name {
-					font-size: 32rpx;
-					color: $font-color-dark;
-					height: 50rpx;
-					overflow: hidden;
-					text-overflow: ellipsis;
-					white-space: nowrap;
-					display: block;
-				}
-	
-				.selected-text {
-					margin-right: 10rpx;
-				}
-			}
-		}
-	
-		.attr-list {
-			display: flex;
-			flex-direction: column;
-			font-size: $font-base + 2rpx;
-			color: $font-color-base;
-			padding-top: 30rpx;
-			padding-left: 10rpx;
-		}
-	
-		.item-list {
-			padding: 20rpx 0 0;
-			display: flex;
-			flex-wrap: wrap;
-	
-			text {
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				background: #eee;
-				margin-right: 20rpx;
-				margin-bottom: 20rpx;
-				border-radius: 100rpx;
-				min-width: 60rpx;
-				height: 60rpx;
-				padding: 0 20rpx;
-				font-size: $font-base;
-				color: $font-color-dark;
-			}
-	
-			.selected {
-				background: #ddffdf;
-				color: $uni-color-primary;
-			}
-		}
-	}
-	
-	//默认商品底部高度
-	.goodsBottom {
-		height: 160rpx;
-	}
-
-	page {
-		background: #f0f0f0;
-	}
-
-	//秒杀、拼团底部高度
-	.contentBottomHeight {
-		height: 110rpx;
-		// background-color: #FFFFFF;
-	}
-
-	//默认商品底部高度
-	.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;
-	}
-
-	.pinklistbox {
-		background: #ffffff;
-		margin-top: 25rpx;
-		overflow: hidden;
-	}
-
-	.pink_num {
-		background: -webkit-linear-gradient(left, #fdf5f6, #fbebf6);
-		padding: 15rpx 25rpx;
-		font-size: 26rpx;
-		color: #dd524d;
-	}
-
-	.pint {
-		background: -webkit-linear-gradient(left, #ff1f4f, #ff0409);
-		padding: 10rpx 25rpx;
-		color: #ffffff;
-		font-size: 24rpx;
-		border-radius: 25rpx;
-
-		.iconenter {
-			font-size: 15px;
-			color: #ffffff;
-		}
-	}
-
-	.pinklist {
-		padding: 0rpx 25rpx;
-		padding-top: 45rpx !important;
-	}
-
-	.pinklist_list {
-		margin-bottom: 10rpx;
-	}
-
-	.pink_img {
-		width: 100rpx;
-		height: 100rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-			border-radius: 100%;
-		}
-	}
-
-	.pink_people {
-		font-size: 28rpx;
-
-		text {
-			color: #dd524d;
-		}
-	}
-
-	.pink_time {
-		font-size: 26rpx;
-		color: #909399;
-	}
-
-	.pink_name {
-		width: 200rpx;
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-		padding-left: 10rpx;
-		// background: #FC2A3F;
-		// height: 50rpx;
-	}
-
-	.More {
-		width: 100%;
-		line-height: 2;
-		background-color: #fc2a3f;
-		font-size: $font-lg;
-		margin: 0 auto;
-		text-align: center;
-		color: #ffffff;
-		// border-radius: 50rpx;
-	}
-
-	.ping-plan {
-		background-color: #FFFFFF;
-		padding: 25rpx 35rpx;
-		border-top: 15rpx solid #F3F3F4;
-		border-bottom: 15rpx solid #F3F3F4;
-	}
-
-	.participate-7 {
-		color: #000000;
-		font-size: 29rpx;
-		font-weight: 500;
-		padding-bottom: 25rpx;
-
-		.participate-7-1 {
-			.word {
-				color: #ff0a1a;
-			}
-
-			.word1 {
-				font-size: 25rpx;
-				color: #989aa0;
-			}
-
-			image {
-				width: 10rpx;
-				height: 20rpx;
-				margin-left: 15rpx;
-			}
-		}
-	}
-
-	//左右顶格加上下居中
-	.flex-between-center {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-	}
-
-	.participate-8 {
-		image {
-			width: 26rpx;
-			height: 12rpx;
-		}
-
-		.participate-8-1 {
-			text-align: center;
-
-			.img1 {
-				width: 43rpx;
-				height: 50rpx;
-			}
-
-			.img2 {
-				width: 43rpx;
-				height: 42rpx;
-			}
-
-			.img3 {
-				width: 60rpx;
-				height: 46rpx;
-			}
-
-			.word-1 {
-				font-size: 23rpx;
-				color: #000000;
-				line-height: 34rpx;
-			}
-
-			.word-2 {
-				font-size: 21rpx;
-				color: #91949B;
-				line-height: 34rpx;
-			}
-		}
-	}
-	.p-list {
-		width: 100%;
-		height: 300rpx;
-		background-color: #fff;
-		margin: 20rpx 0;
-		.p-list-tit {
-			padding-left: 20rpx;
-			line-height: 80rpx;
-			font-size: 28rpx;
-		}
-		.p-list-wrap {
-			height: 220rpx;
-			.p-list-item {
-				height: 110rpx;
-				width: 100%;
-				// background-color: #009688;
-				padding: 0 30rpx;
-				.p-item-img {
-					flex-grow: 0;
-					width: 70rpx;
-					height: 70rpx;
-					border-radius: 50%;
-					// background-color: red;
-					image {
-						width: 70rpx;
-						height: 70rpx;
-						border-radius: 50%;
-					}
-				}
-				.p-item-name {
-					flex-grow: 1;
-					padding-left: 50rpx;
-					line-height: 110rpx;
-					font-size: 26rpx;
-				}
-				.p-item-btn {
-					width: 130rpx;
-					height: 60rpx;
-					background-color: #df2e24;
-					color: #fff;
-					border-radius: 10rpx;
-					line-height: 60rpx;
-					text-align: center;
-					font-size: 24rpx;
-				}
-			}
-		}
-		
-	}
-</style>

+ 17 - 55
pages/product/list.vue

@@ -20,16 +20,7 @@
 		</view>
 		<view class="goods-list">
 			<view v-for="(item, index) in goodsList" :key="index" class="goods-item" @click="navToDetailPage(item)">
-				<view class="image-wrapper">
-					<image :src="item.image" mode="aspectFill"></image>
-					<view class="fanli" v-if="item.give_integral != 0">
-						<view class="fanli-bg"><image src="../../static/img/index-fanl.png" mode=""></image></view>
-						<view class="fanli-font flex">
-							<view class="font-left">获得响亮积分</view>
-							<view class="font-right">{{ item.give_integral * 1 }}</view>
-						</view>
-					</view>
-				</view>
+				<view class="image-wrapper"><image :src="item.image" mode="aspectFill"></image></view>
 				<text class="title clamp">{{ item.store_name }}</text>
 				<view class="price-box">
 					<text class="price">{{ item.price }}</text>
@@ -42,7 +33,9 @@
 		<view class="cate-mask" :class="cateMaskState === 0 ? 'none' : cateMaskState === 1 ? 'show' : ''" @click="toggleCateMask">
 			<view class="cate-content">
 				<scroll-view scroll-y class="left-aside">
-					<view v-for="item in cateList" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click.stop="tabtap(item)">{{ item.cate_name }}</view>
+					<view v-for="item in cateList" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click.stop="tabtap(item)">
+						{{ item.cate_name }}
+					</view>
 				</scroll-view>
 				<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
 					<view v-for="item in cateList" :key="item.id" class="s-list" :id="'main-' + item.id">
@@ -129,7 +122,7 @@ export default {
 				obj.cateList = e.data.filter(e => {
 					return e.id != 1;
 				});
-				obj.currentId = obj.cateList[0].id
+				obj.currentId = obj.cateList[0].id;
 				console.log(obj.cateList, '123456789');
 			});
 		},
@@ -171,7 +164,7 @@ export default {
 				}
 			).exec();
 			// 获取所有距离顶部大于滚轮距离页面高度的所有分类
-			let tabs = this.cateList.filter(item =>( item.top-10) <= scrollTop).reverse();
+			let tabs = this.cateList.filter(item => item.top - 10 <= scrollTop).reverse();
 			if (tabs.length > 0) {
 				// 判断是否已经到达滚轮底部
 				if (box + scrollTop + bottom >= e.detail.scrollHeight) {
@@ -308,9 +301,15 @@ export default {
 		//详情
 		navToDetailPage(item) {
 			let id = item.id;
-			uni.navigateTo({
-				url: `/pages/product/product?id=${id}`
-			});
+			if (this.sid == 52) {
+				uni.navigateTo({
+					url: `/pages/product/product?id=${id}&isVip=1`
+				});
+			} else {
+				uni.navigateTo({
+					url: `/pages/product/product?id=${id}`
+				});
+			}
 		}
 	}
 };
@@ -451,7 +450,7 @@ page,
 				}
 			}
 		}
-		
+
 		.right-aside {
 			flex: 1;
 			overflow: hidden;
@@ -489,7 +488,7 @@ page,
 			font-size: 26rpx;
 			color: #666;
 			padding-bottom: 20rpx;
-		
+
 			image {
 				width: 140rpx;
 				height: 140rpx;
@@ -557,43 +556,6 @@ page,
 			height: 100%;
 			opacity: 1;
 		}
-		.fanli {
-			position: absolute;
-			bottom: 0;
-			left: 0;
-			width: 344rpx;
-			height: 96rpx;
-			.fanli-bg {
-				position: absolute;
-				bottom: 0;
-				left: 0;
-				width: 344rpx;
-				height: 96rpx;
-			}
-			.fanli-font {
-				position: relative;
-				z-index: 10;
-				color: #ffffff;
-				height: 96rpx;
-				align-items: flex-end;
-				padding: 36rpx 10rpx 10rpx;
-				.font-left {
-					width: 226rpx;
-					font-size: 20rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #ffffff;
-				}
-				.font-right {
-					width: 118rpx;
-					text-align: center;
-					font-size: 36rpx;
-					font-family: Microsoft YaHei;
-					font-weight: bold;
-					color: #ffffff;
-				}
-			}
-		}
 	}
 	.title {
 		font-size: $font-lg;

+ 12 - 47
pages/product/product.vue

@@ -12,9 +12,6 @@
 				</view>
 				<text class="iconfont iconenter"></text>
 			</view>
-			<view class="c-row b-b">
-				<text>每购买一个送{{goodsObjact.give_integral}}响亮积分</text>
-			</view>
 		</view>
 		<!-- 拼货时间及优惠 -->
 		<!-- <discounts @clickCoupon="Getcoupon" :Info="goodsObjact.store_info" :showCoupon="true"></discounts> -->
@@ -29,7 +26,8 @@
 		<!-- 底部高度撑开 -->
 		<view class="contentBottomHeight"></view>
 		<!-- 底部操作菜单 -->
-		<product-bottom @buy="buy" :goodsObjact="goodsObjact" :goodsid="goodsid" @specOPne="specOPne"></product-bottom>
+		<product-bottom v-if="isVip == 0" @buy="buy" :goodsObjact="goodsObjact" :goodsid="goodsid" @specOPne="specOPne"></product-bottom>
+		<product-bottomVip v-if="isVip == 1" @buy="buy" :goodsObjact="goodsObjact" :goodsid="goodsid" @specOPne="specOPne"></product-bottomVip>
 		<!-- 规格-模态层弹窗 -->
 		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec">
 			<!-- 遮罩层 -->
@@ -95,6 +93,7 @@ import freshDetail from './common/freshDetail.vue';
 import contentText from './common/contentText.vue';
 // 底部按钮
 import productBottom from './common/productBottom.vue';
+import productBottomVip from './common/productBottomVip.vue';
 // 猜你喜欢
 import guessLike from './common/guessLike.vue';
 // 评价
@@ -109,6 +108,7 @@ export default {
 		freshDetail,
 		contentText,
 		productBottom,
+		productBottomVip,
 		estimate
 	},
 	data() {
@@ -178,11 +178,10 @@ export default {
 	},
 	async onLoad(options) {
 		let obj = this;
-		userinfo({})
-			.then(({ data }) => {
-				obj.userInfo = data;
-				console.log(data,"123456")
-			})
+		userinfo({}).then(({ data }) => {
+			obj.userInfo = data;
+			console.log(data, '123456');
+		});
 		//保存商品id
 		this.goodsid = options.id;
 		this.goodsType = options.type;
@@ -194,7 +193,6 @@ export default {
 		if (options.isVip) {
 			obj.isVip = options.isVip;
 		}
-		console.log(obj.isVip, 'vip');
 		saveUrl();
 		this.goodsDetail();
 		// 注册邀请信息
@@ -430,38 +428,6 @@ export default {
 		buy() {
 			let obj = this;
 			console.log(obj.userInfo);
-			if (obj.userInfo.lock_spread_user == null) {
-				if (obj.userInfo.unlock_spread_user == null) {
-					uni.showModal({
-						title: '提示',
-						content: '您未绑定或锁定邀请人,无法购买会员礼包,是否前往绑定关系',
-						success: function(res) {
-							if (res.confirm) {
-								console.log('用户点击确定');
-								uni.navigateTo({
-									url: '/pages/set/user'
-								});
-							} else if (res.cancel) {
-								console.log('用户点击取消');
-							}
-						}
-					});
-					return;
-				} else {
-					uni.showModal({
-						title: '提示',
-						content: '已锁定邀请人:' + obj.userInfo.unlock_spread_user.phone + '购买商品后将绑定关系',
-						success: function(res) {
-							if (res.confirm) {
-								obj.buy1();
-							} else if (res.cancel) {
-								console.log('用户点击取消');
-							}
-						}
-					});
-					return;
-				}
-			}
 			// 创建传值对象
 			let data = {
 				cartNum: obj.goodsNumber, //商品数量
@@ -590,7 +556,7 @@ export default {
 			line-height: 66rpx;
 			border-radius: 100rpx;
 			// background: $uni-color-primary;
-			background: #FF4C4C;
+			background: #ff4c4c;
 			font-size: $font-base + 2rpx;
 			color: #fff;
 			margin: 30rpx auto 20rpx;
@@ -699,9 +665,9 @@ export default {
 			color: $font-color-dark;
 		}
 		.selected {
-			background: #FCEFF1;
-			border: 1px solid #EF041F;
-			color: #EF041F;
+			background: #fceff1;
+			border: 1px solid #ef041f;
+			color: #ef041f;
 		}
 	}
 }
@@ -781,5 +747,4 @@ page {
 		color: $uni-color-primary;
 	}
 }
-
 </style>

+ 0 - 403
pages/product/seckill.vue

@@ -1,403 +0,0 @@
-<template>
-	<view class="seckillBox">
-		<scroll-view scroll-x="true" class="class-box flex b-t" :scroll-left="scrollLeft" :scroll-with-animation="true">
-			<view @click="tabClass(idx)" class="item" :style="{ width: topNavWidth }" v-for="(item, idx) in indexList" :key="idx">
-				<view class="time" :class="{ action: idx == classIndex }">{{ item.time }}</view>
-				<view class="status" :class="{ action: idx == classIndex }">{{ item.state }}</view>
-			</view>
-		</scroll-view>
-		<swiper class="list-Box" :current="classIndex" @change="swiperChange" duration="500">
-			<swiper-item class="list-item" v-for="(ls, idx) in indexList">
-				<view class=" b-b position-relative">
-					<view class="title-box flex ">
-						<view class="title-box-left">
-							<text v-if="ls.status == 1">抢购中先下先得哦!</text>
-							<text v-if="ls.status == 2">精品好货即将开抢!</text>
-							<text v-if="ls.status == 0">本场已结束,下次早点来哦!</text>
-						</view>
-						<view class="title-box-right flex">
-							<text class="tip" v-if="ls.status == 1">距离结束</text>
-							<text class="tip" v-if="ls.status == 2">距离开始</text>
-							<uni-countdown
-								color="#F9F9F8"
-								background-color="#666666"
-								v-if="ls.status == 1 || ls.status == 2"
-								:show-day="false"
-								:hour="ls.stopTimeH"
-								:minute="ls.stopTimeM"
-								:second="ls.stopTimeS"
-							></uni-countdown>
-						</view>
-					</view>
-				</view>
-				<scroll-view scroll-y="true" class="list" @scrolltolower="getList(classIndex)">
-					<view class="goodsList-item flex" :key="ind" v-for="(lss, ind) in ls.dataList">
-						<image :src="lss.image" lazy-load mode="scaleToFill"></image>
-						<view class="goodsList-content">
-							<view class="title clamp">
-								<text>{{ lss.title }}</text>
-							</view>
-							<view class="slider flex">
-								<view class="slider-box"><view class="slider-action" :style="{ width: lss.percent + '%' }"></view></view>
-								<view class="sales-nub">已抢{{ lss.percent + '%' }}</view>
-							</view>
-							<view class="goods-money flex">
-								<view class="money-box">
-									<view class="money">
-										<text class="font-size-sm">¥</text>
-										{{ lss.price }}
-									</view>
-									<view class="otMoney-box">
-										<text class="otMoney">¥{{ lss.ot_price }}</text>
-									</view>
-								</view>
-								<view @click="navProduct(ls, ind)" class="cart" :class="{ 'seckill-action': ls.status == 1 }">
-									{{ ls.status == 1 ? '去抢购' : ls.status == 2 ? '未开始' : '已结束' }}
-								</view>
-							</view>
-						</view>
-					</view>
-					<uni-load-more :status="ls.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { getSeckillList, getSeckillClass } from '@/api/product.js';
-import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { timeComputed } from '@/utils/rocessor.js';
-export default {
-	components: {
-		uniCountdown,
-		uniLoadMore
-	},
-	data() {
-		return {
-			indexList: [], //分类列表
-			showTime: '', //显示的时间
-			showTImeId: '', //显示时间id用于查询数据
-			// 判断是否所有活动已经结束
-			stop: false, //活动是否已经结束
-			show: false, //是否显示活动
-			status: 0, //获取状态值1为有活动开始中 2为活动未开始 0为活动已经结束
-			topNavWidth: '25%', //设置导航默认宽度
-			classIndex: 0, //当前进行中的活动
-			itemWidht: 0 //顶部分类宽度
-		};
-	},
-	computed: {
-		// 计算左侧距离
-		scrollLeft() {
-			if (this.classIndex > 1) {
-				return this.itemWidht * (this.classIndex - 1.5);
-			} else {
-				return 0;
-			}
-		}
-	},
-	onLoad: function(e) {
-		// 载入分类
-		this.getClass();
-	},
-	methods: {
-		//抢购时间切换时触发效果
-		swiperChange(e) {
-			this.classIndex = e.target.current;
-			this.getList(this.classIndex, 'tabChange');
-		},
-		// 获取项目宽度
-		numClassWidht() {
-			uni.createSelectorQuery()
-				.select('.seckillBox')
-				.fields(
-					{
-						size: true
-					},
-					data => {
-						// 设置项目宽度
-						this.itemWidht = Math.floor((data.width / 750) * 187.5);
-					}
-				)
-				.exec();
-		},
-		// 切换当前选中的秒杀活动
-		tabClass(ind) {
-			// 保存当前选中的对象
-			this.classIndex = ind;
-		},
-		// 跳转到商品详情
-		navProduct(ls, ind) {
-			if (ls.status == 1) {
-				let data = ls.dataList[ind];
-
-				uni.navigateTo({
-					url: '/pages/product/product?id=' + data.id + '&type=1'
-				});
-			}
-		},
-		// 获取商品
-		getList(ind, source) {
-			// 获取数据对象
-			let date = this.indexList[ind];
-			console.log(date, source);
-			if (source === 'tabChange' && date.loaded === true) {              
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (date.loadingType === 'noMore') {
-				//防止重复加载
-				return;
-			}
-			if (date.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			date.loadingType = 'loading';
-			getSeckillList(
-				{
-					page: date.page,
-					limit: date.limit
-				},
-				date.id
-			)
-				.then(e => {
-					date.dataList.push(...e.data);
-					// 查询翻页增加
-					date.page++;
-					// 判断是否可以继续加载
-					if (date.limit == e.data.length) {
-						date.loadingType = 'more';
-					} else {
-						date.loadingType = 'noMore';
-					}
-					// 设置当前数据已加载完毕
-					this.$set(date, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 获取秒杀时间段
-		getClass() {
-			let obj = this;
-			getSeckillClass({})
-				.then(({ data }) => {
-					obj.indexList = data.seckillTime.map((e, ind) => {
-						// 初始化翻页页数
-						e.page = 1;
-						// 初始每次加载的数据条数
-						e.limit = 6;
-						// 创建储存订单数据
-						e.dataList = [];
-						// 初始化加载
-						e.loadingType = 'more';
-						let ar = e;
-						// 判断是否为进行中的活动
-						if (ar.status === 1) {
-							// 计算倒计时时间
-							obj.timeComputed(ar.stop * 1000, ar);
-						} else {
-							// 获取距离开始还需要多少时间
-							let arTime = ar.time.split(':');
-							let h = arTime[0];
-							let m = arTime[1];
-							let time = new Date();
-							// 设置时间
-							time.setHours(h, m, 0);
-							// 计算倒计时时间
-							obj.timeComputed(time.getTime(), ar);
-						}
-
-						return e;
-					});
-					// 获取当前活动中的下标值
-					obj.classIndex = data.seckillTimeIndex;
-					// 获取当前显示中对象的数据
-					obj.$nextTick(() => {
-						obj.getList(obj.classIndex);
-					});
-					if (obj.indexList.length <= 4) {
-						// 当数量小于等于4的时候自适应宽度
-						obj.topNavWidth = 100 / obj.indexList.length + '%';
-					} else {
-						// 页面渲染完毕后加载scroll-view左侧距离
-						obj.$nextTick(() => {
-							obj.numClassWidht();
-						});
-					}
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 计算倒计时时间
-		timeComputed(da, ar) {
-			let obj = this;
-			// 计算时间,保存需要多少时间到期
-			let stopTime = timeComputed(da);
-			console.log(stopTime);
-			ar.stopTimeH = stopTime.hours;
-			ar.stopTimeM = stopTime.minutes;
-			ar.stopTimeS = stopTime.seconds;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.seckillBox {
-	min-height: 100%;
-	height: 100%;
-}
-// 头部时间段样式
-.class-box {
-	white-space: nowrap;
-	height: 60px;
-	.item {
-		text-align: center;
-		display: inline-block;
-		color: $font-color-base;
-		padding: 11.5px 5px;
-		background-color: #ffffff;
-		line-height: 1;
-		.time {
-			font-size: 16px;
-			padding-bottom: 3px;
-			&.action {
-				color: $color-red;
-			}
-		}
-		.status {
-			font-size: 12px;
-			margin: 0 auto;
-			width: 60px;
-			padding: 3px 0;
-			&.action {
-				color: #ffffff;
-				border-radius: 99px;
-				background-color: $color-red;
-			}
-		}
-	}
-}
-// 列表上方标题样式
-.title-box {
-	margin-top: 10px;
-	padding: 10px;
-	background-color: #ffffff;
-	.title-box-left {
-		font-size: 15px;
-		color: $font-color-base;
-	}
-	.title-box-right {
-		.tip {
-			font-size: 15px;
-			color: #999999;
-			padding-right: 5px;
-		}
-
-		/deep/ .uni-countdown__number {
-			border-radius: 3px;
-			width: 22px;
-		}
-		/deep/ .uni-countdown__splitor,
-		/deep/ .uni-countdown__number {
-			height: 20px;
-			line-height: 18px;
-		}
-	}
-}
-// 列表样式
-.list-Box {
-	height: calc(100% - 60px);
-	.list {
-		height: calc(100% - 55px);
-	}
-}
-// 商品列表
-$slider-color: #fe9398; //滑块左侧颜色
-.goodsList-item {
-	background-color: #ffffff;
-	padding: 30rpx;
-	border-bottom: 1px solid $border-color-light;
-	image {
-		flex-shrink: 0;
-		border-radius: $border-radius-sm;
-		height: 180rpx;
-		width: 180rpx;
-	}
-	.slider {
-		margin-top: 15rpx;
-		justify-content: flex-start;
-		.slider-box {
-			width: 196rpx;
-			border-radius: 99px;
-			border: 1px solid $slider-color;
-			height: 16rpx;
-			.slider-action {
-				background-color: $slider-color;
-				height: 100%;
-			}
-		}
-		.sales-nub {
-			color: $font-color-light;
-			font-size: 24rpx;
-			padding-left: 20rpx;
-		}
-	}
-	.goodsList-content {
-		margin-left: 20rpx;
-		flex-grow: 1;
-		height: 180rpx;
-		position: relative;
-		.title {
-			font-size: $font-base;
-			color: $font-color-dark;
-			font-weight: 500;
-			width: 0;
-			min-width: 100%;
-		}
-		.goods-money {
-			position: absolute;
-			left: 0;
-			bottom: 0;
-			width: 100%;
-			.money-box {
-				.money {
-					font-size: $font-lg + 10rpx;
-					color: $color-red;
-					font-weight: bold;
-				}
-				.otMoney-box {
-					font-size: $font-sm;
-					.otMoney {
-						color: $font-color-light;
-						padding-right: 20rpx;
-						text-decoration: line-through;
-					}
-					.sales {
-						color: $font-color-light;
-					}
-				}
-			}
-			.cart {
-				font-size: $font-base;
-				border-radius: 99px;
-				padding: 15rpx 30rpx;
-				line-height: 1;
-				color: #ffffff;
-				background-color: $color-gray;
-				&.seckill-action {
-					border: 1px solid $color-red;
-					background-color: $color-red;
-				}
-			}
-		}
-	}
-}
-</style>

+ 204 - 0
pages/product/vip.vue

@@ -0,0 +1,204 @@
+<template>
+	<view class="container">
+		<view class="jx-box-content" v-for="(item, index) in list">
+			<view class="content-left"><image :src="item.image" mode=""></image></view>
+			<view class="content-right">
+				<view class="shop-name">{{ item.store_name }}</view>
+				<view class="shop-content">
+					<view class="shop-content-left">
+						<view class="price-box">
+							<view class="yuan-price">¥{{ item.ot_price * 1 }}</view>
+							<image src="../../static/sy/sy06.png" mode=""></image>
+							<view class="j-price">直降{{ (item.ot_price - item.price).toFixed(2) * 1 }}元</view>
+						</view>
+						<view class="price-x">¥{{ item.price * 1 }}</view>
+					</view>
+					<view class="shop-content-right" @click="navToDetailPage(item)">购买</view>
+				</view>
+			</view>
+		</view>
+		<uni-load-more :status="loadingType"></uni-load-more>
+	</view>
+</template>
+
+<script>
+import { getProducts } from '@/api/product.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	data() {
+		return {
+			list: [],
+			page: 1,
+			limit: 10,
+			loadingType: 'more'
+		};
+	},
+	components: {
+		empty,
+		uniLoadMore
+	},
+	onLoad(option) {
+		// 获取查询对象
+		this.type = option.type;
+		// 加载基础数据
+		this.loadData();
+	},
+	onReachBottom() {
+		this.loadData();
+	},
+	methods: {
+		navTo: function(ls) {
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + ls.id
+			});
+		},
+		// 请求载入数据
+		async loadData() {
+			let obj = this;
+			if (this.loadingType == 'noMore' || this.loadingType == 'loading') {
+				return;
+			}
+			this.loadingType = 'loading';
+			getProducts({
+				page: obj.page,
+				limit: obj.limit,
+				cid: 52
+			})
+				.then(({ data }) => {
+					// 保存商品信息
+					this.list = data;
+					if (data.limit == obj.limit) {
+						obj.loadingType = 'more';
+						obj.page++;
+					} else {
+						obj.loadingType = 'noMore';
+					}
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		navToDetailPage(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id + '&isVip=1'
+			});
+		},
+		// 轮播图跳转
+		bannerNavToUrl(item) {
+			// #ifdef H5
+			if (item.wap_link.indexOf('http') > 0) {
+				window.location.href = item.wap_link;
+			}
+			// #endif
+			if (item.wap_link) {
+				uni.navigateTo({
+					url: item.wap_link
+				});
+			}
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #fff;
+}
+.jx-box-content {
+	margin: 20rpx auto 0;
+	display: flex;
+	width: 710rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	padding: 20rpx 30rpx 20rpx 14rpx;
+	.content-left {
+		flex-shrink: 0;
+		width: 236rpx;
+		height: 236rpx;
+		background: #e2e2e2;
+		border-radius: 10rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.content-right {
+		width: 100%;
+		margin-left: 20rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+
+		.shop-name {
+			width: 382rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #333333;
+
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
+		}
+
+		.shop-content {
+			display: flex;
+			justify-content: space-between;
+
+			.shop-content-left {
+				display: flex;
+				flex-direction: column;
+
+				.price-box {
+					display: flex;
+					align-items: center;
+					.yuan-price {
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
+					}
+
+					image {
+						margin-left: 8rpx;
+						width: 16rpx;
+						height: 18rpx;
+					}
+
+					.j-price {
+						margin-left: 8rpx;
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #b59467;
+					}
+				}
+
+				.price-x {
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #ff4c4c;
+				}
+			}
+
+			.shop-content-right {
+				margin-top: 20rpx;
+				align-items: center;
+				text-align: center;
+				width: 137rpx;
+				height: 52rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #ffffff;
+				background: linear-gradient(90deg, #bb9159, #e6c79d);
+				border-radius: 26rpx;
+				line-height: 52rpx;
+			}
+		}
+	}
+}
+</style>

+ 43 - 69
pages/redirect/redirect.vue

@@ -1,10 +1,9 @@
 <template>
-	<view>
-	</view>
+	<view></view>
 </template>
 <script>
 import { getUserInfo } from '@/api/user.js';
-import { mapMutations,mapState } from 'vuex';
+import { mapMutations, mapState } from 'vuex';
 // #ifdef H5
 import { wechatAuth } from '@/api/wx';
 // #endif
@@ -19,30 +18,32 @@ export default {
 		let obj = this;
 		// 判断是否需要保存定向地址
 		// #ifdef H5
-		this.loadH5()
+		this.loadH5();
 		// #endif
 		// #ifdef MP-WEIXIN
-		this.loadMp(option)
+		this.loadMp(option);
 		// #endif
 	},
 	methods: {
-		...mapMutations('user',['login', 'setUserInfo']),
+		...mapMutations('user', ['login', 'setUserInfo']),
 		// #ifdef H5
 		loadH5() {
 			let obj = this;
 			let url = window.location.href;
 			let code = url.match(/code=([0-9]|[a-z]|[A-Z])*/g)[0].replace('code=', '');
 			wechatAuth({
-				code: code,
-			}).then(({ data }) => {
-				obj.wchatAuth(data);
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
+				code: code
+			})
+				.then(({ data }) => {
+					obj.wchatAuth(data);
+				})
+				.catch(e => {
+					uni.showModal({
+						title: '错误',
+						content: JSON.stringify(e),
+						showCancel: false
+					});
 				});
-			});;
 		},
 		// #endif
 		// #ifdef MP-WEIXIN
@@ -66,17 +67,19 @@ export default {
 				spread_spid: spread_spid,
 				// #endif
 				// #ifdef MP
-				spread_code:spread_code
+				spread_code: spread_code
 				// #endif
-			}).then(({ data }) => {
-				obj.wchatAuth(data);
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
+			})
+				.then(({ data }) => {
+					obj.wchatAuth(data);
+				})
+				.catch(e => {
+					uni.showModal({
+						title: '错误',
+						content: JSON.stringify(e),
+						showCancel: false
+					});
 				});
-			});
 		},
 		// #endif
 		wchatAuth(data) {
@@ -84,66 +87,37 @@ export default {
 			// 保存token
 			uni.setStorageSync('token', data.token);
 			// 获取用户基础信息
-			getUserInfo({}).then(e => {
-				obj.login();
-				// 保存返回用户数据
-				obj.setUserInfo(e.data);
-				let ur = uni.getStorageSync('present')|| '/pages/index/index';
-				// 用于处理缓存bug
-				if (ur=='pages/product/product') {
-					ur = '/pages/index/index'
-				}
-				if (e.data.phone) {
+			getUserInfo({})
+				.then(e => {
+					obj.login();
+					// 保存返回用户数据
+					obj.setUserInfo(e.data);
+					let ur = uni.getStorageSync('present') || '/pages/index/index';
+					// 用于处理缓存bug
+					if (ur == 'pages/product/product') {
+						ur = '/pages/index/index';
+					}
 					uni.switchTab({
 						url: ur,
 						fail(e) {
-							console.log(e);
 							uni.navigateTo({
 								url: ur,
 								fail(e) {
-									console.log(e);
-									uni.switchTab({
+									uni.navigateTo({
 										url: '/pages/index/index'
 									});
 								}
 							});
 						}
 					});
-				} else {
+				})
+				.catch(e => {
 					uni.showModal({
-						title: '提示',
-						content: '请先绑定手机号',
-						showCancel: false,
-						success: res => {
-							uni.navigateTo({
-								url: '/pages/set/phone'
-							});
-						},
-						fail(e) {
-							console.log(e);
-						}
+						title: '错误',
+						content: JSON.stringify(e),
+						showCancel: false
 					});
-				}
-				// uni.switchTab({
-				// 	url: ur,
-				// 	fail(e) {
-				// 		uni.navigateTo({
-				// 			url: ur,
-				// 			fail(e) {
-				// 				uni.navigateTo({
-				// 					url: '/pages/index/index',
-				// 				});
-				// 			}
-				// 		});
-				// 	}
-				// });
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
 				});
-			});;
 		}
 	}
 };

+ 0 - 161
pages/set/password.vue

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

+ 0 - 167
pages/set/user.vue

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

+ 157 - 35
pages/set/userinfo.vue

@@ -1,40 +1,71 @@
 <template>
 	<view class="content">
-		<view class="row b-b">
+		<view class="row1">
+			<text class="tit">头像</text>
+			<view class="background-img" @click.stop="imgsub"><image class="background-img" v-model="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill"></image></view>
+		</view>
+		<view class="row">
 			<text class="tit">昵称</text>
-			<input class="input" type="text" v-model="name" placeholder="修改昵称" placeholder-class="placeholder" />
+			<input class="input" type="text" v-model="userInfo.nickname" placeholder-class="placeholder" />
+		</view>
+		<view class="row">
+			<text class="tit">ID</text>
+			<input class="input" type="text" disabled="true" v-model="userInfo.uid" placeholder-class="placeholder" />
+		</view>
+		<view class="row">
+			<text class="tit">账户</text>
+			<input class="input" type="text" disabled="true" v-model="userInfo.phone" placeholder-class="placeholder" />
 		</view>
-		<button class="add-btn" @click="confirm">提交</button>
+		<view class="add-btn" @click="confirm">提交</view>
+		<!-- <view class="out" @click="cancel">注销账户</view> -->
+		<uni-popup ref="popup" type="center">
+			<view class="psw-wrapper">
+				<view class="psw-title">请输入自己的账户</view>
+				<input type="text" v-model="password" class="psw-ipt" />
+				<view class="psw-btn">
+					<text @click.stop="qx">取消</text>
+					<text class="psw-qd" @click.stop="pswQd">确定</text>
+				</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
 <script>
-import { mapState } from 'vuex';
-import { userEdit } from '@/api/set.js';
+import { mapState, mapMutations } from 'vuex';
+import { upload } from '@/api/order.js';
+import { userEdit, logout } from '@/api/set.js';
 export default {
 	data() {
 		return {
-			name: ''
+			show: false,
+			password: ''
 		};
 	},
-
+	onLoad() {
+		console.log(this.userInfo);
+	},
 	computed: {
 		...mapState('user', ['userInfo'])
 	},
-	onShow(option) {
-		this.name = this.userInfo.nickname + '';
-	},
 	methods: {
-		switchChange(e) {
-			this.addressData.default = e.value;
+		...mapMutations('user', ['logout']),
+		imgsub() {
+			console.log('上传头像');
+			upload({
+				filename: ''
+			}).then(data => {
+				console.log('data', data);
+				this.userInfo.avatar = data[0].url;
+			});
 		},
 		confirm() {
-			userEdit({ nickname: this.name, avatar: this.userInfo.avatar })
+			userEdit({ avatar: this.userInfo.avatar, nickname: this.userInfo.nickname })
 				.then(e => {
 					this.$api.msg('修改成功');
-					setTimeout(()=> {
+					setTimeout(() => {
 						uni.switchTab({
-							url:'/pages/user/user'
+							url: '/pages/user/user'
 						});
 					}, 1000);
 					console.log(e);
@@ -42,21 +73,74 @@ export default {
 				.catch(e => {
 					console.log(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();
+					}
+				}
+			});
+		},
+		cancel() {
+			this.$refs.popup.open();
+		},
+		qx() {
+			this.password = '';
+			this.$refs.popup.close();
+		},
+		pswQd() {
+			if (this.password != this.userInfo.phone) {
+				this.$refs.popup.close();
+				this.password = '';
+				this.$api.msg('请输入自己的账户');
+				return;
+			}
+			this.$refs.popup.close();
+			this.password = '';
+			this.$api.msg('申请注销成功,请耐心等待审核');
 		}
 	}
 };
 </script>
 
 <style lang="scss">
-page {
-	background: $page-color-base;
-	padding-top: 16upx;
-}
+.row1 {
+	display: flex;
+	align-items: center;
+	justify-content: space-between;
+	position: relative;
+	padding: 0 30upx;
+	height: 110upx;
+	background: #fff;
+	margin-bottom: 20upx;
+	.tit {
+		flex-shrink: 0;
+		width: 120upx;
+		font-size: $font-lg;
+		color: $font-color-dark;
+	}
 
+	.background-img {
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
+		background: #f2f2f2;
+	}
+}
 .row {
 	display: flex;
 	align-items: center;
-	position: relative;
 	padding: 0 30upx;
 	height: 110upx;
 	background: #fff;
@@ -64,30 +148,68 @@ page {
 	.tit {
 		flex-shrink: 0;
 		width: 120upx;
-		font-size: 30upx;
+		font-size: $font-lg;
 		color: $font-color-dark;
 	}
 	.input {
 		flex: 1;
-		font-size: 30upx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36upx;
-		color: $font-color-light;
+		text-align: right;
+		font-size: $font-base;
+		color: $color-gray;
 	}
 }
 .add-btn {
 	display: flex;
 	align-items: center;
 	justify-content: center;
-	width: 690upx;
-	height: 80upx;
-	margin: 60upx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10upx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+	margin: 158rpx auto 30rpx;
+	width: 560rpx;
+	height: 80rpx;
+	background: #dc262b;
+	border-radius: 40px;
+	color: #ffffff;
+}
+.out {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	margin: 0 auto 30rpx;
+	width: 560rpx;
+	height: 80rpx;
+	border: 1px solid #32c6ff;
+	background: #ffffff;
+	border-radius: 40px;
+	color: #32c6ff;
+}
+.psw-wrapper {
+	width: 548rpx;
+	height: 344rpx;
+	background-color: #ffffff;
+	.psw-title {
+		width: 100%;
+		font-size: 35rpx;
+		padding: 43rpx 0 49rpx;
+		text-align: center;
+		font-weight: 800;
+	}
+	.psw-ipt {
+		display: block;
+		background-color: #dce3ed;
+		height: 90rpx;
+		width: 464rpx;
+		padding-left: 30rpx;
+		margin: 0 auto;
+		font-size: 80rpx;
+	}
+	.psw-btn text {
+		display: inline-block;
+		text-align: center;
+		width: 50%;
+		padding-top: 29rpx;
+		font-size: 35rpx;
+	}
+	.psw-qd {
+		color: #32c6ff;
+	}
 }
 </style>

+ 300 - 211
pages/shoping/list.vue

@@ -1,259 +1,348 @@
 <template>
-	<view class="content">
-		<view class="varHeight"></view>
-		<view class="jg" style="height: 20rpx;"></view>
-		<block :key="ind" v-for="(lss, ind) in list">
-			<view class="goodsList-item" v-if="lss.show" @click="chooseStore(lss)">
-				<view class="info-top flex">
-					<image :src="lss.image" lazy-load mode="scaleToFill"></image>
-					<view class="store-name clamp2">
-						{{lss.name}}
+	<view class="center">
+		<!-- <view class="search-top">
+			<view class="search flex">
+				<view class="shop-name clamp">椒江区</view>
+				<image class="shop-jt" src="../../static/icon/dsjh.png" mode=""></image>
+				<view class="input-box flex">
+					<view class=" input-content flex">
+						<image src="../../static/icon/search-h.png" mode="" class="" style="width: 32rpx;height: 32rpx;"></image>
+						<view class="input"><input type="text" value="输入关键字搜索" /></view>
 					</view>
 				</view>
-				<view class="tag">
-					门店
+				<view class="search-tit" @click.stop="clickSearch">搜索</view>
+			</view>
+			<view class="shop">
+				<view class="shop-title">
+					<view class="shop-item">
+						<view class="sitem-font">智能排序</view>
+						<image class="jt-down" src="../../static/sy/index06.png" mode=""></image>
+					</view>
+					<view class="shop-item">
+						<view class="sitem-font">位置距离</view>
+						<image class="jt-down" src="../../static/sy/index06.png" mode=""></image>
+					</view>
+					<view class="shop-item">
+						<view class="sitem-font">折扣优惠</view>
+						<image class="jt-down" src="../../static/sy/index06.png" mode=""></image>
+					</view>
+					<view class="shop-item">
+						<view class="sitem-font">筛选</view>
+						<image class="jt-down" src="../../static/sy/index06.png" mode=""></image>
+					</view>
 				</view>
-				<view class="goodsList-content">
-					<view class="info-tit">地区:<text class="info-val">{{lss.address}}</text></view>
-					<view class="info-tit">电话:<text class="info-val">{{lss.phone }}</text></view>
-					<view class="info-tit">地址:<text class="info-val">{{lss.detailed_address}}</text></view>
+			</view>
+		</view> -->
+		<!-- <view class="jg" style="height: 180rpx;"></view> -->
+		<view class="shop">
+			<view class="shop-main flex" v-for="(item, index) in stop" :key="index" @click="navTo('/pages/shoping/storeInfo?id=' + item.id)">
+				<image class="main-left" :src="item.image" mode=""></image>
+				<view class="main-right flex">
+					<view class="shopm-info">
+						<view class="shopm-title">
+							<view class="shopmt-font clamp">{{ item.name }}</view>
+						</view>
+						<!-- <view class="address">椒江区市府大道200号</view> -->
+						<view class="shopmt-tip">{{ item.detailed_address }}</view>
+					</view>
+					<view class="right">
+						<view class="mright-top" v-if="item.jl">
+							<image class="mrt-image" src="../../static/sy/index10.png" mode=""></image>
+							<view class="mrt-font">距离{{ item.jl }}KM</view>
+						</view>
+						<view class="mright-bottom">
+							<image class="mrb-item" src="../../static/sy/index14.png" mode=""></image>
+							<image class="mrb-item" src="../../static/sy/index11.png" mode=""></image>
+						</view>
+					</view>
 				</view>
 			</view>
-		</block>
-		<view class="jg" style="height: 20rpx;"></view>
+		</view>
 	</view>
 </template>
+
 <script>
-import { mapState, mapMutations } from 'vuex';
 import { store_list } from '@/api/index.js';
 export default {
 	data() {
 		return {
-			// 当前选中的滑块
-			list: [],
-			keyword: '' ,//查询中的内容
-			type: 0,//3->开通会员选择门店  4->自提选择门店  5->附近门店进入不做任何操作
+			stop: [],
+			longitude: '',
+			latitude: ''
 		};
 	},
-	watch: {
-		keyword(newValue, oldValue) {
-			this.keyword = newValue;
-			console.log(newValue);
-			this.search();
-		}
-	},
-	computed: {
-		...mapState(['latitude','longitude'])
+	onLoad() {
+		this.loadData();
 	},
-	onLoad(opt) {
-		if(opt.type) {
-			this.type = opt.type
-		}
-		this.getShoping();
-	},
-	// #ifndef MP
-	// 点击键盘搜索事件
-	onNavigationBarSearchInputConfirmed(e) {
-		this.search();
-	},
-	// 搜索栏内容变化事件
-	onNavigationBarSearchInputChanged(e) {
-		this.keyword = e.text;
-	},
-	// #endif
 	methods: {
-		...mapMutations(['setLat', 'setLon','setStoreInfo']),
-		// 查询店铺信息
-		search(title) {
+		loadData() {
 			let obj = this;
-			obj.list.forEach(e => {
-				if (e.title.indexOf(obj.keyword) >= 0) {
-					e.show = true;
-				} else {
-					e.show = false;
+			// store_list({
+			// 	page: 1,
+			// 	limit: 100
+			// }).then(e => {
+			// 	if (e.data.length != 0) {
+			// 		e.data.list.forEach(e => {
+			// 			e.jl = this.getFlatternDistance(this.latitude, this.longitude, e.latitude, e.longitude);
+			// 		});
+			// 	}
+			// 	obj.stop = e.data.list;
+			// 	console.log(e);
+			// });
+			uni.getLocation({
+				type: 'gcj02',
+				success: res => {
+					console.log('dizhi+++++++++++');
+					this.longitude = res.longitude; //经度
+					this.latitude = res.latitude; //纬度
+					store_list({
+						page: 1,
+						limit: 100,
+						latitude: res.latitude,
+						longitude: res.longitude
+					}).then(e => {
+						if (e.data.length != 0) {
+							e.data.list.forEach(e => {
+								e.jl = this.getFlatternDistance(this.latitude, this.longitude, e.latitude, e.longitude);
+							});
+						}
+						obj.stop = e.data.list;
+						console.log(e);
+					});
+				},
+				fail: err => {
+					console.log(err);
+					openMap().then(e => {
+						this.getaddress();
+					});
 				}
 			});
 		},
-		// 跳转店铺页面
-		navProduct(item) {
-			uni.navigateTo({
-				url: './index?merid=' + item.id
-			});
+		//根据经纬度计算距离
+		getFlatternDistance(lat1, lng1, lat2, lng2) {
+			let radLat1 = (lat1 * Math.PI) / 180.0;
+			let radLat2 = (lat2 * Math.PI) / 180.0;
+			let a = radLat1 - radLat2;
+			let b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
+			let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+			s = s * 6378.137;
+			s = Math.round(s * 10000) / 10000;
+			return s;
 		},
-		//获取商店信息
-		getShoping() {
-			let obj = this;
-			console.log(obj.longitude,obj.latitude)
-			store_list({})
-				.then(function({ data }) {
-					console.log(data)
-					obj.list = data.list.map(e => {
-						e.show = true;
-						return e;
+		navTo(url) {
+			uni.navigateTo({
+				url,
+				fail() {
+					uni.switchTab({
+						url
 					});
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		//选择门店
-		chooseStore(item) {
-			if(this.type == 3) {
-				this.$api.prePage().storeInfo = item
-				uni.navigateBack({
-					
-				})
-			}else if(this.type == 4) {
-				this.$api.prePage().shopAddress = item
-				uni.navigateBack({
-					
-				})
-				
-			}else if(this.type == 5) {
-				
-			}else {
-				this.setStoreInfo(item)
-				uni.navigateBack({
-					
-				})
-			}
-			
+				}
+			});
 		}
 	}
 };
 </script>
 
-<style lang="scss">
-page,
-.content {
-	height: 100%;
+<style lang="less">
+.kong {
+	height: 100vh;
 }
-.varHeight {
-	height: var(--status-bar-height);
+.search-top {
+	position: fixed;
+	top: 0;
+	z-index: 99;
 }
-$slider-color: #fe9398; //滑块左侧颜色
-.goodsList-item {
-	// background-color: #ffffff;
-	// padding: 30rpx;
-	// border-bottom: 1px solid $border-color-light;
-	margin: 0 auto 20rpx;
-	width: 710rpx;
-	height: 231rpx;
-	padding: 25rpx 20rpx;
-	background: #FFFFFF;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 10rpx;
-	position: relative;
-	.tag {
-		width: 60rpx;
-		line-height: 40rpx;
-		background: #FF6F0F;
-		border-radius: 5rpx;
-		font-size: 24rpx;
+.search {
+	justify-content: flex-start;
+	padding: 10rpx 32rpx 20rpx;
+	align-items: center;
+	background-color: #fff;
+
+	.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;
-		text-align: center;
-		position: absolute;
-		top: 25rpx;
-		right: 20rpx;
-	}
-	.info-top {
-		justify-content: flex-start;
-		.store-name {
-			max-width: 500rpx;
-			font-size: 32rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #333333;
-			padding-left: 11rpx;
-		}
+		color: #666;
+		padding-left: 10rpx;
 	}
-	image {
-		flex-shrink: 0;
-		// border-radius: $border-radius-sm;
-		// height: 180rpx;
-		// width: 180rpx;
-		width: 65rpx;
-		height: 65rpx;
-		border-radius: 50%;
+
+	.shop-jt {
+		margin-left: 8rpx;
+		width: 16rpx;
+		height: 10rpx;
 	}
-	.slider {
-		margin-top: 15rpx;
-		justify-content: flex-start;
-		.slider-box {
-			width: 196rpx;
-			border-radius: 99px;
-			border: 1px solid $slider-color;
-			height: 16rpx;
-			.slider-action {
-				background-color: $slider-color;
-				height: 100%;
+
+	.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;
+			flex-grow: 1;
+			padding: 5rpx 30rpx;
+			background: #f6f6f6;
+
+			.iconsearch {
+				font-size: 50rpx;
+				color: #ffffff;
+			}
+
+			.input {
+				margin-left: 19rpx;
+				flex-grow: 1;
+				color: #666;
+				background: #f6f6f6;
+
+				input {
+					font-size: 28rpx;
+				}
 			}
 		}
-		.sales-nub {
-			color: $font-color-light;
-			font-size: 24rpx;
-			height: 2.5em;
-			overflow: hidden;
+
+		.input-button {
+			padding-left: 20rpx;
+			// font-size: $font-base;
+			height: 100%;
 		}
 	}
-	.goodsList-content {
-		// margin-left: 20rpx;
-		flex-grow: 1;
-		// height: 180rpx;
-		position: relative;
-		padding-top: 20rpx;
-		.info-tit {
-			line-height: 1.5;
-			font-size: 24rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #333333;
-			.info-val {
-				font-weight: 500;
-				
+
+	.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;
+		display: flex;
+		align-items: center;
+		border-bottom: 1px solid #e3e6e7;
+
+		.shop-item {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.sitem-font {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
+
+			.jt-down {
+				width: 10rpx;
+				height: 8rpx;
+				margin-left: 12rpx;
 			}
 		}
-		.title {
-			font-size: $font-base;
-			color: $font-color-dark;
-			font-weight: 500;
-			width: 0;
-			min-width: 100%;
+	}
+
+	.shop-main {
+		padding: 32rpx 18rpx 0 12rpx;
+		align-items: flex-start;
+		justify-content: flex-start;
+
+		.main-left {
+			width: 180rpx;
+			height: 180rpx;
+			border-radius: 10rpx;
 		}
-		.goods-money {
-			position: absolute;
-			left: 0;
-			bottom: 0;
-			width: 100%;
-			.money-box {
-				.money {
-					font-size: $font-lg + 10rpx;
-					color: $color-red;
-					font-weight: bold;
+
+		.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-tip {
+					position: relative;
+					margin-top: 92rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #666666;
 				}
-				.otMoney-box {
-					font-size: $font-sm;
-					.otMoney {
-						color: $font-color-light;
-						padding-right: 20rpx;
+			}
+
+			.right {
+				height: 100%;
+				margin-top: 5rpx;
+				display: flex;
+				flex-direction: column;
+
+				.mright-top {
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
+
+					.mrt-image {
+						width: 20rpx;
+						height: 28rpx;
 					}
-					.sales {
-						color: $font-color-light;
+
+					.mrt-font {
+						margin-left: 8rpx;
+						font-size: 22rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
 					}
 				}
-			}
-			.cart {
-				font-size: $font-base - 2rpx;
-				border-radius: 99px;
-				padding: 10rpx 20rpx;
-				line-height: 1;
-				color: #ffffff;
-				background-color: $color-gray;
-				&.seckill-action {
-					border: 1px solid $color-red;
-					background-color: $color-red;
+
+				.mright-bottom {
+					margin-top: 80rpx;
+					display: flex;
+					justify-content: flex-end;
+
+					.mrb-item {
+						width: 46rpx;
+						height: 46rpx;
+						margin-left: 14rpx;
+					}
 				}
 			}
 		}

+ 338 - 0
pages/shoping/storeInfo.vue

@@ -0,0 +1,338 @@
+<template>
+	<view class="center">
+		<view class="store-info flex">
+			<view class="store-top flex">
+				<image class="simage" :src="info.image" mode=""></image>
+				<view class="stop-main">
+					<view class="stop-title">{{ info.name }}</view>
+					<view class="stop-address" v-if="info.jl">
+						<image class="mrt-image" src="../../static/sy/index10.png" mode=""></image>
+						<view class="mrt-font">距离{{ info.jl }}KM</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="store-item">
+			<image class="store-image1" src="../../static/img/store2.png" mode=""></image>
+			<view class="store-font">营业时间:{{ info.day_time }}</view>
+		</view>
+		<view class="store-item">
+			<image class="store-image2" src="../../static/img/store3.png" mode=""></image>
+			<view class="store-font">商家电话:{{ info.phone }}</view>
+		</view>
+		<view class="store-item">
+			<image class="store-image3" src="../../static/img/store1.png" mode=""></image>
+			<view class="store-font">门店地址:{{ info.detailed_address }}</view>
+		</view>
+		<view class="store-main" v-if="info.slider_image != null">
+			<view class="smain-title">门头照片</view>
+			<scroll-view class="scroll-box flex" @scroll="scroll" scroll-x="true" :scroll-with-animation="true" scroll-left="10px">
+				<view class="scroll-item" v-for="(item, index) in info.slider_image" :key="index"><image class="scroll-image" :src="item" mode="heightFix"></image></view>
+			</scroll-view>
+		</view>
+		<view class="store-main" v-if="info.images != null">
+			<view class="smain-title">店内图片</view>
+			<scroll-view class="scroll-box flex" @scroll="scroll" scroll-x="true" :scroll-with-animation="true" scroll-left="10px">
+				<view class="scroll-item" v-for="(item, index) in info.images" :key="index"><image class="scroll-image" :src="item" mode="heightFix"></image></view>
+			</scroll-view>
+		</view>
+		<view class="btn-box flex">
+			<view class="btn-left" @click="tocall()">联系商家</view>
+			<view class="btn-right" @click="markertap()">导航到店</view>
+		</view>
+		<uni-popup ref="popup" type="bottom" @click="close">
+			<view class="popup_row">
+				<view class="rows">
+					<view class="rows-item" @click="toGaodeMap">高德地图</view>
+					<view class="rows-item" @click="tobaiDuMap">百度地图</view>
+					<!-- <view class="rows-item" @click="totengxunMap">腾讯地图</view> -->
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+import { store_details } from '@/api/index.js';
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+export default {
+	data() {
+		return {
+			id: '',
+			info: '',
+			longitude: '',
+			latitude: '',
+			latitude1: '',
+			longitude1: '',
+			address: ''
+		};
+	},
+	onLoad(option) {
+		this.id = option.id;
+		this.loadData();
+	},
+	methods: {
+		markertap(e) {
+			this.$refs.popup.open();
+		},
+		loadData() {
+			const obj = this;
+			// store_details({}, this.id).then(({ data }) => {
+			// 	console.log(data);
+			// 	this.info = data;
+			// });
+			uni.getLocation({
+				type: 'gcj02',
+				success: res => {
+					console.log('dizhi+++++++++++');
+					this.longitude = res.longitude; //经度
+					this.latitude = res.latitude; //纬度
+					store_details({}, this.id).then(({ data }) => {
+						obj.longitude1 = data.longitude;
+						obj.latitude1 = data.latitude;
+						obj.address = data.detailed_address;
+						data.jl = this.getFlatternDistance(this.latitude, this.longitude, data.latitude, data.longitude);
+						this.info = data;
+					});
+				},
+				fail: err => {
+					console.log(err);
+					openMap().then(e => {
+						this.getaddress();
+					});
+				}
+			});
+		},
+		//根据经纬度计算距离
+		getFlatternDistance(lat1, lng1, lat2, lng2) {
+			let radLat1 = (lat1 * Math.PI) / 180.0;
+			let radLat2 = (lat2 * Math.PI) / 180.0;
+			let a = radLat1 - radLat2;
+			let b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
+			let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+			s = s * 6378.137;
+			s = Math.round(s * 10000) / 10000;
+			return s;
+		},
+		scroll(e) {
+			console.log(e, '123456');
+		},
+		tocall() {
+			let num = this.info.phone;
+			console.log(num);
+			uni.makePhoneCall({
+				phoneNumber: num //仅为示例
+			});
+		},
+		// 调用高德
+		toGaodeMap() {
+			let latitude = this.latitude1;
+			let longitude = this.longitude1;
+			let address = this.address;
+			console.log('选择高德', latitude, longitude, address);
+			window.location.href = `https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}`;
+		},
+		// 调用腾讯
+		totengxunMap() {
+			let latitude = this.latitude1;
+			let longitude = this.longitude1;
+			let address = this.address;
+			console.log('选择腾讯', latitude, longitude);
+			window.location.href = `http://apis.map.qq.com/uri/v1/marker?marker=coord:${latitude},${longitude};addr:${address}`;
+		},
+		// 调用百度
+		tobaiDuMap() {
+			let latitude = this.latitude1;
+			let longitude = this.longitude1;
+			let latitude6 = this.latitude;
+			let longitude6 = this.longitude;
+			let address = this.address;
+			console.log('选择百度', latitude, longitude);
+			console.log('获取当前经纬度', latitude6, longitude6);
+			window.location.href = `http://api.map.baidu.com/direction?origin=latlng:${latitude6},${longitude6}|name:我的位置&destination=${latitude},${longitude}&mode=driving&region=${address}&output=html&src=webapp.baidu.openAPIdemo`;
+		}
+	}
+};
+</script>
+
+<style lang="less">
+.center,
+page {
+	background: #f8f8f8;
+	height: 100%;
+}
+.store-info {
+	background: #ffffff;
+	.store-top {
+		padding: 40rpx 20rpx;
+		justify-content: flex-start;
+		.simage {
+			width: 130rpx;
+			height: 130rpx;
+			background: #f44939;
+		}
+		.stop-main {
+			height: 130rpx;
+			padding: 6rpx 0;
+			margin-left: 20rpx;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			align-items: flex-start;
+			.stop-title {
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #000000;
+			}
+			.stop-address {
+				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;
+				}
+			}
+		}
+	}
+}
+.store-item {
+	background: #ffffff;
+	display: flex;
+	justify-content: flex-start;
+	align-items: center;
+	padding: 30rpx 30rpx 30rpx 44rpx;
+	.store-image1 {
+		width: 36rpx;
+		height: 36rpx;
+	}
+	.store-image2 {
+		margin: 0 1rpx;
+		width: 34rpx;
+		height: 34rpx;
+	}
+	.store-image3 {
+		margin: 0 7rpx;
+		width: 22rpx;
+		height: 28rpx;
+	}
+	.store-font {
+		margin-left: 22rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #2d2d2d;
+	}
+}
+.store-main {
+	margin-top: 16rpx;
+	background: #ffffff;
+	padding: 30rpx 42rpx 40rpx;
+	.smain-title {
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #464646;
+	}
+}
+.scroll-box {
+	white-space: nowrap;
+	margin-top: 30rpx;
+	height: 240rpx;
+	.scroll-item:first-child {
+		margin-left: 0;
+	}
+	.scroll-item {
+		margin-left: 20rpx;
+		display: inline-block;
+		height: 240rpx;
+		width: 240rpx;
+	}
+	.scroll-image {
+		height: 240rpx;
+		width: 240rpx;
+	}
+}
+.btn-box {
+	position: fixed;
+	bottom: 0rpx;
+	left: 0;
+	right: 0;
+	width: 750rpx;
+	background: rgba(255, 255, 255, 0.6);
+	box-shadow: 0rpx 0rpx 20rpx 0px rgba(50, 50, 52, 0.06);
+	padding: 22rpx 68rpx;
+	.btn-left {
+		width: 280rpx;
+		height: 80rpx;
+		background: linear-gradient(180deg, #ffa30b, #ffd158);
+		box-shadow: 0px 3rpx 13rpx 3rpx rgba(255, 164, 13, 0.48);
+		border-radius: 40rpx;
+		text-align: center;
+		line-height: 80rpx;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+	}
+	.btn-right {
+		width: 280rpx;
+		height: 80rpx;
+		background: linear-gradient(180deg, #ff6223, #ffab60);
+		box-shadow: 0px 3rpx 13rpx 3rpx rgba(255, 164, 13, 0.48);
+		border-radius: 40rpx;
+		text-align: center;
+		line-height: 80rpx;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+	}
+}
+.popup_row {
+	width: 100%;
+	height: 500rpx;
+	background-color: #ffffff;
+	border-radius: 20rpx;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+
+	.rows {
+		width: 100%;
+		padding: 0 24rpx;
+
+		.rows-item {
+			height: 80rpx;
+			line-height: 80rpx;
+			text-align: center;
+			width: 100%;
+			font-size: 32rpx;
+			color: #303133;
+			// border-bottom: 1rpx solid #f0f0f0;
+		}
+
+		// .row-1 {
+		// 	margin: auto;
+		// 	.first_aid {
+		// 		width: 300rpx;
+		// 		height: 300rpx;
+		// 	}
+		// }
+		// .row-2 {
+		// 	font-size: 38rpx;
+		// 	margin-top: 20rpx;
+		// }
+	}
+}
+</style>

+ 26 - 30
pages/user/award.vue

@@ -4,27 +4,27 @@
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的消费补贴券</view>
+				<view class="header">我的佣金</view>
 			</view>
-			<view class="content-bg"><image src="../../static/img/yongjin-bg.png" mode=""></image></view>
+			<view class="content-bg"><image src="../../static/img/my-bg.png" mode=""></image></view>
 			<view class="money-box">
 				<view class="money">{{ userInfo.brokerage_price }}</view>
-				<view>我的消费补贴券</view>
+				<view>余额</view>
 			</view>
 			<view class="money-btn" @click="navto('/pages/money/withdrawal')">
-				消费补贴券转换
+				佣金提现
 				<text>></text>
 			</view>
 		</view>
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{ orderStatusSum }}</view>
+				<view class="info-num">{{ recharge }}</view>
 			</view>
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计支出</view>
-				<view class="info-num">{{ recharge }}</view>
+				<view class="info-num">{{ orderStatusSum }}</view>
 			</view>
 		</view>
 		<view class="navbar">
@@ -147,7 +147,7 @@ export default {
 			}
 			// 修改当前对象状态为加载中
 			navItem.loadingType = 'loading';
-			console.log(state,"123456");
+			console.log(state, '123456');
 			spreadCommission(
 				{
 					page: navItem.page,
@@ -157,32 +157,28 @@ export default {
 			)
 				.then(({ data }) => {
 					console.log(data, '2211111');
-					obj.recharge = data.income;
-					obj.orderStatusSum = data.expend;
-					if (data.list.length > 0) {
-						data.list[0].list.forEach(e => {
-							console.log(e, '123456');
-							if (e.title == '市场分红') {
-								e.title = '市场分红补贴';
-							}
-							if (e.title == '礼包推荐奖') {
-								e.title = '礼包推荐补贴';
-							}
-						});
-						navItem.orderList = navItem.orderList.concat(data.list[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
+					obj.recharge = data.sr;
+					obj.orderStatusSum = data.zc;
+					if (data.data.length != 0) {
+						if (data.data[0].list.length > 0) {
+							navItem.orderList = navItem.orderList.concat(data.data[0].list);
+							console.log(navItem.orderList);
+							navItem.page++;
+						} else {
+							navItem.loadingType = 'noMore';
+						}
+						if (navItem.limit == data.data[0].list.length) {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'noMore';
+						}
 					} else {
 						navItem.loadingType = 'noMore';
 					}
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
+
 					uni.hideLoading();
 					this.$set(navItem, 'loaded', true);
 				})

+ 32 - 36
pages/user/cash.vue

@@ -4,31 +4,23 @@
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的佣金</view>
+				<view class="header">我的抵用券</view>
 			</view>
-			<view class="content-bg"><image src="../../static/img/cash-bg.png" mode=""></image></view>
+			<view class="content-bg"><image src="../../static/img/my-bg.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{ userInfo.cash }}</view>
-				<view>我的现金</view>
-			</view>
-			<view class="moneybtn-box">
-				<view class="money-btn" @click="navto('/pages/money/withdmoenys?type=cash')">
-					<!-- 现金转账 -->
-				</view>
-				<view class="money-btn" @click="navto('/pages/user/withdrawal')">
-					现金提现
-				</view>
+				<view class="money">{{ userInfo.voucher }}</view>
+				<view>余额</view>
 			</view>
 		</view>
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge}}</view>
+				<view class="info-num">{{ recharge }}</view>
 			</view>
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum}}</view>
+				<view class="info-num">{{ orderStatusSum }}</view>
 			</view>
 		</view>
 		<view class="navbar">
@@ -140,7 +132,7 @@ export default {
 		},
 		//获取收入支出信息
 		async loadData(source) {
-			let obj = this
+			let obj = this;
 			//这里是将订单挂载到tab列表下
 			let index = this.tabCurrentIndex;
 			let navItem = this.navList[index];
@@ -156,27 +148,31 @@ export default {
 			// 修改当前对象状态为加载中
 			navItem.loadingType = 'loading';
 
-			cashList(
-				{
-					page: navItem.page,
-					limit: navItem.limit,
-					pm: state
-				}
-			)
+			cashList({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: state
+			})
 				.then(({ data }) => {
-					obj.recharge = data.income;
-					obj.orderStatusSum = data.expend;
-					if (data.list.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data.list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}
-					if (navItem.limit == data.list.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
+					obj.recharge = data.sr;
+					obj.orderStatusSum = data.zc;
+					if (data.data.length != 0) {
+						if (data.data[0].list.length > 0) {
+							navItem.orderList = navItem.orderList.concat(data.data[0].list);
+							console.log(navItem.orderList);
+							navItem.page++;
+						} else {
+							navItem.loadingType = 'noMore';
+						}
+						if (navItem.limit == data.data[0].list.length) {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'noMore';
+						}
 					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
 						navItem.loadingType = 'noMore';
 					}
 					uni.hideLoading();
@@ -303,11 +299,11 @@ page {
 	position: relative;
 	z-index: 2;
 	color: #ffffff;
-	padding:20rpx 50rpx ;
+	padding: 20rpx 50rpx;
 	font-size: 30rpx;
 	font-family: PingFang SC;
 	font-weight: bold;
-	color: #FFFFFF;
+	color: #ffffff;
 }
 .money-box {
 	position: relative;

+ 0 - 310
pages/user/coupon.vue

@@ -1,310 +0,0 @@
-<template>
-	<view class="content">
-		<view class="navbar">
-			<view v-for="(item,index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<!-- 空白页 -->
-				<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-				<view v-for="(item, index) in tabItem.orderList" :key="index" class="row flex">
-					<view class="list-money flex">
-						<image :src="item._type == 2 ? '/static/img/img03.png' : '/static/img/img02.png'" mode="scaleToFill"></image>
-						<view class="list-money-text">
-							<view class="tit" :class="{ action: item._type} == 2">
-								<text>{{ item.coupon_price }}</text>
-							</view>
-							<view class="price">
-								<text>满{{ item.use_min_price }}元</text>
-							</view>
-						</view>
-					</view>
-					<view class="list-interval position-relative">
-						<view class="bottom"></view>
-						<view class="top"></view>
-					</view>
-					<view class="row_list_right">
-						<view class="right_top">
-							<text class="right_title" :class="{ action: item._type == 2}">{{ item.coupon_title }}</text>
-						</view>
-						<view class="right_time">
-							<text>{{ item._add_time }}-{{ item.end_time }}</text>
-						</view>
-						<view class="right_use action" v-if="item._type == 2">
-							<text>{{ item._msg }}</text>
-						</view>
-						<view class="right_use noAction" v-if="item._type == 0">
-							<text>{{ item._msg }}</text>
-						</view>
-					</view>
-				</view>
-				<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-import { getCouponsList } from '@/api/order.js';
-export default{
-	components: {
-		uniLoadMore,
-		empty
-	},
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList:[
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					page: 1,//当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '未使用',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '已使用',
-					loadingType: 'more',
-					orderList: [],
-					page: 1,//当前页数
-					limit: 10 //每次信息条数
-				}
-			]
-		};
-	},
-	onLoad(options) {
-		this.loadData();
-	},
-	methods: {
-		//返回首页
-		navTo(){
-			uni.switchTab({
-				url: '/pages/index/index'
-			});
-		},
-		//获取订单列表
-		loadData(source) {
-			//将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading'){
-				//防止重复加载
-				return;
-			}
-			//修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-			getCouponsList(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				index
-			)
-				.then(({ data }) => {
-					let da = data.map(e => {
-						e.coupon_price = +e.coupon_price.replace(',', '');
-						e.use_min_price = +e.use_min_price.replace(',', '');
-						return e
-					});
-					navItem.orderList = navItem.orderList.concat(da);
-					console.log(navItem.orderList);
-					navItem.page++;
-					if (navItem.limit == data.length) {
-						// 判断是否还有数据,有改为more,没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					}else {
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				})
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-// 卡卷可用时颜色
-$card-color-action: #fc4141;
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: #bc253a;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid #bc253a;
-			}
-		}
-	}
-}
-
-.swiper-box {
-	height: calc(100% - 40px);
-	.tab-content {
-		padding: 25rpx 0px;
-		font-size: 28rpx;
-		color: #1b1b1b;
-	}
-}
-
-.row {
-	border-radius: 15rpx;
-	margin: 0 25rpx;
-	margin-bottom: 25rpx;
-	height: 200rpx;
-	overflow: hidden;
-	background-color: #ffffff;
-	.list-interval {
-		border: 1px dashed $border-color-light;
-		height: 100%;
-		.top,
-		.bottom {
-			border-radius: 100rpx;
-			width: 30rpx;
-			height: 30rpx;
-			position: absolute;
-			background-color: $page-color-base;
-			right: -15rpx;
-		}
-		.top {
-			top: -18rpx;
-		}
-		.bottom {
-			bottom: -18rpx;
-		}
-	}
-	.list-money {
-		height: 100%;
-		image {
-			height: 100%;
-			width: 20rpx;
-		}
-		.list-money-text {
-			width: 220rpx;
-			padding: 0 25rpx;
-			text-align: center;
-			color: $font-color-light;
-			.tit {
-				padding: 15rpx 0rpx;
-				font-size: 55rpx;
-				font-weight: bold;
-				&.action {
-					color: $card-color-action;
-				}
-			}
-			.price {
-				padding-bottom: 25rpx;
-			}
-		}
-	}
-	.row_list_right {
-		flex-grow: 1;
-		padding-left: 25rpx;
-		line-height: 1;
-		.right_time {
-			color: $font-color-light;
-			font-size: $font-sm;
-		}
-		.right_use {
-			margin: 15rpx 0;
-			padding: 10rpx;
-			width: 140rpx;
-			text_align: center;
-			border-radius: 50rpx;
-			color: #fff;
-			font-size: $font-sm - 4rpx;
-			&.action {
-				background-color: $card-color-action;
-			}
-			&.noAction {
-				background-color: $color-gray;
-			}
-		}
-		.right_top {
-			margin: 15rpx 0;
-			font-size: $font-lg;
-			height: 50rpx;
-			color: $font-color-light;
-			.right_name {
-				font-weight: bold;
-			}
-			.right_title {
-				font-weight: bold;
-				&.action {
-					color: $font-color-base;
-				}
-			}
-		}
-	}
-	
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-// uni-load-more
-.uni-load-more {
-	display: flex;
-	flex-direction: row;
-	height: 80rpx;
-	align-items: center;
-	justify-content: center;
-}
-</style>

+ 0 - 185
pages/user/jiedian.vue

@@ -1,185 +0,0 @@
-<template>
-	<view class="contant">
-		<view class="jiedian-box" v-for="(item, index) in jieList">
-			<view class="box-top">
-				<view class="title-top">
-					<view class="img"><image src="../../static/img/jiedian01.png" mode=""></image></view>
-					<view class="title">响亮节点</view>
-				</view>
-				<view class="xiangqing" @click="navTo(item.id)">
-					详情
-					<text>></text>
-				</view>
-				<!-- <text class="xiangqing" @click="navTo(item.id)">
-						详情>
-					</text> -->
-			</view>
-			<view class="box-bottom">
-				<view class="shouyi">
-					<view class="jiedian">节点收益</view>
-					<view class="number">{{ item.get }}</view>
-				</view>
-				<view class="shouyi">
-					<view class="jiedian">团队人数</view>
-					<view class="number">{{ item.children_num }}</view>
-				</view>
-				<view class="shouyi">
-					<view class="jiedian">参加时间</view>
-					<view class="number">{{ item.add_time | getTime }}</view>
-				</view>
-			</view>
-		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { lookSubpoints, lookOneself } from '../../api/user.js';
-export default {
-	data() {
-		return {
-			jieList: [],
-			page: 1, //当前页数
-			limit: 10, //每次信息条数
-			loadingType: 'more'
-		};
-	},
-	filters: {
-		getTime(val) {
-			let str = '';
-			if (val) {
-				const date = new Date(val * 1000);
-				const year = date.getFullYear();
-				const mon = date.getMonth() + 1;
-				const day = date.getDate();
-				const hours = date.getHours();
-				const minu = date.getMinutes();
-				const sec = date.getSeconds();
-				str = year + '-' + mon + '-' + day + ' ' + hours + ':' + minu + ':' + sec;
-			}
-			return str;
-		}
-	},
-	// onLoad() {
-	// 	this.lookMyjiedian()
-	// },
-	onShow() {
-		this.lookMyjiedian();
-	},
-	onReachBottom() {
-		this.lookMyjiedian();
-	},
-	methods: {
-		lookMyjiedian() {
-			let obj = this;
-			if (obj.loadingType == 'noMore' || obj.loadingType == 'loading') {
-				return;
-			}
-			obj.loadingType = 'loading';
-			lookOneself({
-				page: obj.page,
-				limit: obj.limit
-			}).then(res => {
-				console.log(res);
-				obj.jieList = obj.jieList.concat(res.data.points);
-				if (res.data.points.length != obj.limit) {
-					obj.loadingType = 'noMore';
-				} else {
-					obj.loadingType = 'more';
-					obj.page++;
-				}
-				console.log(obj.loadingType, '2222222');
-			});
-		},
-		navTo(id) {
-			uni.navigateTo({
-				url: './jiedianDetails?id=' + id
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.contant {
-	// background: #F3F3F3;
-
-	margin: 0;
-	padding: 0;
-	height: 100%;
-	width: 100%;
-}
-
-.jiedian-box {
-	background: #ffffff;
-	display: flex;
-	flex-direction: column;
-	padding: 30rpx;
-	justify-content: space-between;
-	margin: 20rpx 30rpx;
-	border-radius: 15rpx;
-	box-shadow: 2px 2px 0px #ebeef5;
-}
-
-.box-top {
-	display: flex;
-	justify-content: space-between;
-	text-align: center;
-	line-height: 1;
-	.title-top {
-		display: flex;
-		justify-content: center;
-		text-align: center;
-
-		.img {
-			width: 40rpx;
-			height: 40rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.title {
-			margin-left: 5rpx;
-			font-size: 32rpx;
-			font-weight: bold;
-		}
-	}
-
-	.xiangqing {
-		color: red;
-		font-size: 28rpx;
-		line-height: 40rpx;
-		text {
-			display: inline-block;
-			margin-left: 10rpx;
-		}
-	}
-}
-
-.box-bottom {
-	margin-top: 20rpx;
-	display: flex;
-	flex-direction: column;
-	justify-content: space-between;
-	text-align: center;
-}
-
-.shouyi {
-	margin: 6rpx 0;
-	display: flex;
-	justify-content: space-between;
-}
-
-.jiedian {
-	font-size: 26rpx;
-	color: #999999;
-}
-
-.number {
-}
-</style>

+ 0 - 317
pages/user/jiedianDetails.vue

@@ -1,317 +0,0 @@
-<template>
-	<view class="content">
-		<view class="bg">
-			<image src="../../static/img/jiedianBg.png" mode=""></image>
-		</view>
-		<view class="box">
-			<view class="box-left">
-				<view class="top">
-					{{childrenNum}}
-				</view>
-				<view class="bottom">
-					总人数
-				</view>
-			</view>
-			<view class="box-left">
-				<view class="top">
-					{{money}}
-				</view>
-				<view class="bottom">
-					收益
-				</view>
-			</view>
-		</view>
-		<view class="box-1">
-			<view class="tuandui-box" v-for="item in childrenList" @click="next(item.id)">
-				<view class="box-img">
-					<image :src="item.user.avatar" mode=""></image>
-				</view>
-				<view class="box-content">
-					<view class="content-top">
-						<view class="content-top-left">
-							<view class="name clamp">
-								{{item.user.nickname}}
-							</view>
-							<view class="time">
-								{{item.add_time | getTime}}加入
-							</view>
-						</view>
-						<view class="content-top-right">
-							收益:{{item.get}}
-						</view>
-					</view>
-					<view class="content-bottom">
-						<view class="xianlu">
-							线路:{{item.way}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
-		<view class="btn" v-if="parentList.length != 0" @click="back()">
-			返回上一层
-		</view>
-	</view>
-</template>
-
-<script>
-	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-	import {
-		lookSubpoints,
-		lookOneself
-	} from '../../api/user.js'
-	export default {
-		components: {
-			uniLoadMore
-		},
-		data() {
-			return {
-				dtailId: '',
-				parentList:[],//父亲节点
-				childrenList: [],
-				jieList: [],
-				childrenNum: '',
-				limit:10,
-				page:1,
-				loadingType:'more',
-				money: '',
-
-			};
-		},
-		filters: {
-			getTime(val) {
-				let str = ''
-				if (val) {
-					const date = new Date(val * 1000);
-					const year = date.getFullYear();
-					const mon = date.getMonth() + 1;
-					const day = date.getDate();
-					const hours = date.getHours();
-					const minu = date.getMinutes();
-					const sec = date.getSeconds();
-					str = year + '-' + mon + '-' + day + ' ' + hours + ':' + minu + ':' + sec;
-				}
-				return str
-			}
-		},
-		onLoad(option) {
-			this.detailId = option.id
-			this.lookDetail()
-			this.lookMyjiedian()
-
-		},
-		methods: {
-			lookMyjiedian() {
-				let obj = this
-				lookOneself().then(res => {
-
-					console.log(res);
-					obj.jieList = res.data.points;
-					console.log(obj.jieList, '11');
-					obj.childrenNum = obj.jieList[0].children_num
-					obj.money = obj.jieList[0].get
-					console.log(obj.childrenNum, obj.money);
-				})
-			},
-			lookDetail() {
-				let obj = this
-				if(obj.loadingType=='loading' || obj.loadingType=='noMore'){
-					console.log("进入");
-					return
-				}
-				obj.loadingType = 'loading'
-				lookSubpoints({
-					page:obj.page,
-					limit:obj.limit
-				}, obj.detailId).then(res => {
-					obj.childrenList =obj.childrenList.concat(res.data.children) 
-					console.log(res,'xuhaolam');
-					if(res.data.children.length!=obj.limit){
-						console.log(res, '详细数据123');
-						
-						obj.loadingType='noMore'
-						
-					}else{
-						obj.loadingType='more'
-						obj.page++
-					}
-					console.log(obj.childrenList, '详细数据1');
-				})
-			},
-			next(id) {
-				console.log(id,"id");
-				if(this.parentList.length == 11) {
-					return
-				}
-				this.parentList.push(this.detailId)
-				this.detailId = id
-				this.loadingType='more'
-				this.childrenList = [],
-				this.lookDetail()
-			},
-			back() {
-				this.detailId = this.parentList.pop();
-				this.loadingType='more'
-				this.childrenList = [],
-				this.lookDetail()
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	page,
-	.content {
-		padding: 0;
-		margin: 0;
-		height: 100%;
-		width: 100%;
-		background: #F3F3F3;
-	}
-
-	.box-1 {
-		// margin: 0 auto;
-		background: #FFFFFF;
-		margin-top: 40rpx;
-	}
-
-	.bg {
-		position: relative;
-		width: 750rpx;
-		height: 360rpx;
-
-		image {
-			height: 100%;
-			width: 100%;
-		}
-	}
-
-	.box {
-
-		position: relative;
-		display: flex;
-		justify-content: space-around;
-		margin-top: -180rpx;
-
-		.box-left {
-			z-index: 99;
-			width: 280rpx;
-			height: 160rpx;
-			display: flex;
-			flex-direction: column;
-			text-align: center;
-			justify-content: center;
-			background-color: #FFFFFF;
-			border-radius: 10rpx;
-		}
-
-		.top {
-			font-size: 36rpx;
-			font-weight: bold;
-		}
-
-		.bottom {
-			font-size: 24rpx;
-			color: #999999;
-			margin-top: 10rpx;
-			font-weight: bold;
-
-		}
-	}
-
-	.tuandui-box {
-		margin: 0 auto;
-		width: 690rpx;
-
-		display: flex;
-
-		padding: 20rpx;
-		border-bottom: 2rpx solid #F3F3F3;
-		;
-
-		.box-img {
-			border-radius: 50%;
-			width: 80rpx;
-			height: 80rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.box-content {
-			margin-left: 15rpx;
-			width: 100%;
-			display: flex;
-			flex-direction: column;
-			justify-content: space-between;
-
-
-			.content-top {
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-
-				.content-top-left {
-					display: flex;
-					justify-content: space-between;
-					line-height: 40rpx;
-
-					.name {
-						width: 120rpx;
-						white-space: nowrap;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						font-size: 30rpx;
-						font-weight: bold;
-					}
-					.time {
-						color: #999999;
-						margin-left: 15rpx;
-						font-size: 22rpx;
-					}
-				}
-
-				.content-top-right {
-					color: #303133;
-					font-size: 26rpx;
-				}
-			}
-
-			.content-bottom {
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-
-				.xianlu {
-					color: #999999;
-					font-size: 22rpx;
-				}
-
-				.number {
-					color: #303133;
-					font-size: 26rpx;
-				}
-			}
-		}
-	}
-.btn {
-	position: fixed;
-	bottom: 30rpx;
-	left: 0;
-	right: 0;
-	margin: 0 auto;
-	width: 604rpx;
-	height: 90rpx;
-	border: 2px solid #F21F5D;
-	border-radius: 45rpx;
-	font-size: 34rpx;
-	font-family: SourceHanSansCN;
-	font-weight: 400;
-	color: #EF0E74;
-	line-height: 90rpx;
-	text-align: center;
-}
-</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>

+ 0 - 153
pages/user/notice.vue

@@ -1,153 +0,0 @@
-<template>
-	<view>
-		<view class="notice-item">
-			<text class="time">11:30</text>
-			<view class="content">
-				<text class="title">新品上市,全场满199减50</text>
-				<view class="img-wrapper">
-					<image class="pic" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556465765776&di=57bb5ff70dc4f67dcdb856e5d123c9e7&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01fd015aa4d95fa801206d96069229.jpg%401280w_1l_2o_100sh.jpg"></image>
-				</view>
-				<text class="introduce">
-					虽然做了一件好事,但很有可能因此招来他人的无端猜测,例如被质疑是否藏有其他利己动机等,乃至谴责。即便如此,还是要做好事。
-				</text>
-				<view class="bot b-t">
-					<text>查看详情</text>
-					<text class="more-icon iconfont iconenter"></text>
-				</view>
-			</view>
-		</view>
-		<view class="notice-item">
-			<text class="time">昨天 12:30</text>
-			<view class="content">
-				<text class="title">新品上市,全场满199减50</text>
-				<view class="img-wrapper">
-					<image class="pic" src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3761064275,227090144&fm=26&gp=0.jpg"></image>
-					<view class="cover">
-						活动结束
-					</view>
-				</view>
-				<view class="bot b-t">
-					<text>查看详情</text>
-					<text class="more-icon iconfont iconenter"></text>
-				</view>
-			</view>
-		</view>
-		<view class="notice-item">
-			<text class="time">2019-07-26 12:30</text>
-			<view class="content">
-				<text class="title">新品上市,全场满199减50</text>
-				<view class="img-wrapper">
-					<image class="pic" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556465765776&di=57bb5ff70dc4f67dcdb856e5d123c9e7&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01fd015aa4d95fa801206d96069229.jpg%401280w_1l_2o_100sh.jpg"></image>
-					<view class="cover">
-						活动结束
-					</view>
-				</view>
-				<text class="introduce">新品上市全场2折起,新品上市全场2折起,新品上市全场2折起,新品上市全场2折起,新品上市全场2折起</text>
-				<view class="bot b-t">
-					<text>查看详情</text>
-					<text class="more-icon iconfont iconenter"></text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style lang='scss'>
-	page {
-		background-color: #f7f7f7;
-		padding-bottom: 30upx;
-	}
-
-	.notice-item {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-	}
-
-	.time {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		height: 80upx;
-		padding-top: 10upx;
-		font-size: 26upx;
-		color: #7d7d7d;
-	}
-
-	.content {
-		width: 710upx;
-		padding: 0 24upx;
-		background-color: #fff;
-		border-radius: 4upx;
-	}
-
-	.title {
-		display: flex;
-		align-items: center;
-		height: 90upx;
-		font-size: 32upx;
-		color: #303133;
-	}
-
-	.img-wrapper {
-		width: 100%;
-		height: 260upx;
-		position: relative;
-	}
-
-	.pic {
-		display: block;
-		width: 100%;
-		height: 100%;
-		border-radius: 6upx;
-	}
-
-	.cover {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		position: absolute;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		background-color: rgba(0, 0, 0, .5);
-		font-size: 36upx;
-		color: #fff;
-	}
-
-	.introduce {
-		display: inline-block;
-		padding: 16upx 0;
-		font-size: 28upx;
-		color: #606266;
-		line-height: 38upx;
-	}
-
-	.bot {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		height: 80upx;
-		font-size: 24upx;
-		color: #707070;
-		position: relative;
-	}
-
-	.more-icon {
-		font-size: 32upx;
-	}
-</style>

+ 35 - 38
pages/user/scoreAccumulate.vue

@@ -4,27 +4,23 @@
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">响亮积分</view>
+				<view class="header">我的积分</view>
 			</view>
-			<view class="content-bg"><image src="../../static/img/myjf.png" mode=""></image></view>
+			<view class="content-bg"><image src="../../static/img/my-bg.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{userInfo.integral | getMoneyStyle}}</view>
-				<view>我的响亮积分</view>
-			</view>
-			<view class="money-btn" @click="navto('/pages/money/withdmoenys')">
-				积分转账
-				<text>></text>
+				<view class="money">{{ userInfo.integral | getMoneyStyle }}</view>
+				<view>余额</view>
 			</view>
 		</view>
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge}}</view>
+				<view class="info-num">{{ recharge }}</view>
 			</view>
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum}}</view>
+				<view class="info-num">{{ orderStatusSum }}</view>
 			</view>
 		</view>
 		<view class="navbar">
@@ -35,7 +31,7 @@
 				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
 					<!-- 空白页 -->
 					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-	
+
 					<!-- 订单列表 -->
 					<view>
 						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
@@ -95,7 +91,7 @@ export default {
 		return {
 			height: '',
 			// 头部图高度
-			maxheight:'',
+			maxheight: '',
 			tabCurrentIndex: 0,
 			orderStatusSum: 0,
 			recharge: 0,
@@ -124,7 +120,7 @@ export default {
 					page: 1, //当前页数
 					limit: 10 //每次信息条数
 				}
-			],
+			]
 		};
 	},
 	onLoad(options) {},
@@ -140,7 +136,7 @@ export default {
 		},
 		//获取收入支出信息
 		async loadData(source) {
-			let obj = this
+			let obj = this;
 			//这里是将订单挂载到tab列表下
 			let index = this.tabCurrentIndex;
 			let navItem = this.navList[index];
@@ -156,28 +152,31 @@ export default {
 			// 修改当前对象状态为加载中
 			navItem.loadingType = 'loading';
 
-			integrallist(
-				{
-					page: navItem.page,
-					limit: navItem.limit,
-					pm: state
-				},
-			)
+			integrallist({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: state
+			})
 				.then(({ data }) => {
-					obj.recharge = data.income;
-					obj.orderStatusSum = data.expend;
-					if (data.list.length > 0) {
-						console.log(data);
-						navItem.orderList = navItem.orderList.concat(data.list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}
-					if (navItem.limit == data.list.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
+					obj.recharge = data.sr;
+					obj.orderStatusSum = data.zc;
+					if (data.data.length != 0) {
+						if (data.data.length > 0) {
+							navItem.orderList = navItem.orderList.concat(data.data);
+							console.log(navItem.orderList);
+							navItem.page++;
+						} else {
+							navItem.loadingType = 'noMore';
+						}
+						if (navItem.limit == data.data.length) {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'noMore';
+						}
 					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
 						navItem.loadingType = 'noMore';
 					}
 					uni.hideLoading();
@@ -198,9 +197,7 @@ export default {
 			this.tabCurrentIndex = index;
 		},
 		toBack() {
-			uni.navigateBack({
-				
-			})
+			uni.navigateBack({});
 		}
 	}
 };
@@ -328,7 +325,7 @@ page {
 	font-size: 30rpx;
 	font-family: PingFang SC;
 	font-weight: bold;
-	color: #FFFFFF;
+	color: #ffffff;
 	text {
 		display: inline-block;
 		padding-left: 10rpx;

+ 15 - 13
pages/user/team.vue

@@ -6,7 +6,7 @@
 				<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"></view>
+			<view class="content-bg"><image src="../../static/img/my-bg.png" mode=""></image></view>
 			<view class="money-box">
 				<view class="money">{{ all }}</view>
 				<view>我的推广人数</view>
@@ -28,9 +28,9 @@
 									<text>{{ item.time }}</text>
 								</view>
 							</view>
-							<view class="money">
+							<!-- <view class="money">
 								<text>{{ item.self_achievement == null ? '未购买' : item.self_achievement + '元' }}</text>
-							</view>
+							</view> -->
 						</view>
 					</view>
 					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
@@ -41,8 +41,14 @@
 </template>
 <script>
 import { myspread } from '@/api/user.js';
+import empty from '@/components/empty';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
 import { mapState, mapMutations } from 'vuex';
 export default {
+	components: {
+		empty,
+		uniLoadMore
+	},
 	onReady(res) {
 		var _this = this;
 		uni.getSystemInfo({
@@ -73,7 +79,7 @@ export default {
 				}
 			],
 			all: '',
-			list: '',
+			list: ''
 		};
 	},
 	computed: {
@@ -175,16 +181,12 @@ page {
 		top: 0;
 		left: 0;
 		right: 0;
-		width: 450rpx;
-		margin: 0 auto;
+		width: 750rpx;
 		height: 480rpx;
-		border-bottom-left-radius: 40%;
-		border-bottom-right-radius: 40%;
-		background: #303030;
-		// image {
-		// 	width: 100%;
-		// 	height: 100%;
-		// }
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 	.body-title {
 		height: 80rpx;

+ 476 - 547
pages/user/user.vue

@@ -1,11 +1,9 @@
 <template>
 	<view class="container">
 		<view class="vheigh"></view>
-		<view class="top-image">
-			<image src="../../static/user/user-top.png" mode=""></image>
-		</view>
+		<view class="top-image"><image src="../../static/user/user-top.png" mode=""></image></view>
 		<view class="user-set flex">
-			<!-- <view class="set-logo" @click="navTo('/pages/set/userinfo')"><image src="../../static/user/user08.png" mode=""></image></view> -->
+			<view class="set-logo" @click="navTo('/pages/set/userinfo')"><image src="../../static/user/user1.png" mode=""></image></view>
 			<!-- <view class="xx-logo"><image src="../../static/user/user2.png" mode=""></image></view> -->
 		</view>
 		<view class="user-wrap">
@@ -17,72 +15,82 @@
 						<view class="phone">{{ userInfo.phone }}</view>
 					</view>
 				</view>
-				<view class="kpi">
-					<image style="width: 19rpx; height: 19rpx;" src="../../static/icon/add.png" mode=""></image>会员VIP
+				<view class="kpi" v-if="userInfo.level != 0">
+					<view class="kpi-bg"><image class="bg" src="../../static/user/vip.png" mode=""></image></view>
+					<view class="kpi-font">{{ userInfo.level_name }}</view>
 				</view>
 			</view>
-			<view class="info-right">
-				<view class="item-item" @click="navTo('/pages/money/wallet')">
-					<view class="item-num">{{ userInfo.sp_final || 0}}</view>
-					<view class="item-font">我的钱包</view>
+			<view class="flex">
+				<view class="info-right" @click="navTo('/pages/money/wallet')">
+					<image class="iright-icon" src="../../static/user/user3.png" mode=""></image>
+					<view class="iright-font">钱包余额:{{ userInfo.now_money }}</view>
 				</view>
-				<view class="" style="width: 1rpx;height: 100rpx;background: #EEEEEE;">
-
+				<view class="info-right" @click="navTo('/pages/money/recharge')">
+					<image class="iright-icon" src="../../static/user/user3.png" mode=""></image>
+					<view class="iright-font">充值钱包</view>
+				</view>
+			</view>
+		</view>
+		<view class="main-box">
+			<view class="title flex">
+				<view class="title-left">
+					<image class="title-icon" src="../../static/user/user4.png" mode=""></image>
+					<view class="title-font">我的资产</view>
 				</view>
-				<view class="item-item" @click="navTo('/pages/user/cash')">
-					<view class="item-num">{{userInfo.top_ticket || 0}}</view>
+				<!-- <image class="title-right" src="../../static/img/back.png" mode=""></image> -->
+			</view>
+			<view class="main flex">
+				<view class="item" @click="navTo('/pages/user/award')">
+					<view class="item-num">{{ userInfo.brokerage_price }}</view>
 					<view class="item-font">我的佣金</view>
 				</view>
-				<view class="" style="width: 1rpx;height: 100rpx;background: #EEEEEE;">
-
+				<view class="item" @click="navTo('/pages/user/scoreAccumulate')">
+					<view class="item-num">{{ userInfo.integral }}</view>
+					<view class="item-font">我的积分</view>
 				</view>
-				<view class="item-item" @click="navTo('/pages/user/team')">
-					<view class="item-num">{{userInfo.aid_val || 0}}</view>
-					<view class="item-font">我的推广</view>
+				<view class="item" @click="navTo('/pages/user/cash')">
+					<view class="item-num">{{ userInfo.voucher }}</view>
+					<view class="item-font">抵用券</view>
 				</view>
 			</view>
 		</view>
-
 		<view class="main-box">
 			<view class="title flex" @click="navTo('/pages/order/order?state=0')">
 				<view class="title-left">
-					<image class="title-icon" src="../../static/user/user10.png" mode=""></image>
+					<image class="title-icon" src="../../static/user/user5.png" mode=""></image>
 					<view class="title-font">我的订单</view>
 				</view>
-				<image class="title-right" src="../../static/user/user04.png" mode=""></image>
+				<image class="title-right" src="../../static/img/back.png" mode=""></image>
 			</view>
 			<view class="main flex">
 				<view class="oitem" @click="navTo('/pages/order/order?state=0')">
-					<image class="oitem-image" src="../../static/user/user01.png" mode=""></image>
+					<image class="oitem-image" src="../../static/user/user6.png" mode=""></image>
 					<view class="oitem-font">待付款</view>
 				</view>
 				<view class="oitem" @click="navTo('/pages/order/order?state=1')">
-					<image class="oitem-image" src="../../static/user/user03.png" mode=""></image>
+					<image class="oitem-image" src="../../static/user/user7.png" mode=""></image>
 					<view class="oitem-font">待发货</view>
 				</view>
 				<view class="oitem" @click="navTo('/pages/order/order?state=2')">
-					<image class="oitem-image" src="../../static/user/user02.png" mode=""></image>
+					<image class="oitem-image" src="../../static/user/user8.png" mode=""></image>
 					<view class="oitem-font">待收货</view>
 				</view>
 				<view class="oitem" @click="navTo('/pages/order/order?state=3')">
-					<image class="oitem-image" src="../../static/user/user07.png" mode=""></image>
+					<image class="oitem-image" src="../../static/user/user9.png" mode=""></image>
 					<view class="oitem-font">已完成</view>
 				</view>
 			</view>
 		</view>
 		<uni-list class="tool-list">
-			<uni-list-item title="邀请有礼" @click="navTo('/pages/user/shareQrCode')" thumb="/static/user/user08.png">
-			</uni-list-item>
-			<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/user/user11.png">
-			</uni-list-item>
+			<uni-list-item title="我的推广" @click="navTo('/pages/user/team')" thumb="/static/user/user15.png"></uni-list-item>
+			<uni-list-item title="邀请有礼" @click="navTo('/pages/user/shareQrCode')" thumb="/static/user/user10.png"></uni-list-item>
+			<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/user/user11.png"></uni-list-item>
 			<uni-list-item title="客服中心" @click="openKf()" thumb="/static/user/user09.png"></uni-list-item>
-			<uni-list-item title="设置" @click="navTo('/pages/set/set')" thumb="/static/user/user13.png"></uni-list-item>
+			<uni-list-item title="设置" @click="navTo('/pages/set/userinfo')" thumb="/static/user/user13.png"></uni-list-item>
 		</uni-list>
 		<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>
@@ -96,588 +104,509 @@
 				</view>
 			</view>
 		</uni-popup>
-		<!-- <uni-popup ref="popupqd" type="center">
-			<view class="popup">
-				<view class="popup-dox"><image class="popup-logo" src="../../static/img/sign-popup.png"></image></view>
-				<view class="popup-title">
-					获得
-					<text>{{ today_integral }}</text>
-					{{ today_type }}
-				</view>
-				<view class="popup-tip">
-					明天签到可得
-					<text>{{ tom_integral }}</text>
-					{{ tom_type }}
-				</view>
-				<view class="popup-btn" @click="closeQd">知道了</view>
-			</view>
-		</uni-popup> -->
 	</view>
 </template>
 <script>
-	import {
-		tabbar1
-	} from '@/utils/tabbar.js';
-	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,
-		getUserInfo
-	} from '@/api/user.js';
-	import {
-		saveUrl,
-		interceptor
-	} from '@/utils/loginUtils.js';
-	let startY = 0,
-		moveY = 0,
-		pageAtTop = true;
-	export default {
-		components: {
-			uniList,
-			uniListItem
+import { tabbar1 } from '@/utils/tabbar.js';
+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, getUserInfo } from '@/api/user.js';
+import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+let startY = 0,
+	moveY = 0,
+	pageAtTop = true;
+export default {
+	components: {
+		uniList,
+		uniListItem
+	},
+	data() {
+		return {
+			current: 4,
+			tabbar: tabbar1,
+			qded: false, //是否已签到
+			text: '' //客服微信
+		};
+	},
+	onShow() {
+		// 判断是否已经登录
+		if (this.hasLogin) {
+			this.loadBaseData();
+		}
+		this.loadBaseData();
+	},
+	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();
+	},
+	// #ifndef MP
+	// onNavigationBarButtonTap(e) {
+	// 	const index = e.index;
+	// 	if (index === 0) {
+	// 		this.navTo('/pages/set/set');
+	// 	} 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
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		// 加载初始数据
+		loadBaseData() {
+			getUserInfo({})
+				.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);
+				});
 		},
-		data() {
-			return {
-				current: 4,
-				tabbar: tabbar1,
-				qded: false, //是否已签到
-				text: '', //客服微信
-				today_integral: '', //签到获得的数值
-				today_type: '', //签到获得的数值单位
-				tom_integral: '', //明天签到获得的数值
-				tom_type: '', //签到获得的数值单位
-				userDowm: 0, //卡片升级专属高度
-				userMaxDowm: 0, //卡片最高高度
-				toolList: [{
-						id: 't1',
-						name: '新人通道',
-						width: '56rpx',
-						heigt: '54rpx',
-						img: '../../static/icon/tool-1.png',
-						path: '/pages/user/xrtd'
-					},
-					{
-						id: 't2',
-						name: '邀请好友',
-						width: '56rpx',
-						heigt: '57rpx',
-						img: '../../static/icon/tool-2.png',
-						path: '/pages/user/shareQrCode'
-					},
-					{
-						id: 't3',
-						name: '我的粉丝',
-						width: '68rpx',
-						heigt: '53rpx',
-						img: '../../static/icon/tool-3.png',
-						path: '/pages/user/myfans'
-					},
-					{
-						id: 't4',
-						name: '我的订单',
-						width: '55rpx',
-						heigt: '54rpx',
-						img: '../../static/icon/tool-4.png',
-						path: '/pages/order/order'
-					},
-					{
-						id: 't5',
-						name: '我的商品',
-						width: '50rpx',
-						heigt: '58rpx',
-						img: '../../static/icon/tool-5.png',
-						path: '/pages/order/order'
-					},
-					{
-						id: 't6',
-						name: '馆长申请',
-						width: '59rpx',
-						heigt: '56rpx',
-						img: '../../static/icon/tool-6.png',
-						path: '/pages/user/gzsq'
-					}
-				]
-			};
+		/**
+		 * 统一跳转接口,拦截未登录路由
+		 * navigator标签现在默认没有转场动画,所以用view
+		 */
+		navTo(url) {
+			console.log(url);
+			// if (!this.hasLogin) {
+			// 	// 保存地址
+			// 	saveUrl();
+			// 	// 登录拦截
+			// 	interceptor();
+			// } else {
+			uni.navigateTo({
+				url
+			});
+			// }
 		},
-		onShow() {
-			// 判断是否已经登录
-			if (this.hasLogin) {
-				this.loadBaseData();
-			}
-			this.loadBaseData();
+		useTool(e) {
+			this.navTo(e.path);
 		},
-		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();
+		// 签到弹窗
+		goQd() {
+			this.$refs.popupqd.open();
+			this.qded = true;
 		},
-		// #ifndef MP
-		// onNavigationBarButtonTap(e) {
-		// 	const index = e.index;
-		// 	if (index === 0) {
-		// 		this.navTo('/pages/set/set');
-		// 	} 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
-		computed: {
-			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		// 关闭签到弹窗
+		closeQd() {
+			this.$refs.popupqd.close();
 		},
-		methods: {
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			// 加载初始数据
-			loadBaseData() {
-				getUserInfo({})
-					.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) {
-				console.log(url);
-				// if (!this.hasLogin) {
-				// 	// 保存地址
-				// 	saveUrl();
-				// 	// 登录拦截
-				// 	interceptor();
-				// } else {
-				uni.navigateTo({
-					url
-				});
-				// }
-			},
-			useTool(e) {
-				this.navTo(e.path);
-			},
-			// 签到弹窗
-			goQd() {
-				this.$refs.popupqd.open();
-				this.qded = true;
-			},
-			// 关闭签到弹窗
-			closeQd() {
-				this.$refs.popupqd.close();
-			},
-			// 打开客服
-			openKf() {
-				this.$refs.popupkf.open();
-			},
-			// 关闭客服
-			cancel() {
-				this.$refs.popupkf.close();
-			}
+		// 打开客服
+		openKf() {
+			this.$refs.popupkf.open();
+		},
+		// 关闭客服
+		cancel() {
+			this.$refs.popupkf.close();
 		}
-	};
+	}
+};
 </script>
 <style lang="scss">
-	%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;
-	}
-
-	.container,
-	page {
-		min-height: 100%;
-		height: auto;
-		background-color: $page-color-base;
+%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;
+}
+
+.container,
+page {
+	min-height: 100%;
+	height: auto;
+	background-color: $page-color-base;
+}
+
+.vheigh {
+	height: var(--status-bar-height);
+	background-color: $base-color;
+}
+
+.top-image {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	height: 230rpx;
+	image {
+		width: 100%;
+		height: 100%;
 	}
-
-	.vheigh {
-		height: var(--status-bar-height);
-		background-color: $base-color;
-	}
-
-	.top-image {
-		position: absolute;
-		top: 0;
+}
+
+.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;
+}
+
+.popup-box {
+	width: 522rpx;
+	height: 605rpx;
+	background-color: #ffffff;
+	border-radius: 20rpx;
+	position: relative;
+
+	.img {
+		position: relative;
+		top: -56rpx;
 		left: 0;
-		right: 0;
-		height: 230rpx;
+		width: 522rpx;
+		height: 132rpx;
+		display: flex;
+		justify-content: center;
 
 		image {
-			width: 100%;
-			height: 100%;
+			border-radius: 20rpx 20rpx 0 0;
+			width: 450rpx;
+			height: 132rpx;
 		}
 	}
 
-	.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;
-	}
-
-	.popup-box {
-		width: 522rpx;
-		height: 605rpx;
+	.mian {
+		margin-top: -44rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		// padding: 32rpx 32rpx;
 		background-color: #ffffff;
-		border-radius: 20rpx;
-		position: relative;
+		border-radius: 0 0 20rpx 20rpx;
+		text-align: center;
 
-		.img {
-			position: relative;
-			top: -56rpx;
-			left: 0;
-			width: 522rpx;
-			height: 132rpx;
+		.delivery {
+			font-size: 40rpx;
+			color: #333333;
 			display: flex;
-			justify-content: center;
+			align-items: center;
+			flex-direction: column;
 
 			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;
-
-				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;
 			}
 		}
 	}
+}
 
-	.popup {
-		width: 560rpx;
-		padding-bottom: 45rpx;
-		background-color: #ffffff;
-		border-radius: 15rpx;
-		text-align: center;
-		line-height: 1;
+.popup {
+	width: 560rpx;
+	padding-bottom: 45rpx;
+	background-color: #ffffff;
+	border-radius: 15rpx;
+	text-align: center;
+	line-height: 1;
 
-		.popup-dox {
-			position: relative;
+	.popup-dox {
+		position: relative;
 
-			.popup-logo {
-				margin: -160rpx auto 0;
-				width: 400rpx;
-				height: 200rpx;
-			}
+		.popup-logo {
+			margin: -160rpx auto 0;
+			width: 400rpx;
+			height: 200rpx;
 		}
+	}
 
-		.popup-title {
-			margin-top: 85rpx;
-			font-size: 40rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #2a2a2a;
+	.popup-title {
+		margin-top: 85rpx;
+		font-size: 40rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #2a2a2a;
 
-			text {
-				font-size: 56rpx;
-				color: #e83f30;
-			}
+		text {
+			font-size: 56rpx;
+			color: #e83f30;
 		}
+	}
 
-		.popup-tip {
-			margin-top: 20rpx;
-			font-size: 28rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #8c8c8c;
-
-			text {
-				color: #e83f30;
-			}
-		}
+	.popup-tip {
+		margin-top: 20rpx;
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #8c8c8c;
 
-		.popup-btn {
-			margin: 58rpx auto 0;
-			width: 270rpx;
-			height: 66rpx;
-			background: #f0c838;
-			border-radius: 34rpx;
-			text-align: center;
-			line-height: 66rpx;
-			font-size: 36rpx;
-			font-family: Source Han Sans CN;
-			font-weight: 500;
-			color: #ffffff;
+		text {
+			color: #e83f30;
 		}
 	}
 
-	.user-wrap {
-		position: relative;
-		z-index: 10;
-		width: 690rpx;
-		height: 283rpx;
-		background: #ffffff;
-		box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46);
-		border-radius: 20rpx;
-		padding: 34rpx 0 40rpx;
-		margin: auto;
-
-		.info-left {
-			padding-left: 34rpx;
-
-			.user-name {
-				display: flex;
-				align-items: center;
-
-				image {
-					width: 120rpx;
-					height: 120rpx;
-					border-radius: 50%;
+	.popup-btn {
+		margin: 58rpx auto 0;
+		width: 270rpx;
+		height: 66rpx;
+		background: #f0c838;
+		border-radius: 34rpx;
+		text-align: center;
+		line-height: 66rpx;
+		font-size: 36rpx;
+		font-family: Source Han Sans CN;
+		font-weight: 500;
+		color: #ffffff;
+	}
+}
+.user-wrap {
+	position: relative;
+	z-index: 10;
+	width: 690rpx;
+	height: 283rpx;
+	background: #ffffff;
+	box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46);
+	border-radius: 20rpx;
+	padding: 34rpx 0 40rpx;
+	margin: auto;
+	.info-left {
+		padding-left: 34rpx;
+		.user-name {
+			display: flex;
+			align-items: center;
+			image {
+				width: 120rpx;
+				height: 120rpx;
+				border-radius: 50%;
+			}
+			.user-font {
+				padding-left: 34rpx;
+				.name {
+					width: 250rpx;
+					font-size: 40rpx;
+					font-family: Source Han Sans CN;
+					font-weight: 400;
+					color: #333333;
 				}
-
-				.user-font {
-					padding-left: 34rpx;
-
-					.name {
-						width: 250rpx;
-						font-size: 40rpx;
-						font-family: Source Han Sans CN;
-						font-weight: 400;
-						color: #333333;
-					}
-
-					.phone {
-						margin-top: 10rpx;
-						font-size: 20rpx;
-						font-family: PingFang SC;
-						font-weight: 500;
-						color: #999999;
-					}
+				.phone {
+					margin-top: 10rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
 				}
 			}
-
-			.kpi {
-				background: #f5eede;
-				border-radius: 30rpx 0px 0px 30rpx;
-				padding: 18rpx 24rpx;
+		}
+		.kpi {
+			position: relative;
+			background: #f5eede;
+			border-radius: 30rpx 0px 0px 30rpx;
+			width: 178rpx;
+			height: 54rpx;
+			border-radius: 26px 0px 0px 25px;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #c6914e;
+			.kpi-bg {
+				position: absolute;
+				top: 0;
+				right: 0;
+				left: 0;
+				.bg {
+					width: 178rpx;
+					height: 54rpx;
+				}
+			}
+			.kpi-font {
+				position: relative;
+				z-index: 2;
+				line-height: 54rpx;
+				text-align: right;
+				margin-right: 16rpx;
 				font-size: 26rpx;
 				font-family: PingFang SC;
-				font-weight: bold;
-				color: #c6914e;
+				font-weight: 500;
+				color: #93794b;
 			}
 		}
-
-		.info-right {
+	}
+	.info-right {
+		display: flex;
+		align-items: center;
+		margin-top: 54rpx;
+		padding: 0 34rpx;
+		.iright-icon {
+			width: 32rpx;
+			height: 32rpx;
+		}
+		.iright-font {
+			margin-left: 12rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+	}
+}
+.user-set {
+	view {
+		flex-shrink: 0;
+	}
+	padding: 30rpx;
+	image {
+		height: 40rpx;
+		width: 40rpx;
+	}
+}
+.main-box {
+	margin: 20rpx auto 0;
+	width: 690rpx;
+	background: #ffffff;
+	box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
+	border-radius: 20rpx;
+	.title {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 24rpx;
+		border-bottom: 1px solid #eeeeee;
+		.title-left {
 			display: flex;
-			justify-content: space-around;
 			align-items: center;
-			margin: 30rpx 0;
-			padding: 0 34rpx;
-			.item-item {
-				padding-bottom: 20rpx;
-				width: 33%;
-				display: flex;
-				justify-content: center;
-				flex-direction: column;
-				align-items: center;
-			
-				.item-num {
-					font-size: 36rpx;
-					font-weight: bold;
-					color: #333333;
-				}
-			
-				.item-font {
-					margin-top: 18rpx;
-					font-size: 22rpx;
-					font-weight: 500;
-					color: #666666;
-				}
+			.title-icon {
+				width: 32rpx;
+				height: 32rpx;
+			}
+			.title-font {
+				margin-left: 20rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
 			}
 		}
-	}
-
-	.user-set {
-		justify-content: flex-end;
-
-		view {
-			flex-shrink: 0;
-		}
-
-		padding: 30rpx;
-
-		image {
-			height: 40rpx;
-			width: 40rpx;
+		.title-right {
+			width: 14rpx;
+			height: 24rpx;
 		}
 	}
-
-	.main-box {
-		margin: 20rpx auto 0;
-		width: 690rpx;
-		background: #ffffff;
-		box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
-		border-radius: 20rpx;
-
-		.title {
+	.main {
+		padding: 50rpx 0 30rpx;
+		.item {
+			padding-bottom: 20rpx;
+			width: 33%;
 			display: flex;
-			justify-content: space-between;
+			flex-direction: column;
 			align-items: center;
-			padding: 24rpx;
-			border-bottom: 1px solid #EEEEEE;
-
-			.title-left {
-				display: flex;
-				align-items: center;
-
-				.title-icon {
-					width: 32rpx;
-					height: 32rpx;
-				}
-
-				.title-font {
-					margin-left: 20rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #333333;
-				}
+			.item-num {
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
 			}
-
-			.title-right {
-				width: 14rpx;
-				height: 24rpx;
+			.item-font {
+				margin-top: 18rpx;
+				font-size: 22rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
 			}
 		}
-
-		.main {
-			padding: 30rpx 0 20rpx;
-
-		
-
-			.oitem {
-				width: 25%;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-
-				.oitem-image {
-					height: 50rpx;
-					width: 48rpx;
-				}
-
-				.oitem-font {
-					margin-top: 20rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #333333;
-				}
+		.oitem {
+			width: 25%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			.oitem-image {
+				height: 50rpx;
+				width: 48rpx;
+			}
+			.oitem-font {
+				margin-top: 20rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
 			}
 		}
 	}
+}
 </style>

+ 0 - 372
pages/user/withdrawal.vue

@@ -1,372 +0,0 @@
-<template>
-	<view class="content">
-		<!-- <uni-notice-bar single="true" text="实际到账98%"></uni-notice-bar> -->
-		<view class="content-money">
-			<view class="flex " style="width: 750rpx;justify-content: space-around;margin-left: 0;">
-				<view class="buttom">
-					<view class="icon">{{ userInfo.cash | getMoneyStyle }}</view>
-					<text class="text">可提现现金</text>
-				</view>
-			</view>
-		</view>
-		
-		<view class="row-box">
-			<view class="title">提现金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
-				<view class="buttom" @click="withdrawal = userInfo.cash">全部提现</view>
-			</view>
-		</view>
-		<view class="tip" v-if="withdrawal != 0">
-			实际到账 {{ real }}元
-		</view>
-		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" >
-			<radio-group @change="tabRadio">
-				<!-- <label>
-					<view class="box">
-						<view class="icon iconfont iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>提现至微信</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label> -->
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="aliData.fullname">提现至支付宝</text>
-								<text v-else>请创建支付宝账号</text>
-							</view>
-							<view class="node">
-								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="alipay" color="#F8DABA" :checked="type == 'alipay'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
-								<text v-else>请创建银行账号</text>
-							</view>
-							<view class="node">
-								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="bank" color="#F8DABA"  :checked="type == 'bank'" /></view>
-					</view>
-				</label>
-			</radio-group>
-		</view>
-		<!-- #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" />
-		</view>
-		<view class="row b-b" v-if="type == 'alipay'">
-			<text class="tit">支付宝姓名</text>
-			<input class="input" type="text" v-model="alipay_name" placeholder="请输入支付宝姓名" placeholder-class="placeholder" />
-		</view>
-		<view 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" />
-		</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" />
-		</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" />
-		</view>
-		<button class="add-btn up" @click="confirm">提交申请</button>
-		<!-- <button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button> -->
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
-import { 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']),
-		real() {
-			return (this.withdrawal * 0.98).toFixed(2) * 1;
-		}
-	},
-	data() {
-		return {
-			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
-		//加载提现信息
-		this.loadData();
-		// // 加载提款账号信息
-		// this.loadAli();
-		// this.loadBank();
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-		// 加载余额信息
-		async loadData() {
-			extractBank({}).then(({ data }) => {
-				this.minPrice = data.minPrice;
-			});
-		},
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				money: this.withdrawal, //金额
-				money_type: 0 //0佣金1余额
-			};
-
-			if (this.withdrawal < this.minPrice) {
-				uni.showToast({
-					title: '提现金额不可少于' + this.minPrice,
-					duration: 2000,
-					mask: false,
-					icon: 'none'
-				});
-				return;
-			}
-			if (this.type == 'alipay') {
-				console.log('alipay');
-				data.name = this.alipay_name;
-				data.alipay_code = this.alipay_code;
-			}
-			if (this.type == 'bank') {
-				console.log(bank);
-				data.name = this.bank_people;
-				data.bankname = this.bank_name;
-				data.cardnum = this.bank_code;
-			}
-
-			extractCash(data)
-				.then(e => {
-					getUserInfo({})
-						.then(({ data }) => {
-							this.setUserInfo(data);
-						})
-						.catch(e => {
-							console.log(e);
-						});
-					uni.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
-				.catch(e => {
-					console.log();
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.content-money {
-	padding: 30rpx 0;
-	background: #ffffff;
-}
-.flex {
-	background-color: #ffffff;
-	text-align: center;
-	margin: 0 30rpx;
-	border-radius: $border-radius-sm;
-	.buttom {
-		font-size: $font-lg;
-		width: 50%;
-	}
-	.interval {
-		width: 2px;
-		height: 60rpx;
-		background-color: #eeeeee;
-	}
-	.icon {
-		background-size: 100%;
-		font-size: 42rpx;
-		color: $font-color-dark;
-		font-weight: bold;
-		background-repeat: no-repeat;
-		background-position: center;
-	}
-	.text {
-		color: $font-color-light;
-	}
-}
-
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.iconlocation {
-			font-size: 36rpx;
-			color: $font-color-light;
-		}
-
-		.buttom {
-			color: #F8DABA;
-			font-size: $font-base;
-		}
-	}
-}
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: #303030;
-		color: #F8DABA;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-			.icon-img {
-				height: 50rpx;
-				width: 50rpx;
-			}
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-.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;
-	}
-}
-.tip {
-	padding: 20rpx;
-	color: #FD3B39;
-}
-</style>

二進制
static/icon/img39.png


二進制
static/icon/index-gou.png


二進制
static/img/address.png


二進制
static/img/back.png


二進制
static/img/backb.png


二進制
static/img/bargainBg.jpg


二進制
static/img/busy.png


二進制
static/img/call.png


二進制
static/img/cart.png


二進制
static/img/copy.png


二進制
static/img/fanhui.png


二進制
static/img/img01.png


二進制
static/img/integration.png


二進制
static/img/jian.png


二進制
static/img/jiantou.png


二進制
static/img/jiedianBg.png


二進制
static/img/jingt.png


二進制
static/img/jt.png


二進制
static/img/kf.png


二進制
static/img/lc1.png


二進制
static/img/lc2.png


二進制
static/img/lc3.png


二進制
static/img/lc4.png


二進制
static/img/leisure.png


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


二進制
static/img/ling.png


二進制
static/img/log.jpg


二進制
static/img/log.png


二進制
static/img/logo.jpg


二進制
static/img/message.png


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


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


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


二進制
static/img/mygx.png


二進制
static/img/myjf.png


二進制
static/img/myyue.png


二進制
static/img/order99.png


二進制
static/img/people.png


二進制
static/img/productIcon.png


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


二進制
static/img/quan.png


二進制
static/img/quaninco.png


二進制
static/img/search.png


二進制
static/img/seckill-inco.png


二進制
static/img/serve.png


二進制
static/img/sign.png


二進制
static/img/store1.png


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