瀏覽代碼

commit -m 呵呵商城

zhengjinyi 4 年之前
父節點
當前提交
a64da85a38
共有 35 個文件被更改,包括 2743 次插入2356 次删除
  1. 1 1
      common/config/authorize.js
  2. 0 2
      common/css/iconfont.scss
  3. 1 1
      components/cm-custom/au-custom.vue
  4. 1 1
      components/cm-custom/cm-custom.vue
  5. 1 1
      components/cm-custom/cu-custom.vue
  6. 1 1
      components/cm-custom/custom-p.vue
  7. 1 1
      components/cm-custom/index-custom.vue
  8. 164 0
      components/cm-custom/pay-custom.vue
  9. 2 1
      components/cm-module/creatOrder/choiceAddress.vue
  10. 1 1
      components/cm-module/creatOrder/sellerFreight.vue
  11. 3 12
      components/cm-module/headerNavbar/header-poduct.vue
  12. 1 1
      components/cm-module/headerNavbar/headerNavbar.vue
  13. 1 1
      components/cm-module/homeIndex/customer.vue
  14. 17 139
      components/cm-module/orderDetails/goodsList.vue
  15. 11 91
      components/cm-module/orderDetails/orderButton.vue
  16. 11 47
      components/cm-module/orderDetails/orderInformation.vue
  17. 11 71
      components/cm-module/orderDetails/orderListButton.vue
  18. 5 33
      components/cm-module/productDetails/cm-activipopu.vue
  19. 4 33
      components/cm-module/productDetails/cm-price.vue
  20. 4 4
      components/empty.vue
  21. 1 1
      manifest.json
  22. 20 1
      pages.json
  23. 2 2
      pages/authorize/authorize.vue
  24. 63 248
      pages/goods/product.vue
  25. 0 1
      pages/goods/search.vue
  26. 1479 1479
      pages/tabBar/cart/index.vue
  27. 4 1
      pages/tabBar/index/index.vue
  28. 26 1
      pages/tabBar/user/index.vue
  29. 226 0
      pages/user/activity/activity-list.vue
  30. 386 0
      pages/user/activity/activity.vue
  31. 6 46
      pages/user/order/create-order.vue
  32. 7 7
      pages/user/order/order-details.vue
  33. 194 91
      pages/user/order/order-list.vue
  34. 86 34
      pages/user/order/success.vue
  35. 2 2
      services/public.js

+ 1 - 1
common/config/authorize.js

@@ -89,7 +89,7 @@ const getCode = provider => {
 				} else {
 					reject('获取code失败')
 					uni.navigateTo({
-						url: '/pages/tabBar/home/index'
+						url: '/pages/tabBar/index/index'
 					})
 				}
 			},

文件差異過大導致無法顯示
+ 0 - 2
common/css/iconfont.scss


+ 1 - 1
components/cm-custom/au-custom.vue

@@ -50,7 +50,7 @@
 			},
 			_goHome:function(){
 				uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 			}
 		},

+ 1 - 1
components/cm-custom/cm-custom.vue

@@ -65,7 +65,7 @@
 			},
 			_goHome:function(){
 				uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 			}
 		},

+ 1 - 1
components/cm-custom/cu-custom.vue

@@ -55,7 +55,7 @@
 			},
 			_goHome:function(){
 				uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 			}
 		},

+ 1 - 1
components/cm-custom/custom-p.vue

@@ -110,7 +110,7 @@
 		    },
 		    _goHome: function () {
 		      	uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 		    }
 		},

+ 1 - 1
components/cm-custom/index-custom.vue

@@ -60,7 +60,7 @@
 			},
 			_goHome:function(){
 				uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 			}
 		},

+ 164 - 0
components/cm-custom/pay-custom.vue

@@ -0,0 +1,164 @@
+<template name="headerNavbar">
+	<!-- 自定义导航栏 -->
+	<view class='navbar-wrap' :style="{height:navbarHeight+'px',paddingTop:statusBarHeight+'px'}"> 
+	  	<view class="navbar-text" :style="{lineHeight:(navbarHeight - statusBarHeight)+'px;',fontSize:fontSizeSetting+'px;'}">
+	    	{{navbarData.title ? navbarData.title : " "}}
+	  	</view>
+	  	<view class="navbar-icon" v-if="navbarData.showCapsule ? navbarData.showCapsule : true" 
+			  :style="{width:headerBtnPosi.height+'px;',lineHeight:(navbarBtn.height)+'px',top:navbarBtn.top + statusBarHeight+'px;',left:navbarBtn.right+'px;',height:(navbarBtn.height)+'px;'}">
+			  <text @click="_goHome" class="iconfont icon-fanhuishouye" :style="{width:headerBtnPosi.width/2+'px',height:navbarBtn.height+'px'}"></text>
+	  	</view>
+	</view>
+</template>
+
+<script>
+	var self;
+	export default{
+		name:'headerNavbar',
+		props:{
+		    navbarData: { // 由父页面传递的数据
+				type: Object
+		    },
+			systeminfo:{
+				type:Object
+			},
+			headerBtnPosi:{
+				type:Object
+			},
+			isBackType:{
+				type:Boolean,
+				default:false
+			},
+			page:{
+				type:Number,
+				default:1
+			},
+			path:{
+				type:String
+			}
+		},
+		data() {
+			return{
+				// haveBack: true, // 是否有返回按钮,true 有 false 没有 若从分享页进入则为 false
+			    statusBarHeight: 0, // 状态栏高度
+			    navbarHeight: 0, // 顶部导航栏高度
+			    navbarBtn: { // 胶囊位置信息
+			      height: 0,
+			      width: 0,
+			      top: 0,
+			      bottom: 0,
+			      right: 0
+				},
+				platform:'',
+				fontSizeSetting:0,
+				screenWidth:0
+			}
+		},
+		created() {
+			this.fontSizeSetting = this.systeminfo.fontSizeSetting
+			let statusBarHeight = this.systeminfo.statusBarHeight // 状态栏高度
+			let headerPosi = this.headerBtnPosi // 胶囊位置信息
+		    /**
+		     * wx.getMenuButtonBoundingClientRect() 坐标信息以屏幕左上角为原点
+		     * 菜单按键宽度: 87
+		     * 菜单按键高度: 32
+		     * 菜单按键左边界坐标: 278
+		     * 菜单按键上边界坐标: 26
+		     * 菜单按键右边界坐标: 365
+		     * 菜单按键下边界坐标: 58
+		     */
+			let btnPosi = { // 胶囊实际位置,坐标信息不是左上角原点
+			      height: headerPosi.height,
+			      width: headerPosi.width,
+			      // 胶囊top - 状态栏高度
+			      top: headerPosi.top - statusBarHeight,
+			      // 胶囊bottom - 胶囊height - 状态栏height (现胶囊bottom 为距离导航栏底部的长度)
+			      bottom: headerPosi.bottom - headerPosi.height - statusBarHeight,
+			      // 屏幕宽度 - 胶囊right
+			      right: this.systeminfo.screenWidth - headerPosi.right
+			}
+			let haveBack;
+			if (getCurrentPages().length === 1) { // 当只有一个页面时
+			     haveBack = false;
+			} else {
+			     haveBack = true;
+			}
+		    this.isBackType=haveBack, // 获取是否是通过分享进入的小程序
+		    this.statusBarHeight=statusBarHeight,
+		    this.navbarHeight= headerPosi.bottom + btnPosi.bottom, // 原胶囊bottom + 现胶囊bottom
+		    this.navbarBtn=btnPosi
+		},
+		onLoad(){
+			
+		},
+		methods:{
+		    _goHome: function () {
+		      	uni.switchTab({
+		        	url: '/pages/tabBar/index/index'
+		      	})
+		    }
+		},
+		onShow(){
+	
+		}
+	}
+</script>
+
+<style lang="scss">
+	.navbar-wrap {
+		 position: fixed;
+		 width: 100%;
+		 top: 0;
+		 z-index: 9999;
+		 box-sizing: border-box;
+		 background: #FFFFFF;
+	}
+	.navbar-text {
+		 text-align: center;
+		 color: #000000;
+		 font-weight: 500;
+	}
+	.navbar-icon {
+		 position: fixed;
+		 display: flex;
+		 border-radius: 64rpx;
+		 box-sizing: border-box;
+	}
+	.navbar-icon .iconfont {
+		 text-align: center;
+		 display: inline-block;
+		 overflow: hidden;
+		 margin-bottom: 1px;
+		&.icon-fanhuishouye {
+			font-size: 38rpx;
+		}
+	}
+	.navbar-icon .icon-vertical_line {
+		color: #999999;
+	}
+	.navbar-loading {
+		 background: #fff;
+		 text-align: center;
+	}
+</style>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 2 - 1
components/cm-module/creatOrder/choiceAddress.vue

@@ -26,7 +26,7 @@
 		 		</view>
 		 	</view>
 		 </navigator>
-		 <image  src="../../../static/ws/address_cat.png" mode=""></image>
+		 <image  :src="StaticUrl+'icon-line.png'" mode=""></image>
 	</view>
 </template>
 
@@ -40,6 +40,7 @@
 		},
 		data() {
 			return{
+				StaticUrl:this.$Static,
 				isEmpty:false,
 				addressSrc:'',
 			}

+ 1 - 1
components/cm-module/creatOrder/sellerFreight.vue

@@ -54,7 +54,7 @@
 		},
 		data() {
 			return{
-				freightText:'到付',
+				freightText:'包邮',
 				freightMoney:0,
 				specClass: '',//规格弹窗css类,控制开关动画
 				freightList:[

+ 3 - 12
components/cm-module/headerNavbar/header-poduct.vue

@@ -7,14 +7,8 @@
 			  <text v-else  @click="_goHome" class="iconfont icon-fanhuishouye"></text>
 	  	</view>
 		<view class="navbar-text" :style="{top:navbarBtn.top + statusBarHeight+'px;',height:navbarBtn.height+'px;',fontSize:fontSizeSetting+'px;'}">
-			<image class="logo" :style="{width:navbarBtn.height+'px;',height:navbarBtn.height+'px;'}" src="https://static.caimei365.com/app/img/icon/logo-top@2x.png" mode=""></image>
+			商品详情
 		</view>
- 		<!--<view class="navbar-text" :style="{top:navbarBtn.top + statusBarHeight+'px;',height:navbarBtn.height+'px;',fontSize:fontSizeSetting+'px;'}">
-	    	<view class="gosearch-btn" :style="{paddingLeft:navbarBtn.height+'px;',right:(navbarBtn.width+30)+'px;',borderRadius:(navbarBtn.height/2)+'px;',width:(375-navbarBtn.width*2)+'px;',lineHeight:navbarBtn.height+'px;'}">
-				<text class="iconfont icon-sousuo" :style="{width:navbarBtn.height+'px;',height:navbarBtn.height+'px;',lineHeight:navbarBtn.height+'px;'}"></text>
-				<view class="input" @click="this.$api.navigateTo(clickPath)">搜索商品/供应商/项目仪器</view>
-			</view>
-	  	</view> -->
 	</view>
 </template>
 
@@ -114,7 +108,7 @@
 		    },
 		    _goHome: function () {
 		      	uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 		    }
 		},
@@ -143,10 +137,7 @@
 		 color: #000000;
 		 font-weight: 500;
 		 position: fixed;
-		 .logo{
-			 margin: 0 auto;
-			 display: block;
-		 }
+		 text-align: center;
 	}
 	.gosearch-btn{
 		height: 100%;

+ 1 - 1
components/cm-module/headerNavbar/headerNavbar.vue

@@ -93,7 +93,7 @@
 		    },
 		    _goHome: function () {
 		      	uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 		    }
 		},

+ 1 - 1
components/cm-module/homeIndex/customer.vue

@@ -60,7 +60,7 @@
 			},
 			_goHome:function(){
 				uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
+		        	url: '/pages/tabBar/index/index'
 		      	})
 			}
 		},

+ 17 - 139
components/cm-module/orderDetails/goodsList.vue

@@ -4,72 +4,25 @@
 		<view class="goods-list">
 			<view v-for="(item, index) in shopOrderData" :key="index" class="goods-item clearfix">
 				<view class="shoptitle">
-					<view v-if="item.shopPromotion" class="floor-item-act">
-						<view class="floor-tags" @click.stop="clickPopupShow(item.shopPromotion)">{{item.shopPromotion.name}}</view>	
-					</view>
-					<view class="title-text" v-else>{{item.shopName}}</view> 
+					<view class="title-text">{{item.shopName}}</view> 
 				</view>
 				<view class="productlist" v-for="(pros,idx) in item.orderProductList" :key="idx">
 					<view class="goods-pros-t " @click="details(pros)">
 						<view class="pros-left">
-							<view class="pros-img">
-								<image :src="pros.productImage" alt="" />
-								<text class="tips" v-if="pros.productType ==2 || pros.productType ==1">赠品</text>
-							</view>
+							<view class="pros-img"><image :src="pros.productImage" alt="" /></view>
 						</view>
 						<view class="pros-product">
 							<view class="producttitle">{{pros.name}}</view>
 							<view class="productspec product-view" v-if="pros.productCategory != 2">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
+							<view class="floor-item-act"><view class="tag">活动价</view></view>
 							<view class="product-view">
-								<view class="view-num red" v-if="pros.productType ==2 || pros.productType ==1">
-									<text>¥0.00</text>
-								</view>
-								<view class="view-num red" v-else :class="PromotionsFormat(pros.productPromotion) ? 'disabled' : ''">¥{{pros.price | NumFormat}}</view>
-							</view>
-							<view class="floor-item-act" v-if="pros.productPromotion!=null" >
-								<view v-if="PromotionsFormat(pros.productPromotion)" class="floor-tags" @click.stop="clickPopupShow(pros.productPromotion)">
-									{{pros.productPromotion.name}}
-									<text v-if ="pros.productPromotion!=null && pros.productPromotion.type !=3">
-										:¥{{ pros.productPromotion == null ? '0.00' : pros.productPromotion.touchPrice | NumFormat}}
-									</text>
-								</view>
-								<view v-else-if="pros.productPromotion.type !=3" class="floor-tags" @click.stop="clickPopupShow(pros.productPromotion)">{{pros.productPromotion.name}}</view>	
+								<view class="view-num red">¥{{pros.price | NumFormat}}</view>
 							</view>
 							<view class="product-view">
 								<view class="view-num right">x {{pros.num}}</view>
 							</view>
 						</view>	
 					</view>
-					<view class=" product-info">
-						<view class="product-view" v-if="pros.returnedNum>0 || pros.actualCancelNum>0">
-							<view class="view-num">已退货/已取消</view>
-							<view class="view-right">{{pros.returnedNum}}/{{pros.actualCancelNum}}</view>
-						</view>
-						<view class="product-view">
-							<view class="view-num">折扣</view>
-							<view class="view-right">{{pros.discount == null ? '0' : pros.discount}}%</view>
-						</view>
-						<view class="product-view">
-							<view class="view-num">税率</view>
-							<view class="view-right">{{pros.taxRate}}%</view>
-						</view>
-						<view class="product-view">
-							<view class="view-num">折后单价</view>
-							<view class="view-right">
-								<text v-if="PromotionsFormat(pros.productPromotion)" 
-									  :class="PromotionsFormat(pros.productPromotion) ? 'disabled' : ''">
-									  ¥{{pros.discountPrice | NumFormat}}
-								</text>
-								<text>
-									¥{{(PromotionsFormat(pros.productPromotion) ? pros.productPromotion.touchPrice : pros.discountPrice)  | NumFormat}}
-								</text>
-							</view>
-						</view>
-						<view class="product-view allPrice">
-							<view class="view-num">合计</view>
-							<view class="view-right">¥{{pros.totalFee | NumFormat}}</view>
-						</view>
-					</view>
 				</view>	
 				<view class="goods-pros-m" v-if="item.note">
 					<view class="m-text">留言:</view>
@@ -80,11 +33,6 @@
 				<view class="goods-pros-b">
 					<view class="count">共{{item.itemCount}}件商品</view>
 					<view class="sum">
-						<view class="sum-none" v-if="item.promotionFullReduction>0">
-							<text class="money-sign">¥</text>
-							<text class="money">{{ (item.totalAmount+item.promotionFullReduction) | NumFormat }}</text>
-							<text class="money-reduced">减<text>¥{{ (item.promotionFullReduction) | NumFormat}}</text></text>
-						</view>
 						<view class="sum-money" :class="item.promotionFullReduction == 0 ? 'none' : ''">
 							商品总额:<text class="money">¥{{item.totalAmount | NumFormat}}</text>
 						</view>
@@ -143,10 +91,6 @@
 					this.$api.navigateTo(`/pages/goods/product?id=${pros.organizeProductId}`)
 				}
 			},	
-			clickPopupShow(pros){
-				console.log(pros)
-				this.$emit('popupClick',pros)
-			},
 			PromotionsFormat(promo){//促销活动类型数据处理
 				if(promo!=null){
 					if(promo.type == 1 && promo.mode == 1){
@@ -235,20 +179,6 @@
 					border-radius: 10rpx;
 					border:1px solid #f3f3f3;
 					position: relative;
-					.tips{
-						display: inline-block;
-						width: 80rpx;
-						height: 40rpx;
-						background-image: linear-gradient(214deg, #ff4500 0%, #ff5800 53%, #ff4367 100%);
-						line-height: 40rpx;
-						text-align: center;
-						font-size: $font-size-24;
-						color: #FFFFFF;
-						border-radius:10rpx 0 10rpx 0 ;
-						position: absolute;
-						top:0;
-						left: 0;
-					}
 					image{
 						width: 210rpx;
 						height: 210rpx;
@@ -256,29 +186,6 @@
 					}
 				}
 			}
-			.product-info{
-				padding: 10rpx 0;
-				.product-view{
-					font-size:$font-size-24;
-					color: #999999;
-					overflow: hidden;
-					height: 44rpx;
-					line-height: 44rpx;
-					.view-num{
-						float: left;
-					}
-					.view-right{
-						color: #666666;
-						float: right;
-						.disabled{
-							color: #999999;
-							text-decoration: line-through;
-							margin-right: 10rpx;
-						}
-					}
-				}
-				
-			}
 			.pros-product{
 				width: 468rpx;
 				height: 100%;
@@ -300,7 +207,7 @@
 							float: right;
 						}
 						&.red{
-							color: #FF2000;
+							color: $color-system;
 							font-weight: bold;
 							&.disabled{
 								color: #999999;
@@ -349,22 +256,19 @@
 				}
 				.floor-item-act{
 					width: 100%;
-					height: 56rpx;
-					text-align: center;
-					box-sizing: border-box;
+					height: 30rpx;
+					margin-top: 8rpx;
 					float: left;
-					padding:0 0 10rpx 0;
-					.floor-tags{
-						height: 28rpx;
-						border-radius: 6rpx;
-						background-color: #FFFFFF;
-						line-height: 28rpx;
-						color: #ff2a2a;
-						text-align: center;
+					.tag{
 						display: inline-block;
-						padding:0 5rpx;
-						font-size: $font-size-20;
-						border: 1px solid #ff2a2a;
+						width: 80rpx;
+						height: 30rpx;
+						background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+						background-size: contain;
+						font-size: 22rpx;
+						line-height: 30rpx;
+						text-align: center;
+						color: #f83c6c;
 						float: left;
 					}
 				}
@@ -420,32 +324,6 @@
 				.sum{
 					width: 520rpx;
 					float: right;
-					.sum-none{
-						width: 100%;
-						height: 40rpx;
-						line-height: 40rpx;
-						color: $text-color;
-						float: left;
-						text-align: right;
-						.money{
-							font-size: $font-size-26;
-							color: #999999;
-							text-decoration: line-through;
-						}
-						.money-sign{
-							font-size: $font-size-26;
-							color: #999999;
-							text-decoration: line-through;
-						}
-						.money-reduced{
-							margin-left: 10rpx;
-							font-size: $font-size-26;
-							color: $color-system;
-							.iconfont{
-								font-size: $font-size-34;
-							}
-						}
-					}
 					.sum-money{
 						width: 100%;
 						height: 40rpx;
@@ -459,7 +337,7 @@
 							line-height: 80rpx;
 						}
 						.money{
-							color: #FF2A2A;
+							color: $color-system;
 							font-size: $font-size-28;
 						}
 					}		

+ 11 - 91
components/cm-module/orderDetails/orderButton.vue

@@ -3,14 +3,11 @@
 		<!-- 底部按钮 -->
 		<view class="button-content">
 			<view class="btn btn-pay" v-if="btnState.isPay" @click.stop="btnConfirm('pay',order)">付款</view>
-			<view class="btn btn-share" @click.stop="onShareCode">
-				<view class="tips" v-if="shareCode">分享码:{{shareCode}}</view>
-				分享订单
-			</view>
+			<view class="btn btn-pay" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">确认收货</view>
+			<view class="btn btn-pay" v-if="btnState.isAgain" @click.stop="btnConfirm('confirm',order)">再次购买</view>
 			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',order)">取消订单</view>
-			<view class="btn btn-delete" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view>
-			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
-			<view class="btn " v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">确认收货</view>
+			<view class="btn btn-cancel" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view>
+			<view class="btn btn-cancel" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
 		</view>
 	</view>
 </template>
@@ -46,6 +43,7 @@
 					{label:'isDelete',val:[6],status: true},
 					{label:'isCancel',val:[0,111],status: true},
 					{label:'isConfirm',val:[33],status: true},
+					{label:'isAgain',val:[33],status: true},
 					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
 				]
 			}
@@ -82,16 +80,10 @@
 						isDelete: false,
 						isCancel: false,
 						isConfirm: false,
+						isAgain: false,
 					}
 				return 	btnState
 			},
-			getShareCode(code){
-				this.shareCode = code
-			},
-			onShareCode(){
-				this.$parent.isShareModal = true
-				this.$emit('shareConfirm')
-			},
 			btnConfirm(type,order){
 				let data = {
 						type:type,
@@ -140,84 +132,12 @@
 				float: right;
 				border: 2rpx solid #333333;
 				border-radius: 34rpx;
-				&.btn-payment{
-					line-height: 38rpx;
-					font-size: 24rpx;
-					background: #f9a94b;
-					color: #fff;
-					border: 2rpx solid #f9a94b;
-					text{
-						display: block;
-						line-height: 15rpx;
-					}
+				&.btn-pay{
+					border-color: $color-system;
+					color: $color-system;
 				}
-				&.btn-share{
-					position: relative;
-				}
-			}
-			.btn-color{
-				background: $btn-confirm;
-				margin: 22rpx 0 22rpx 22rpx;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 24rpx;
-					top: -45rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-			.btn-confirm{
-				background:#ff7a51;
-				border-color:#ff7a51;
-				color: #FFFFFF;
-			}
-			.btn-pay{
-				margin-right: 0;
-			}
-			.btn-share{
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:#E15616;
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 0;
-					top: -65rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:#E15616;
-						position: absolute;
-						bottom: -8rpx;
-						left: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
+				&.btn-cancel{
+					text-align: center;
 				}
 			}
 		}

+ 11 - 47
components/cm-module/orderDetails/orderInformation.vue

@@ -11,49 +11,20 @@
 				</view>
 			</view>
 			<view class="information-view title">
+				<view class="view-num">订单总额:<label class="label">¥{{ orderData.payTotalFee =='undefined' ? '' : orderData.payTotalFee | NumFormat }}</label></view>
+			</view>
+			<view class="information-view">
 				<view class="view-num time">下单时间:<label class="label">{{ orderData.orderTime =='undefined' ? '' : orderData.orderTime }}</label></view>
 			</view>
+			<view class="information-view bame">
+				<view class="view-num">运费:<label class="label">包邮</label></view>
+			</view>
 			<view class="information-view">
-				<view class="view-num bold">
-					订单标识:<label class="label">{{ orderData.orderMark =='undefined' ? '' : orderData.orderMark }}</label>
-				</view>
+				<view class="view-num time">支付时间:<label class="label">{{ orderData.orderTime =='undefined' ? '' : orderData.orderTime }}</label></view>
 			</view>
 			<view class="information-view bame">
-				<view class="view-num">订单总额:<label class="label">¥{{ orderData.payTotalFee =='undefined' ? '' : orderData.payTotalFee | NumFormat }}</label></view>
+				<view class="view-man">已退货/已取消:<label class="label">2/0</label></view>
 			</view>
-			<template v-if="openShowflag">
-				<view class="information-view">
-					<view class="view-num">待付金额:<text class="red">¥{{ orderData.pendingPayments =='undefined' ? '0.00' : orderData.pendingPayments | NumFormat }}</text></view>
-					<view class="view-man"></view>
-				</view>
-				<view class="information-view bame">
-					<view class="view-man">应付总额:<label class="red">¥{{ orderData.payableAmount =='undefined' ? '0.00' : orderData.payableAmount | NumFormat }}</label></view>
-				</view>
-				<view class="information-view">
-					<view class="view-num">余额抵扣:<label class="label">¥{{ orderData.balancePayFee =='undefined' ? '' : orderData.balancePayFee | NumFormat}}</label></view>
-				</view>
-				<view class="information-view bame">
-					<view class="view-num" v-if="orderData.freePostFlag == '0'">运费:<label class="label">包邮</label></view>
-					<view class="view-num" v-if="orderData.freePostFlag == '-1'">运费:<label class="label">到付</label></view>
-					<view class="view-num" v-if="orderData.freePostFlag == '1'">运费:<label class="label">¥{{ orderData.freight | NumFormat}}</label></view>
-				</view>
-				<view class="information-view" v-show="orderData.promotionFullReduction>0">
-					<view class="view-man" >促销满减:<label class="label">¥{{ orderData.promotionFullReduction | NumFormat}}</label></view>
-				</view>
-				<view class="information-view bame">
-					<view class="view-man">赠品总数:<label class="label">{{ orderData.presentCount + orderData.promotionalGiftsCount}}</label></view>
-				</view>
-				<view class="information-view">
-					<view class="view-num">经理折扣:<label class="label">¥{{ orderData.discountFee =='undefined' ? '' : orderData.discountFee | NumFormat}}</label></view>
-				</view>
-				<view class="information-view bame">
-					<view class="view-num">已支付:<label class="red">¥{{ orderData.receiptAmount == null ? '0.00' : orderData.receiptAmount | NumFormat }}</label></view>
-					<view class="view-man"></text></view>
-				</view>
-			</template>
-		 </view>
-		 <view class="openinfo" v-if="infoflag">
-		 	<view class="btnInfo" @click="openShow">查看更多<label class="iconfont icon-xiangxiajiantou"></label></view>
 		 </view>
 	</view>
 </template>
@@ -71,8 +42,6 @@
 			return{
 				orderData:'',
 				freePostFlag:'',
-				openShowflag:false,
-				infoflag:true
 			}
 		},
 		created(){
@@ -123,10 +92,6 @@
 			}
 		},
 		methods:{
-			openShow(){
-				this.openShowflag = true;
-				this.infoflag = false;
-			},
 			initData(res) {
 				this.orderData = res;
 			},
@@ -161,7 +126,6 @@
 				// display: flex;
 				width: 58%;
 				display: inline-block;
-				
 				&.same{
 					width: 100%;
 					text-align: right;
@@ -227,11 +191,11 @@
 				.clipboard{
 					width: 64rpx;
 					height: 32rpx;
-					background: linear-gradient(270deg, #c4761f 0%, #fccd90 100%);
+					background: #fff8fd;
 					text-align: center;
 					font-size: $font-size-22;
-					color: #FFFFFF;
-					border-radius: 16rpx;
+					color: $color-system;
+					border-radius: 8rpx;
 					line-height: 32rpx;
 					display: inline-block;
 					margin-left: 15rpx;

+ 11 - 71
components/cm-module/orderDetails/orderListButton.vue

@@ -3,11 +3,11 @@
 		<!-- 底部按钮 -->
 		<view class="button-content">
 			<view class="btn btn-pay" v-if="btnState.isPay" @click.stop="btnConfirm('pay',order)">付款</view>
-			<view class="btn btn-share"  @click.stop="onShareCode(order.orderId)">分享订单</view>
+			<view class="btn btn-pay" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">确认收货</view>
+			<view class="btn btn-pay" v-if="btnState.isAgain" @click.stop="btnConfirm('again',order)">再次购买</view>
 			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',order)">取消订单</view>
-			<view class="btn btn-delete" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view>
-			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
-			<view class="btn " v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">确认收货</view>
+			<view class="btn btn-cancel" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view>
+			<view class="btn btn-cancel" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
 		</view>
 	</view>
 </template>
@@ -33,6 +33,7 @@
 					{label:'isDelete',val:[6],status: true},
 					{label:'isCancel',val:[0,111],status: true},
 					{label:'isConfirm',val:[33],status: true},
+					{label:'isAgain',val:[33],status: true},
 					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
 				]
 			}
@@ -77,18 +78,13 @@
 						isDelete: false,
 						isCancel: false,
 						isConfirm: false,
-						isShare: true,
+						isAgain: false,
 					}
 				return 	btnState
 			},
 			getShareCode(code){
 				this.shareCode = code
 			},
-			onShareCode(orderId){
-				this.$parent.isShareModal = true
-				this.$parent.btnoRderID = orderId
-				this.$emit('shareConfirm')
-			},
 			btnConfirm(type,order){
 				let data = {
 						type:type,
@@ -134,68 +130,12 @@
 				float: right;
 				border-radius: 34rpx;
 				border: 2rpx solid #333333;
-				&.btn-payment{
-					line-height: 38rpx;
-					font-size: 24rpx;
-					background: #f9a94b;
-					color: #fff;
-					border: 2rpx solid #f9a94b;
-					text{
-						display: block;
-						line-height: 15rpx;
-					}
+				&.btn-pay{
+					border-color: $color-system;
+					color: $color-system;
 				}
-			}
-			.btn-color{
-				background: $btn-confirm;
-				// margin: 22rpx 0 22rpx 22rpx;
-			}
-			.btn-cancel{
-				// background:#FFFFFF;
-				// color: #999999;
-				// float: left;
-				// margin: 22rpx 0;
-				text-align: center;
-			}
-			// .btn-delete{
-			// 	background:linear-gradient(315deg,rgba(255,163,3,1) 0%,rgba(255,53,1,1) 100%);
-			// }
-			// .btn-query{
-			// 	background:linear-gradient(135deg,rgba(255,212,129,1) 0%,rgba(198,129,0,1) 100%);
-			// }
-			.btn-confirm{
-				background:#ff7a51;
-				border-color:#ff7a51;
-				color: #FFFFFF;
-			}
-			.btn-share{
-				// background:linear-gradient(315deg,rgba(0,212,150,1) 0%,rgba(126,243,174,1) 100%);
-				position: relative;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 0;
-					top: -65rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
+				&.btn-cancel{
+					text-align: center;
 				}
 			}
 		}

+ 5 - 33
components/cm-module/productDetails/cm-activipopu.vue

@@ -6,7 +6,7 @@
 				<view class="tui-scrollview-box">
 					<view class="ladder-main clearfix">
 						<view class="ladder-item">
-							<view class="ladder-item-td">起订量</view>
+							<view class="ladder-item-td">购买数</view>
 							<view class="ladder-item-td">价格</view>
 						</view>
 						<view class="ladder-item" v-for="(ladd, index) in product.ladderPriceList" :key="index">
@@ -16,37 +16,9 @@
 					</view>
 				</view>	
 			</template>	
-			<template v-else>
-				<view class="tui-scrollview-box">
-					<view class="box-text">
-						<text>促销时间:</text>
-						<text class="txt" v-if="product.promotion.status == 1">不限时</text>
-						<text class="txt" v-else>{{ product.promotion.beginTime }} ~ {{ product.promotion.endTime }}</text>
-					</view>
-					<view class="box-title" v-show="product.promotion.mode ==2">
-						<text>购买{{product.promotion.name}}商品,满</text>
-						<text class="txt">¥{{product.promotion == null ? '0.00' : product.promotion.touchPrice | NumFormat}}</text>减
-						<text class="txt">¥{{product.promotion == null ? '0.00' : product.promotion.reducedPrice | NumFormat}}</text>
-					</view>
-					<view class="box-title" v-show="product.promotion.mode==3">
-						<text>购买{{product.promotion.name}}商品,满</text>
-						<text class="txt">¥{{product.promotion.touchPrice}}</text>赠送商品
-					</view>
-					<view class="box-product" v-show="product.promotion.mode==3">
-						<view class="box-product-main"  v-for="(item, index) in product.promotion.productGifts" :key="index">
-							<view class="image"><image :src="item.mainImage" mode="widthFix"></image></view>
-							<view class="info">
-								<view class="name">{{ item.productName }}</view>
-								<view class="num">X{{ item.productCount }}</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</template>
 			<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom :isIphoneX ? '68rpx' : '0rpx' }">
 				<view class="tui-flex-1">
-					<view class="tui-button" v-if="product.promotion.type == 2" @click="goGoodActiveFn(product.promotion.id)">更多凑单商品</view>
-					<view class="tui-button" v-else @click="hidePopup()">了解</view>
+					<view class="tui-button" @click="hidePopup()">了解</view>
 				</view>
 			</view>
 		</view>	
@@ -113,13 +85,13 @@
 		.ladder-main{
 			width: 100%;
 			min-height: 240rpx;
-			border: 1px solid rgba(225,86,22,0.3);
+			border: 1px solid $color-system;
 			border-radius: 10rpx;
 			.ladder-item{
 				width: 100%;
 				height: 80rpx;
 				float: left;
-				border-bottom: 1px solid rgba(225,86,22,0.3);
+				border-bottom: 1px solid $color-system;
 				&:nth-child(1){
 					.ladder-item-td{
 						color: #333333;
@@ -137,7 +109,7 @@
 					box-sizing: border-box;
 					float: left;
 					&:nth-child(1){
-						border-right: 1px solid rgba(225,86,22,0.3);
+						border-right: 1px solid $color-system;
 					}
 				}
 			}

+ 4 - 33
components/cm-module/productDetails/cm-price.vue

@@ -3,43 +3,14 @@
 	<view class="wrap-main">
 		<!-- 协销  -->
 		<view class="wrap-main-item">
-			<view
-				class="p-price tui-skeleton-fillet"
-				:class="promotionFormat(product.promotion) ? 'none' : ''"
-			>
+			<view class="p-price tui-skeleton-fillet">
 				<text class="txt sm">¥</text>
-				<text class="txt big">{{
-					(promotionFormat(product.promotion) ? product.price : product.retailPrice)
-						| NumFormat
-				}}</text>
+				<text class="txt big">{{ ( product.retailPrice)| NumFormat }} </text>
 			</view>
-			<view v-if="product.actStatus == 1" class="floor-item-act">
-				<view
-					v-if="product.promotion.type == 1 && product.promotion.mode == 1"
-					class="floor-tags"
-					@click.stop="clickPopupShow(1)"
-				>
-					{{ product.promotion.name
-					}}<text v-if="hasLogin"
-						>:¥{{
-							product.promotion == null
-								? '0.00'
-								: product.promotion.touchPrice | NumFormat
-						}}</text
-					>
-				</view>
-				<view v-else class="floor-tags" @click.stop="clickPopupShow()">{{
-					product.promotion.name
-				}}</view>
-			</view>
-			<view
-				v-if="product.actStatus == 0 && product.ladderPriceFlag == 1"
-				class="floor-item-act"
-			>
-				<view class="floor-tags" @click.stop="clickPopupShow()">阶梯价格</view>
+			<view class="floor-item-act">
+				<view class="tag" @click.stop="clickPopupShow()">活动价</view>
 			</view>
 		</view>
-
 		<!--促销活动弹窗提示-->
 		<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup()">
 			<view class="tui-popup-box clearfix">

+ 4 - 4
components/empty.vue

@@ -24,10 +24,10 @@
 		data() {
 			return {
 				typeSrcall: {
-					empty: 'https://static.caimei365.com/app/wisa/img/icon/icon-order-empty.png',				
+					empty: `${this.$Static}icon-empty-address.png`,				
 				},
 				typeSrc: {
-					empty: 'https://static.caimei365.com/app/wisa/img/icon/icon-order-empty.png',				
+					empty:  `${this.$Static}icon-empty-address.png`,				
 				},
 				EmptyText:'',
 			}
@@ -68,8 +68,8 @@
 		background: $bg-color;
 		z-index: 999;
 		&-image {
-			width: 200rpx;
-			height: 200rpx;
+			width: 290rpx;
+			height: 230rpx;
 		}
 		.error-text{
 			font-size: $font-size-28;

+ 1 - 1
manifest.json

@@ -56,7 +56,7 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wx0f0c706b4804eaaf",
+        "appid" : "wx2c3b0a7f343235b1",
         "setting" : {
             "urlCheck" : false,
             "minified" : true,

+ 20 - 1
pages.json

@@ -52,7 +52,8 @@
 		{
 			"path":"pages/goods/product",
 			"style":{
-				"navigationBarTitleText":"商品详情"
+				"navigationBarTitleText":"商品详情",
+				"navigationStyle":"custom"
 			}
 		}
 
@@ -123,6 +124,24 @@
 				"style": {
 					"navigationBarTitleText": "物流信息"
 				}
+			},
+			{
+				"path": "activity/activity",
+				"style": {
+					"navigationBarTitleText": "活动详情",
+					"enablePullDownRefresh":true,
+					"backgroundColor":"#ff457b",
+					"backgroundTextStyle":"light"
+				}
+			},
+			{
+				"path": "activity/activity-list",
+				"style": {
+					"navigationBarTitleText": "活动专区",
+					"enablePullDownRefresh":true,
+					"backgroundColor":"#ff457b",
+					"backgroundTextStyle":"light"
+				}
 			}
 		]
 	}],

+ 2 - 2
pages/authorize/authorize.vue

@@ -95,7 +95,7 @@ export default {
 		hanldBackFn(){
 			switch(this.authorizeType){
 				case '0':
-					this.$api.switchTabTo('/pages/tabBar/home/index')
+					this.$api.switchTabTo('/pages/tabBar/index/index')
 					break;
 				default:
 					uni.navigateBack({delta: 1})
@@ -108,7 +108,7 @@ export default {
 					wxLogin.wxLoginAuthorize()
 					switch(self.authorizeType){
 						case '0':
-							self.$api.switchTabTo('/pages/tabBar/home/index')
+							self.$api.switchTabTo('/pages/tabBar/index/index')
 							break;
 						case '1':
 							self.$api.navigateTo('/pages/login/login')

+ 63 - 248
pages/goods/product.vue

@@ -9,25 +9,17 @@
 					:page='backPage'>
 		</custom-p>
 		<view class="product-topnav" v-if='isNavbarFiexd' :class="navbarFiexd" :style="{top:CustomBar +'px'}">
-			<view class="search-input">
-				<view class="gosearch-btn" :class="navbarFiexd" @click="this.$api.navigateTo(clickPath)">
-					<view class="search-icon">
-						<text class="iconfont icon-iconfonticonfontsousuo1"></text>
-					</view>
-					<view class="search-text">搜索商品/项目仪器</view>
-				</view>
-			</view>
 			<view class="navbar">
 				<view class="nav-item tui-skeleton-fillet" :class="{ current: tabCurrentIndex === 0 }" @click="tabClick(0)">
-					<text>详情</text>
+					<text>商品</text>
 					<text class="line"></text>
 				</view>
 				<view class="nav-item tui-skeleton-fillet" :class="{ current: tabCurrentIndex === 1 }" @click="tabClick(1)">
-					<text>服务项目</text>
+					<text>详情</text>
 					<text class="line"></text>
 				</view>	
 				<view class="nav-item tui-skeleton-fillet" :class="{ current: tabCurrentIndex === 2 }" @click="tabClick(2)">
-					<text>推荐</text>
+					<text>服务项目</text>
 					<text class="line"></text>
 				</view>	
 			</view>	
@@ -42,7 +34,7 @@
 				</view>
 			</view>
 			<view class="container-product tui-skeleton" v-else>
-				<view class="container-product-main">
+				<view class="container-product-main product-details0">
 					<view class="product-top">
 						<view class="banner-section">
 							<uni-swiper-dot :info="productImage" :current="current" field="content" :mode="mode" >
@@ -67,55 +59,33 @@
 											  :ladderPriceList="ladderPriceList"/>
 								</view>
 								<view class="p-title tui-skeleton-fillet">
-									<view class="mclap-tag" v-if="product.beautyActFlag == '1'">美博会</view>
 									<view class="p-title-name" :class="product.beautyActFlag == '1' ? 'indent' : ''"> {{product.name == undefined ? '' : product.name}} </view>
 									<button open-type="share" class="p-title-share tui-share-position" @tap="onShare">
-										<view class=""><text class="iconfont icon-fenxiang1"></text></view>
+										<view class=""><text class="iconfont icon-fenxiang"></text></view>
 										<view class="">分享</view>
 									</button>
 								</view>
 								<view class="wrap-label" v-if="product.tagsList.length>0">
 									<view class="label-a tui-skeleton-fillet" v-for="(label,index) in  product.tagsList" :key="index">{{label}}</view>
 								</view>
-								<view class="product-seve">
-									<text class="label">采美承诺:</text>
-									<text class="iconfont icon-dui tui-skeleton-rect"><text class="text">无忧退货</text></text>
-									<text class="iconfont icon-dui tui-skeleton-rect"><text class="text">快速退款</text></text>
-									<text class="iconfont icon-dui tui-skeleton-rect"><text class="text">正品保证</text></text>
+								<view class="productRemarks">
+										备注:<text class="text">奥术大师大撒大所多撒大所大大奥所多</text>
 								</view>
-								<view class="productRemarks"  v-if="product.productRemarks!=''&&product.productRemarks!=null">
-									备注:{{product.productRemarks}}
+								<view class="product-seve">
+									<text class="iconfont icon-wuyoushouhou tui-skeleton-rect"><text class="text">无忧退货</text></text>
+									<text class="iconfont icon-wuyoushouhou tui-skeleton-rect"><text class="text">快速退款</text></text>
+									<text class="iconfont icon-wuyoushouhou tui-skeleton-rect"><text class="text">正品保证</text></text>
 								</view>
 							</view>
 						</view>			
 					</view>
-					<view class="product-item-none" v-if="goodsData.isNoneDisabled">
-						<image class="none-image" :src="productNoneImage" mode=""></image>
-						<view class="none-text">此商品已{{goodsData.disabledText}},请浏览以下推荐商品~</view>
-					</view>
 					<view class="product-parameter" @click="showPopup" v-if="!goodsData.isNoneDisabled">
 						<text class="title">参数:</text>
 						<text class="name">品牌  起订量  分类...</text>
-						<text class="iconfont icon-xiayibu"></text>
-					</view>
-					<view class="product-supplier" v-if="isNoneSupplier" @click="goSupplier">
-						<view class="logo"><img :src="shop.logo ? shop.logo :'https://static.caimei365.com/app/img/icon/icon-shoplogo.png'" alt=""></view>
-						<view class="main">
-							<view class="name">{{shop.name}}</view>
-							<view class="massgs">
-								<view class="label">满意度:</view>
-								<view class="p-stars">
-									<uni-stars :stars="6" :iconClass="iconClass" :iconColor="iconColor" :fontSize="36" :widthInfo="176"></uni-stars>
-								</view>
-								<view class="acount">
-									<text>{{ shop.normalNum }}</text>件商品
-								</view>
-							</view>
-						</view>
-						<view class="right"><text class="iconfont icon-xiayibu"></text></view>
+						<text class="iconfont icon-chakangengduo"></text>
 					</view>
 				</view>
-				<view class="product-details product-details0">
+				<view class="product-details product-details1">
 					<!-- 商品详情 -->
 					<view class="title">
 						<view class="title-tab">商品详情</view>
@@ -125,7 +95,7 @@
 						<view class="product-rich-text-none" v-else>暂无商品信息</view>
 					</view>
 				</view>	
-				<view class="product-details service product-details1">
+				<view class="product-details service product-details2">
 					<!-- 服务项目 -->
 					<view class="title">
 						<view class="title-tab">服务项目</view>
@@ -137,15 +107,6 @@
 						<text>暂无服务项目</text>
 					</view>
 				</view>	
-				<view class="product-details recommend product-details2">
-					<!-- 相关推荐 -->
-					<view class="title">
-						<view class="title-tab">相关推荐</view>
-					</view>
-					<view class="content hot">
-						<recommend :query-productid="product.productID" :query-type="product.recommendType" v-if="isRequest"></recommend>
-					</view>
-				</view>	
 				<!-- 商品参数 -->
 				<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup()">
 					<view class="tui-popup-box clearfix">
@@ -193,16 +154,16 @@
 				<view class="menu" v-if="isShowButton">
 					<view class="bottom-btn" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
 						<view class="bottom-le">
-							<view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/home/index')">
-								<image src="../../static/icon-home-active@3x.png"></image>
+							<view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/index/index')">
+								<text class="iconfont icon-fanhuishouye"></text>
 								<text>首页</text>
 							</view>
-							<view class="item-bt" @click="goSupplier">
-								<image src="../../static/icon-shop@3x.png"></image>
-								<text>店铺</text>
-							</view>
+							<button class="item-bt" open-type="contact" @bindcontact="handleContact" >
+								<text class="iconfont icon-kefu"></text>
+								<text>客服</text>
+							</button>
 							<view class="item-bt" @click="buyProductCart()">
-								<image src="https://static.caimei365.com/app/img/icon/icon-cart-active@3x.png"></image>
+								<text class="iconfont icon-gouwuche"></text>
 								<text>购物车</text>
 								<text  	v-if="hasLogin && goodsData.cartCount>0"
 										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
@@ -272,7 +233,6 @@
 	import cmAttributes from "@/components/cm-module/productDetails/cm-attributes.vue" //规格信息
 	import parser from "@/components/jyf-Parser/index" //富文本处理
 	import tuiSkeleton from "@/components/tui-skeleton/tui-skeleton"
-	import recommend from "@/components/cm-module/productDetails/recommend" //相关推荐
 	import cmParameter from "@/components/cm-module/productDetails/cm-parameter" //相关参数
 	import cmService from "@/components/cm-module/productDetails/cm-service" //服务项目
 	import authorize from '@/common/config/authorize.js'
@@ -284,7 +244,6 @@
 			customP,
 			parser,
 			tuiSkeleton,
-			recommend,
 			cmPrice,
 			cmAttributes,
 			cmParameter,
@@ -381,7 +340,9 @@
 		},
 		methods:{
 			initData(){// 初始化商品详情查询
-				this.ProductService.queryProductDetils({userId:this.userID,productID:this.productID,identity:this.identity}).then(response =>{	
+				this.ProductService.queryProductDetils({userId:11182,productID:6390,identity:2}).then(response =>{	
+					//购物车数量
+					this.goodsData.cartCount = 10
 					this.skeletonShow = false
 					this.productImage=[];
 					this.shop = response.data.shop
@@ -401,8 +362,6 @@
 					this.product.imageList.forEach(item =>{
 						this.productImage.push(item.image);
 					})
-					//购物车数量
-					this.goodsData.cartCount = this.product.productCount
 					//处理阶梯价格
 					if(this.product.ladderPriceList!=null){
 						this.ladderPriceList = this.product.ladderPriceList;
@@ -627,7 +586,7 @@
 			},
 			goIndex(){//商城首页
 				uni.switchTab({
-				    url: '/pages/tabBar/home/index'
+				    url: '/pages/tabBar/index/index'
 				});
 			},
 			goSupplier(){//跳供应商资料页
@@ -805,6 +764,9 @@
 			font-size: 24rpx;
 			color: #999999;
 			text-align: left;
+			.text{
+				color: #3f3f3f;
+			}
 		}
 		.wrap-top{
 			width: 702rpx;
@@ -841,20 +803,6 @@
 						text-indent: 95rpx;
 					}
 				}
-				.mclap-tag{
-					display: block;
-					width: 84rpx;
-					height: 32rpx;
-					background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
-					border-radius: 4rpx 48rpx 4px 4px;
-					line-height: 32rpx;
-					font-size: $font-size-22;
-					color: #FFFFFF;
-					text-align: center;
-					position: absolute;
-					left: 0;
-					top: 6rpx;
-				}
 				.p-title-share{
 					width: 96rpx;
 					height: 96rpx;
@@ -978,7 +926,7 @@
 				color:$color-system;
 				text-align: center;
 				border-radius: 6rpx;
-				background:#ffe6dc;
+				background:#fff3f7;
 				margin: 0 20rpx 15rpx 0;
 				display: inline-block;
 			}
@@ -994,13 +942,8 @@
 					height: 56rpx;
 					line-height: 56rpx;
 					float: left;
-					color: #FF2A2A;
+					color: $color-system;
 					font-weight: bold;
-					&.none{
-						text-decoration: line-through;
-						color: #999999;
-						font-weight: normal;
-					}
 					.txt{
 						margin:0 2rpx;
 					}
@@ -1013,25 +956,22 @@
 				}
 			}
 			.floor-item-act{
-				height: 56rpx;
-				text-align: center;
-				box-sizing: border-box;
+				width: 80rpx;
+				height: 30rpx;
+				margin-top: 15rpx;
+				margin-left: 20rpx;
 				float: left;
-				padding:10rpx 0;
-				margin-left: 10rpx;
-				.floor-tags{
-					float: right;
-					height: 28rpx;
-					border-radius: 6rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
+				.tag{
 					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					margin-left: 15rpx;
-					border: 1px solid #E15616;
+					width: 80rpx;
+					height: 30rpx;
+					background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+					background-size: contain;
+					font-size: 22rpx;
+					line-height: 30rpx;
+					text-align: center;
+					color: #f83c6c;
+					float: left;
 				}
 			}
 			.floor-item-btn{
@@ -1103,35 +1043,16 @@
 			color: #333333;
 		}
 		.iconfont{
-			color: #fea785;
+			color: $color-system;
 			margin-right: 20rpx;
-			font-size: $font-size-22;
+			font-size: $font-size-30;
 		}
 		.text{
 			font-size: $font-size-22;
-			color: #fea785;
+			color: #999999;
 			margin-left: 10rpx;
 		}
 	}
-	.product-item-none{
-		min-height: 348rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		border-bottom: 20rpx solid #F7F7F7;
-		box-sizing: border-box;
-		padding: 40rpx 0;
-		.none-image{
-			width: 284rpx;
-			height: 225rpx;
-		}
-		.none-text{
-			text-align: center;
-			font-size: $font-size-28;
-			color: #fea785;
-			line-height: 40rpx;
-		}
-	}
 	.product-parameter{
 		width: 702rpx;
 		height: 90rpx;
@@ -1161,7 +1082,7 @@
 			white-space: nowrap;
 			text-align: right;
 		}
-		.icon-xiayibu{
+		.icon-chakangengduo{
 			line-height: 90rpx;
 			display: inline-block;
 			position: absolute;
@@ -1171,77 +1092,6 @@
 			color: #b2b2b2;
 		}
 	}
-	.product-supplier{
-		width: 100%;
-		height: 174rpx;
-		padding: 30rpx 24rpx;
-		box-sizing: border-box;
-		background-color: #FFFFFF;
-		position: relative;
-		box-sizing: border-box;
-		border-bottom: 20rpx solid #F7F7F7;
-		.logo{
-			width: 128rpx;
-			height: 92rpx;
-			float: left;
-			border: 1px solid #efefef;
-			border-radius: 6rpx;
-			image{
-				width: 100%;
-				height: 100%;
-				display: block;
-				border-radius: 6rpx;
-			}
-		}
-		.main{
-			width: 470rpx;
-			height: 92rpx;
-			float: left;
-			margin-left: 20rpx;
-			.name{
-				width: 100%;
-				line-height: 46rpx;
-				float: left;
-				font-size: $font-size-28;
-				color: $text-color;
-				float: right;
-				overflow: hidden;
-				text-overflow:ellipsis;
-				white-space: nowrap;
-				text-align: left;
-			}
-			.massgs{
-				width: 100%;
-				line-height: 46rpx;
-				float: left;
-				font-size: $font-size-24;
-				color: #999999;
-				.label{
-					float: left;
-				}
-				.p-stars{
-					float: left;
-					margin-left: 20rpx;
-				}
-				.acount{
-					float: right;
-					text{
-						color: $color-system;
-					}
-				}
-			}
-		}
-		
-		.icon-xiayibu{
-			line-height: 154rpx;
-			display: inline-block;
-			position: absolute;
-			width: 48rpx;
-			top: 0;
-			right: 0;
-			color: #b2b2b2;
-		}
-	}
 	.product-details {
 		width: 100%;
 		background: #FFFFFF;
@@ -1353,6 +1203,13 @@
 				color: $text-color;
 				line-height: 34rpx;
 				position: relative;
+				.iconfont{
+					display: block;
+					width: 36rpx;
+					height: 36rpx;
+					text-align: center;
+					font-size: 34rpx;
+				}
 				.animation-num{
 					font-size:$font-size-32 ;
 					color: #FF2A2A;
@@ -1420,20 +1277,22 @@
 				color: #FFFFFF;
 			}
 			.btn-cart{
-				background-color: #ffe6dc;
+				background-color: #ffeff4;
 				color: $color-system;
 				border-radius: 42rpx 0 0 42rpx;
 			}
 			.btn-cart.disabled{
-				background-color: #E1E1E1;
-				color: #FFFFFF;
+				background-color: #ffeff4;
+				color: #ff457b;
 			}
 			.btn-bay{
-				background:linear-gradient(to right, #f28f31 0%, #e15616 100%);
+				background:$btn-confirm;
 				border-radius: 0 42rpx 42rpx 0;
 			}
 			.btn-bay.disabled{
-				background: linear-gradient(135deg,rgba(242,143,49,0.5) 0%,rgba(225,86,22,0.5) 100%);
+				background:$btn-confirm;
+				color: ffffff;
+				opacity: 0.2;
 			}
 		}
 	}
@@ -1463,7 +1322,7 @@
 	}
 	.product-topnav{
 		width: 100%;
-		height: 174rpx;
+		height: 60rpx;
 		box-sizing: border-box;
 		background: #FFFFFF;
 		z-index: 1000;
@@ -1511,50 +1370,6 @@
 				}
 			}
 		}
-		.search-input{
-			width: 100%;
-			height: 114rpx;
-			padding:24rpx;
-			box-sizing: border-box;
-			.gosearch-btn{
-				width: 100%;
-				height: 100%;
-				border-radius: 40rpx;
-				margin: 0 auto;
-				font-size: 26rpx;
-				line-height: 66rpx;
-				color: #B2B2B2;
-				position: relative;
-				box-sizing: border-box;
-				padding-left: 66rpx;
-				&.fixed{
-					background: rgba(70,70,70,0.1);
-				}
-				&.none{
-					background: rgba(70,70,70,0.1);
-				}
-				.search-icon{
-					width: 66rpx;
-					height: 66rpx;
-					position:absolute ;
-					left: 0;
-					top: 2rpx;
-					text-align: center;
-					line-height: 66rpx;
-					.icon-iconfonticonfontsousuo1{
-						margin:0 6rpx;
-						font-size: $font-size-34;
-						color: #B2B2B2;
-						z-index: 10;
-					}
-				}
-				.search-text{
-					font-size: $font-size-24;
-					line-height: 66rpx;
-					color: #B2B2B2;
-				}
-			}
-		}
 	}
 	
 	@keyframes showFixedColor {

+ 0 - 1
pages/goods/search.vue

@@ -742,7 +742,6 @@
 			.product-pric{
 				width: 100%;
 				height: 44rpx;
-				float: left;
 				position: absolute;
 				bottom: -10rpx;
 				left: 0;

+ 1479 - 1479
pages/tabBar/cart/index.vue

@@ -1,1480 +1,1480 @@
-<template>
-	<view class="container cart clearfix" v-if="!hasLogin"> 	
-		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
-		<view class="container-cart-main tui-skeleton" :style="{paddingTop:isshowDelbtn ? '0rpx':'80rpx'}">
-			<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length>0">
-				<view class="foot-text">共<text>{{kindCount}}</text>件商品</view>
-				<view class="delBtn" @tap.stop="showDelManager">删除</view>
-			</view>
-			<view v-if="!isEmpty" class="container-cart"> 
-				<view class="cart-content" :style="{paddingBottom :isIphoneX ? '130rpx' : '100rpx'}">
-					<view class="goods-list">
-						<view v-for="(item, index) in goodsList" :key="index" class="goods-item clearfix">
-							<view class="shoptitle">
-								<!--选择商店的全部商品"-->
-								<view class="checkbox-box" @click.stop="checkShop(item)">
-									<view class="checkbox iconfont" :class="[item.checked ?'icon-xuanze':'icon-weixuanze']"></view>
-								</view>
-								<view class="text">{{item.name}}</view> 
-							</view>
-							<view class="productlist">
-								<view 	class="goods-pros" v-for="(pros,idx) in item.productsList" :key="idx" >
-									<view class="goods-pros-t">
-										<!--选择商品-->
-										<view class="checkbox-box" @click.stop="ischeck(item,pros)">
-											<view class="checkbox iconfont" :class="[pros.productsChecked ? 'icon-xuanze':'icon-weixuanze']"></view>
-										</view>
-										<view class="pros-img" @click.stop="navToListPage(pros.productId)"	><image :src="pros.image ? pros.image:''" alt="" /></view>
-										<view class="pros-product">
-											<view class="producttitle" @click.stop="navToListPage(pros.productId)"	>{{pros.name}}</view>
-											<view class="productspec">规格:{{pros.unit ? pros.unit : ''}}</view>
-											<view class="floor-item-act"><view class="tag" @click.stop="clickPopupShow(pros,2)">活动价</view></view>
-											<view class="productprice">
-												<!--使用过滤器对总价改变-->
-												<view class="price"><text>¥</text>{{ pros.price  | NumFormat }}</view>
-												<view class="count" v-if="pros.validFlag == 2 "  :class="[isshowDelbtn ? 'none':'show']">
-													<view class="number-box">
-														<view  class="iconfont icon-jianhao" @click="changeCountSub(item,pros)"></view>
-														<input class="btn-input" type="number" maxlength='4' v-model="pros.minBuyNumber" @blur="changeNnmber($event,item,pros)" @focus="changeInput(pros)">
-														<view  class="iconfont icon-jiahao"  @click="changeCountAdd(item,pros)"></view>
-													</view>
-												</view>
-											</view>
-										</view>	
-									</view>
-								</view>
-							</view>	
-							<view class="goods-pros-b clearfix" :class="[isshowDelbtn ? 'none':'show']" >
-								<view class="sum-none" v-if="item.reducedPrice>0">
-									<text class="money-sign">¥</text>
-									<text class="money">{{ item.totalOriginalPrice | NumFormat }}</text>
-									<text class="money-reduced">减<text>¥{{ item.reducedPrice | NumFormat}}</text></text>
-								</view>
-								<view class="sum">合计:<text class="money"><text class="money-sign">¥</text>{{item.totalPrice | NumFormat}}</text></view>
-							</view>
-						</view>
-					</view>	
-					<view class="failure-list" v-if="failureList.length>0">
-						<view class="failure-title">
-							<view class="title-txt">失效商品<text>{{failureList.length}}件</text></view>
-							<view class="title-btn" @click.stop="deletefailureList"><text class="butto">清空失效商品</text></view>
-						</view>
-						<view class="productlist">
-							<view class="goods-pros" v-for="(failure,failureIdx) in failureList" :key="failureIdx" >
-								<view class="goods-pros-t" @click.stop="failureToProduct(failure)">
-									<!--选择商品-->
-									<view class="checkbox-box" @click.stop="ischeckFailure(failure)" v-if="isshowDelbtn">
-										<button class="checkbox iconfont" 
-												:class="[ failure.productsChecked ? 'icon-xuanze':'icon-weixuanze']">
-										</button>
-									</view>
-									<text class="img-tip">失效</text>
-									<view class="pros-img">
-										<image :src="failure.image ? failure.image:''" alt="" />
-									</view>
-									<view class="pros-product">
-										<view class="producttitle">{{failure.name}}</view>
-										<view class="productspec">规格:{{failure.unit ? failure.unit : ''}}</view>
-										<view class="productstate">{{failureStateText(failure.status)}}</view>
-									</view>
-									<view class="pros-marks" v-if="failure.isFailureLayer"></view>
-								</view>
-							</view>
-						</view>	
-					</view>
-				</view>
-				<!-- 脚部菜单 -->
-				<view class="footer">
-					<view class="footer-le">
-						<view class="foot-check checkbox-box" @tap.stop="checkAll()">
-							<button class="checkbox iconfont" :class="[isCheckAll?'icon-xuanze':'icon-weixuanze']"></button> 
-							<view class="text">全选</view>
-						</view>
-	
-						<view class="sum">
-							<view class="sum-none"  v-if="reducedPrice>0">
-								<text class="money-sign">¥</text>
-								<text class="money">{{ totalOriginalPrice | NumFormat }}</text>
-								<text class="money-reduced">减<text>¥{{ reducedPrice | NumFormat}}</text></text>
-							</view>
-							<view class="sum-price" :class="reducedPrice == 0 ? 'none' : ''">
-								总价:<text class="money-sign">¥</text><text class="money">{{allPrice | NumFormat}}</text>
-							</view>
-						</view>
-					</view>
-					<view v-if="!isshowDelbtn" class="footer-ri" >
-						<view class="btn hanld-btn" @tap="toConfirmation">去结算({{allCount}})</view>
-					</view>
-					<view v-else class="footer-del">
-						<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>
-						<view class="btn btn-confirm" @tap.stop="deleteList">删除</view>
-					</view>
-				</view>
-			</view>
-			<view v-else class="cart-content empty">
-				<view  class="empty-container">
-					<image class="empty-container-image" :src="StaticUrl+'icon-empty-cart.png'" mode="aspectFit"></image>
-					<text class="error-text">购物车空空的,快去逛逛吧~</text>
-				</view>
-			</view>
-		</view>
-		<!-- 操作弹窗 -->
-		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
-		<!-- 促销活动弹窗 -->
-		<activi-popup :product="handlerPros" :popupShow="popupShow"></activi-popup>
-		<!-- 透明模态层 -->
-		<modal-layer v-if='modallayer'></modal-layer>
-	</view>
-</template>
-<script>
-	import authorize from '@/common/config/authorize.js'
-	import tuiSkeleton from "@/components/tui-skeleton/tui-skeleton"
-	import tuiLoadmore from "@/components/tui-components/loadmore/loadmore"
-	import tuiNomore from "@/components/tui-components/nomore/nomore"
-	import activiPopup from "@/components/cm-module/productDetails/cm-activipopu"
-	import modalLayer from "@/components/modal-layer"
-	import { mapState,mapMutations } from 'vuex';
-	import { cartList } from '@/common/json/data.json.js' //本地数据
-	
-	export default{
-		components:{
-			tuiSkeleton,
-			tuiLoadmore,
-			tuiNomore,
-			activiPopup,
-			modalLayer
-		},
-		data(){
-			return{
-				StaticUrl:this.$Static,
-				CustomBar:this.CustomBar,// 顶部导航栏高度
-				isIphoneX:this.$store.state.isIphoneX,
-				userID:'',
-				alertType:'',
-				isStock:'',
-				popupShow:false,
-				handlerPros:{},//监听单挑促销商品
-				failureList:[],	//失效商品列表
-				goodsList:cartList,	//购物车的商品
-				promotionsList:[],//促销列表
-				delGoodsList:'',//要删除的商品
-				setGoodData:'', //确认订单的商品
-				isCheckAll:false,//是否全选
-				kindCount:0,//购物车宝贝数量
-				allPrice:0,//所有价格
-				totalOriginalPrice:0,//所有原价价
-				reducedPrice:0,//满减
-				allCount:0,//被选中的产品数量
-				isModallayer:false,
-				skeletonShow:false,
-				isshowDelbtn:false,
-				isDisabled: false, // 供应商/店铺全选是否禁用状态
-				isNoConfim:false,
-				isEmpty:false,//显示空购物车
-				scrollHeight: 'auto',
-				nomoreText: '上拉显示更多',
-				hasNextPage: false,
-				loadding: false,
-				pullUpOn: true,
-				pullFlag: true,
-				pageSize: 10,
-				pageNum: 1,
-				submitIds:[],
-				modal:false,
-				contentModalText:'',
-				deleteType:0,
-				
-			}
-		},
-		onLoad(){
-			this.setScrollHeight();
-			console.log(this.goodsList)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo'])
-		},
-		filters:{
-			NumFormat(value) {//处理金额
-				return Number(value).toFixed(2);
-			},
-		    totalprice(val,count){//单件商品的价格 × 数量
-		        return (val * count).toFixed(2)
-		    }
-		},	
-		methods:{
-			initData(){
-				this.isModallayer = false //遮罩层 防止多次点击
-				// this.skeletonShow = true //预加载圆圈
-				this.isCheckAll=false//是否全选
-				this.submitIds = []
-				this.$api.getStorage().then((resolve) => {
-					this.userID = resolve.userId;
-					this.initGetCartGoodsList();
-				})	
-			},
-			initLogin(){
-				authorize.checkLogin()
-				.then(res => {
-					this.$api.redirectTo('/pages/login/login?type=4')
-				})
-				.catch(err =>{
-					this.$api.navigateTo('/pages/authorization/authorization?type=0')
-				})
-			},
-			clickPopupShow(pros,type){
-				this.popupShow = true;
-				this.handlerPros = pros;
-			},
-			setScrollHeight() {
-				// 窗口高度-footer高度
-				const {windowHeight, pixelRatio} = uni.getSystemInfoSync();
-				setTimeout(()=> {
-					const query = uni.createSelectorQuery().in(this);
-					query.selectAll('.footer').boundingClientRect();
-					query.exec(res => {
-						this.windowHeight = windowHeight;
-						if(res[0][0]) {
-							this.scrollHeight = windowHeight - res[0][0].height;
-						}
-					})
-				}, 500)
-			},
-			initGetCartGoodsList(){//初始化购物车 index:1
-				this.ProductService.QueryShoppingCartList({userId:this.userID}).then(response =>{
-					this.skeletonShow = false
-					let data = response.data
-					this.kindCount = data.kindCount
-					this.promotionsList = data.promotions
-					this.$store.commit('updateAllNum',data.kindCount)
-					if( data.list.length > 0 || data.invalid.length > 0){
-						this.isEmpty =false
-					}else{
-						this.isEmpty =true
-					}
-					if(data.list && data.list.length > 0 ){
-						this.goodsList = data.list;
-						this.totalShopPeice()
-					} else {
-						this.goodsList = [];
-					}
-					if( data.invalid && data.invalid.length > 0){
-						let newFailureList = [],isFailureLayer;
-						data.invalid.forEach((failure,index) => {
-							if(failure.status == 1 || failure.status == 2) {
-								isFailureLayer = true
-							}else{
-								isFailureLayer = false
-							}
-							newFailureList.push(Object.assign({},failure,{isFailureLayer:isFailureLayer}))
-						})
-						this.failureList = newFailureList
-					} else {
-						this.failureList = [];
-					}
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000);
-				})
-			},		
-			ischeckFailure(failure){
-				failure.productsChecked = !failure.productsChecked
-				this.updateCheckAllBtn()
-			},
-			ischeck(item,pro){//为未选中的时候改变为true,反之为true
-				pro.productsChecked = !pro.productsChecked;
-				if(pro.productsChecked) {
-					if(!this.submitIds.includes(pro.productID*1)){
-						this.submitIds.push(pro.productID);
-					}
-				} else {
-					var lent = this.submitIds.indexOf(pro.productID*1);
-					if(lent >=0 ){
-						this.submitIds.splice(lent, 1);
-					}
-				}
-				this.updateProductCheckedAllBtn(item);
-				this.updateCheckAllBtn();
-				
-			},
-			updateProductCheckedAllBtn(item) {// 单独每个供应商的勾选判断
-				let productsList = item.productsList,
-					productsCheckedLength = 0,
-					disabledLength = 0;
-				if(this.isshowDelbtn) {
-					productsList.forEach(pros => {
-						if(pros.productsChecked) {
-							productsCheckedLength++;
-						}
-					})
-				} else {
-					productsList.forEach(pros => {
-						if(pros.productsChecked) {
-							productsCheckedLength++;
-						}
-					})
-				}
-				item.checked = productsCheckedLength === productsList.length;
-			},
-			updateCheckAllBtn() {// 全选勾选判断
-				let goodsCheckedLength = 0,
-					goodsList = this.goodsList,
-					failureList = this.failureList;
-				goodsList.forEach(item => {
-					if(item.checked) {
-						goodsCheckedLength++;
-					}
-				})
-				failureList.forEach(failureItem=>{
-					if(failureItem.productsChecked){
-						goodsCheckedLength++;
-					}
-				})
-				if(this.isshowDelbtn){
-					this.isCheckAll = goodsCheckedLength === goodsList.length + failureList.length;
-				}else{
-					this.isCheckAll = goodsCheckedLength === goodsList.length;
-				}
-			},
-			checkShop(item){//与单选商品类似
-				item.checked = !item.checked;
-				this.setProductChecked(item);
-				this.updateCheckAllBtn();
-			},
-			setProductChecked(item) {
-				item.productsList.forEach(pros=>{
-					if(item.checked) {
-						pros.productsChecked = true;
-						if(!this.submitIds.includes(pros.productId*1)){
-							this.submitIds.push(pros.productId);
-						}
-					} else {
-						pros.productsChecked = false;
-						var lent = this.submitIds.indexOf(pros.productId*1);
-						if(lent >=0 ){
-							this.submitIds.splice(lent, 1);
-						}
-					}
-				})
-			},
-			updateBothCheckBtn() {
-				if(this.isshowDelbtn) {
-					// 当管理删除按钮出现时,失效的商品可被选择
-					this.goodsList.forEach((item)=>{
-						item.checked = this.isCheckAll;
-						this.setProductChecked(item);
-					})
-					//删除按钮 全选包括失效商品勾选
-					this.failureList.forEach(failureItem=>{
-						failureItem.productsChecked = this.isCheckAll;
-					})
-				} else {
-					this.goodsList.forEach((item)=>{
-						item.checked = this.isCheckAll && !item.isDisabled;
-						this.setProductChecked(item);
-					})
-				}
-			},
-			checkAll(){//全选方法内调用方法
-			    this.isCheckAll = !this.isCheckAll;
-				this.updateBothCheckBtn();     
-			},
-			totalShopPeice(){//每次所属会所下的商品增减重新计算合计价格&减去含有下架的商品
-				let touchPrice = 0;
-				let reducedPrice = 0;//商铺合计满减价
-				this.goodsList.map((item,index)=>{
-					let _totalPrice = 0;
-					let _reducedPrice = 0;
-					let _totalOriginalPrice =0;
-					item.productList.forEach(pros=>{
-						let _price = pros.retailPrice*pros.productCount
-						_totalOriginalPrice += pros.retailPrice*pros.productCount;
-						if(pros.promotion && pros.promotion.type != 2 && pros.promotion.mode == 2){
-							if(_price >= pros.promotion.touchPrice){
-								_price = _price - pros.promotion.reducedPrice
-								_reducedPrice += pros.promotion.reducedPrice
-							}
-							_totalPrice +=  _price
-						}else{
-							_reducedPrice = 0;
-							_totalPrice += pros.retailPrice*pros.productCount;
-						}
-					})
-					item.reducedPrice = _reducedPrice
-					item.totalOriginalPrice = _totalOriginalPrice
-					item.totalPrice = _totalPrice
-				})
-			},
-			totalPeice(){//计算总价格,每次调用此方法,将初始值为0,遍历价格并累加
-				let totalPrice = 0;
-				let reducedPrice = 0;
-				let originalPrice = 0;
-				this.goodsList.forEach((item,index)=>{
-					let supplierPrice = 0;
-					let supplierReducedPrice = 0;
-					item.totalprice = 0;
-					item.reducedprice = 0;
-					item.originalprice = 0;
-					item.productList.forEach(pros=>{	
-						if(pros.productsChecked){								
-							supplierPrice += pros.retailPrice*pros.productCount;
-							// 单品满减
-							if(pros.promotion && pros.promotion.type*1===1 && pros.promotion.mode*1===2){
-								// 单品满减-重新计算供应商总价/满减金额
-								if(pros.retailPrice*pros.productCount >= pros.promotion.touchPrice){
-									supplierPrice -= pros.promotion.reducedPrice;
-									supplierReducedPrice += pros.promotion.reducedPrice;
-								}
-							}
-						}	
-					})
-					item.totalprice = supplierPrice;
-					item.reducedprice = supplierReducedPrice;
-					item.originalprice = (supplierPrice+supplierReducedPrice);
-					totalPrice += item.totalprice;
-					reducedPrice += item.reducedprice;
-					originalPrice += item.originalprice;
-				})
-				//最后统计商品原价
-				this.totalOriginalPrice = originalPrice;
-				//最后满减金额 = 店铺减去金额 + 单品减去金额 + 凑单减去金额
-				this.reducedPrice = reducedPrice;
-				//最终合计价格 = 	店铺满减合计 + 单品满减  + 正常合计 + 凑单满减			
-				this.allPrice = totalPrice ;
-			},
-			totalCount(){//计算总数量
-			    this.allCount = 0
-				let prosAllCount=0
-				let validCount = 0
-				let validList =[];
-				let productsList =[];
-			    this.goodsList.forEach(item=>{
-					productsList = item.productList
-					productsList.forEach(pros=>{
-						if(pros.productsChecked){
-							prosAllCount+=parseInt(pros.productCount);
-							this.allCount = prosAllCount
-						}
-					})
-			    })
-			},		
-			changeCountAdd(item,pros){//商品数量加加
-				if(pros.step === 2){
-					pros.isStep = false
-					pros.number += pros.min
-					this.processActivityPrice(pros)
-					this.isStock = false
-				}else{
-					pros.number++
-					this.processActivityPrice(pros)
-					this.isStock = false
-				}
-				this.updateShoppogNum(pros)
-				this.totalShopPeice();
-			},
-			changeCountSub(item,pros){//商品数量减减
-				if(pros.number<=pros.min){
-					pros.number= pros.min
-					this.$util.msg(`该商品最小起订量为${pros.min}`,2000);
-					return
-				}else{
-					if(pros.step === 2){
-						pros.isStep = false
-						pros.number -= pros.min
-					}else{
-						pros.number--
-					}
-					this.processActivityPrice(pros)
-				}
-				this.updateShoppogNum(pros)
-				this.totalShopPeice();
-			},
-			changeInput(pros){//输入商品数量更新
-				pros.isStep = false
-			},
-			changeNnmber(e,item,pros){//输入商品数量更新
-				let _value = Number(e.detail.value);
-				if(!this.$api.isNumber(_value)){
-					pros.number = pros.min
-				}else if(_value < pros.min){	
-					this.$util.msg(`该商品最小起订量为${pros.min}`,2000);
-					pros.number = pros.min
-				}else if(_value % pros.min != 0){
-					pros.isStep = true
-					pros.number = pros.min
-				}else{
-					pros.isStep = false
-					pros.number = e.detail.value
-					this.processActivityPrice(pros)
-				}
-				this.updateShoppogNum(pros)
-				this.totalShopPeice();
-			},
-			processActivityPrice(pros){//单独处理活动价格和阶梯价格
-				let ladderPriceList = pros.ladderPrices;
-				if(pros.ladderFlag == '0' || pros.actStatus == 1){
-					pros.price = pros.price
-				}else{
-					ladderPriceList.forEach((item,index)=>{
-						if(pros.number>=item.buyNum){
-							pros.price = item.buyPrice
-						}
-					})
-				}
-			},
-			updateShoppogNum(pros){//加减购物车商品更新到后台
-				let params ={userID:this.userID,productID:pros.productId,productCount:pros.number}
-				this.ProductService.ShoppingCartUpdate(params).then(response =>{
-					this.isshowDelbtn = false;
-					this.initGetCartGoodsList();
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000);
-				})
-			 },
-			toConfirmation(){//跳转确认订单页面
-				let setGoodsList=[];
-				this.goodsList.forEach(res=>{
-					let products = res.productsList
-					products.forEach(pros=>{
-						if(pros.productsChecked){
-						    setGoodsList.push(pros.productId)
-						}
-					})
-				})
-				if(setGoodsList == ''){
-					this.$util.msg("请先选择结算商品~",2000);
-					return
-				}else{
-					this.isNoConfim = false
-					this.goodsList.forEach(el=>{
-						el.productsList.forEach(pros=>{
-							if(pros.productsChecked){
-							   if(pros.number<pros.min){
-								   this.isNoConfim = true
-							   }
-							}
-						})
-					})
-					if(this.isNoConfim){
-						this.$util.modal('','有商品的购买量没达到最小起订量,请修改数量后再次提交结算','去修改','',false,() =>{})
-						return;
-					}
-					let productID = '';
-					this.goodsList.forEach(el=>{//获取勾选的商品ID拼接字符串逗号隔开,最后一个逗号去掉
-						el.productsList.forEach(pros=>{
-							if(pros.productsChecked){
-							   productID += pros.productId+','
-							}
-						})
-					})
-					let cartPramsData={
-							allPrice:this.allPrice,
-							allCount:this.allCount,
-							productID:productID.substring(0,productID.lastIndexOf(',')),
-							productCount:''
-						}
-					this.$api.navigateTo(`/pages/user/order/create-order?data=${JSON.stringify({data:cartPramsData})}`)
-				}
-			},
-			showDelManager(){//显示删除商品管理
-				this.isshowDelbtn = true;
-				if(this.isCheckAll) {
-					this.updateBothCheckBtn();	
-				} else {
-					this.goodsList.forEach(item => {
-						if(item.checked) {
-							item.productsList.forEach(pros => {
-								pros.productsChecked = true;
-							})
-						}
-					})
-					this.updateCheckAllBtn();
-				}
-				// 失效也被勾选
-				this.failureList.forEach(failureItem => {
-					if(failureItem.isFailureLayer){
-						failureItem.isFailureLayer = false
-					}
-				})
-			},
-			hideDelManage(){//隐藏删除商品管理			
-				this.isshowDelbtn = false;
-				let isFailureLayer,newFailureList =[];
-				if(this.isCheckAll) {
-					this.updateBothCheckBtn();	
-				} else {
-					// 失效商品取消勾选
-					this.goodsList.forEach(item => {
-						if(item.isDisabled) {
-							item.checked = false;
-						}
-						item.productsList.forEach(pros => {
-							if(pros.validFlag == 3) {
-								pros.productsChecked = false;
-							}
-						})
-					})
-					this.updateCheckAllBtn();
-				}
-				this.failureList.forEach((failure,index) => {
-					if(failure.failureState == 1 || failure.failureState == 2) {
-						isFailureLayer = true
-					}else{
-						isFailureLayer = false
-					}
-					newFailureList.push(Object.assign({},failure,{isFailureLayer:isFailureLayer}))
-				})
-				this.failureList = newFailureList;
-			},		
-			deleteList(){//删除购物车商品
-				this.delGoodsList=[];
-				this.goodsList.forEach(delitem=>{
-					let products = delitem.productsList
-					products.forEach(pros=>{
-						if(pros.productsChecked){
-						    this.delGoodsList += pros.cartId+','
-						}
-					})
-				})
-				// this.failureList.forEach(failure=>{
-				// 	if(failure.productsChecked){
-				// 		this.delGoodsList += failure.cartId+','
-				// 	}
-				// })
-				if(this.delGoodsList.length == 0){
-					this.$util.msg("请选择要删除的商品~",2000);
-					return
-				}else{			
-					this.modal = true;
-					this.contentModalText = '确定删除选中的商品吗?';	
-					this.deleteType = 1
-				}
-			},
-			deletefailureList(){
-				this.delGoodsList = ''
-				this.failureList.forEach(failure=>{ this.delGoodsList += failure.cartId+',' })
-				this.modal = true;
-				this.contentModalText = '确定清除所有失效商品吗?';	
-				this.deleteType = 2
-			},
-			handleClick(e) {//用户操作订单
-				let index = e.index;
-				if(index == 1){
-					this.ProductService.ShoppingCartDelete(
-						{
-							cartIds:this.delGoodsList,
-						}
-					)
-					.then(response =>{
-						this.$util.msg('删除成功',2000);
-						setTimeout(()=>{
-							this.isshowDelbtn = false;
-							this.initGetCartGoodsList();
-						},1000)
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
-				}
-				this.modal = false;
-			},
-			hideMobel(){
-				this.modal = false;
-			},
-			goIndex(){
-				uni.switchTab({
-				    url: '/pages/tabBar/home/index'
-				});
-			},
-			goNavto(url){
-				uni.navigateTo ({
-					url
-				})
-			},
-			navToListPage(id){
-				this.isModallayer = true;
-				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
-			},
-			failureToProduct(failure){
-				if(failure.status == 1){
-					this.$util.msg('商品已丢失,不能查看',2000)
-					return
-				}else if(failure.status == 2){
-					this.$util.msg('商品已停售,不能查看',2000)
-					return
-				}else{
-					this.isModallayer = true;
-					this.$api.navigateTo(`/pages/goods/product?id=${failure.productId}`)
-				}
-			},
-			failureStateText(state){
-				let stateText = '',
-					stateTextObject={
-						1:'商品已丢失',
-						2:'商品已停售',
-						3:'商品已下架',
-						4:'商品已售罄',
-						5:'价格仅会员可见,您不能购买',
-						6:'未公开价格',
-						7:'库存不足'
-					}
-				Object.keys(stateTextObject).forEach(key => {
-					if(key == state){
-						stateText = stateTextObject[key]
-					}
-				})
-				return stateText;
-			},
-			setHeaderBtnPosi(){
-				// 获得胶囊按钮位置信息
-				let headerBtnPosi = uni.getMenuButtonBoundingClientRect();
-				return headerBtnPosi
-			},
-			setSysteminfo(){
-				let systeminfo;
-				uni.getSystemInfo({ // 获取设备信息
-					success: (res) => {
-						systeminfo = res
-					},
-				})
-				return systeminfo
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
-				}
-				return false
-			}
-		},
-		watch:{//深度监听所有数据,每次改变重新计算总价和总数
-		    goodsList:{
-		        deep:true,
-		        handler(val,oldval){
-		            this.totalPeice()
-		            this.totalCount()
-		        }
-		    }
-		},
-		onPullDownRefresh() {//下拉刷新
-			this.initGetCartGoodsList()
-			uni.stopPullDownRefresh()
-		},
-		onShow(){
-			// if(this.hasLogin){
-			// 	this.initData()
-			// }else{
-			// 	this.initLogin()
-			// }
-		},
-	}
-</script>
-
-<style lang="scss">
-	page{
-		background: #f7f7f7;
-		height: auto;
-	}
-	.cart-content{
-		position: relative;
-	}
-	.container-cart-main.none{
-		display: none;
-	}
-	.container-cart-main.show{
-		display: block;
-	}
-	.cart-content.empty.none{
-		display: none;
-	}
-	.cart-content.empty.show{
-		display: block;
-	}
-	.container-cart.show{
-		display: block;
-	}
-	.container-cart.none{
-		display: none;
-	}
-	.empty-container.none{
-		display: none;
-	}
-	.empty-container.show{
-		display: flex;
-	}
-	.foot-check-delbtn{
-		width: 100%;
-		height: 80rpx;
-		position: fixed;
-		top: 0;
-		left: 0;
-		box-sizing: border-box;
-		padding: 15rpx 24rpx;
-		background-color: #F7F7F7;
-		z-index: 990;
-		.foot-text{
-			font-size: $font-size-26;
-			height: 50rpx;
-			line-height: 50rpx;
-			color:#666666;
-			float: left;
-			padding-left: 10rpx;
-			text{
-				margin: 0 6rpx;
-			}
-		}
-		.delBtn{
-			width: 100rpx;
-			display: inline-block;
-			padding: 0 15rpx;
-			font-size: $font-size-26;
-			height: 50rpx;
-			line-height: 50rpx;
-			border-radius: 30rpx;
-			background:#FFFFFF;
-			border: 1px solid #ff457b;
-			color: #ff457b;
-			float: right;
-			text-align: center;
-			&.none{
-				display: none;	
-			}
-		}
-	}
-	.checkbox-box{
-		display: flex;
-		align-items: center;
-		.checkbox{
-			display: flex;
-			margin: 0;
-			padding: 5rpx;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			box-sizing: border-box;
-			text-align: center;
-			text-decoration: none;
-			border-radius: 0;
-			-webkit-tap-highlight-color: transparent;
-			overflow: hidden;
-			background-color:#FFFFFF;
-			font-size: 36rpx;
-			color:#999999;
-			&.icon-xuanze{
-				color: $color-system;
-			}
-		}
-		&.disabled{
-			.checkbox{
-				color:#999999
-			}
-		}
-		.text{
-			font-size: $font-size-24;
-			margin-left: 10rpx;
-		}
-	}
-	.goods-list{
-		width: 100%;
-		height: auto;
-		background-color: #F7F7F7;
-		.goods-item{
-			width: 702rpx;
-			padding: 0 24rpx;
-			background: #FFFFFF;
-			margin-bottom: 24rpx;
-		}
-		.shoptitle{
-			display: flex;
-			align-items: center;
-			height: 80rpx;
-			line-height: 80rpx;
-			.checkbox-box{
-				padding: 10rpx;
-			}
-			.text{
-				width: 450rpx;
-				display: block;
-				overflow: hidden;
-				text-overflow:ellipsis;
-				white-space: nowrap;
-				margin-left: 20rpx;
-				font-size: $font-size-28;
-				color: $text-color;
-				text-align: left;
-				font-weight: bold;
-			}
-		}
-		.goods-pros{
-			width: 100%;
-			height: auto;
-			margin-bottom: 20rpx;
-		}	
-		.goods-pros-t{
-			display: flex;
-			align-items: center;
-			width: 100%;
-			height: 210rpx;
-			padding:0 0 26rpx 0;
-			.checkbox-box{
-				padding: 10rpx;
-			}
-			.pros-img{
-				width: 210rpx;
-				height: 100%;
-				border-radius: 10rpx;
-				margin:0 20rpx;
-				border:1px solid #f3f3f3;
-				image{
-					width: 100%;
-					height: 100%;
-					border-radius: 10rpx;
-				}
-			}
-		}
-		.goods-pros-b{
-			width:100%;
-			height: auto;
-			padding:0 0 24rpx 0;
-			box-sizing: border-box;
-			&.show{
-				display: block;
-			}
-			&.none{
-				display: none;
-			}
-			.sum-none{
-				width: 100%;
-				height: 48rpx;
-				line-height: 48rpx;
-				color: $text-color;
-				float: left;
-				text-align: right;
-				.money{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-sign{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-reduced{
-					margin-left: 10rpx;
-					font-size: $font-size-26;
-					color: $color-system;
-					.iconfont{
-						font-size: $font-size-34;
-					}
-				}
-			}
-			.sum{
-				width: 100%;
-				height: 40rpx;
-				font-size: $font-size-26;
-				line-height: 40rpx;
-				color: $text-color;
-				float: left;
-				display: flex;
-				justify-content: flex-end;
-				font-weight: bold;
-				.money{
-					color: $color-system;
-					font-size: $font-size-26;
-				}
-				.money-sign{
-					font-size: $font-size-24;
-					color: $color-system;
-				}
-			}
-		}
-		.pros-product{
-			width: 416rpx;
-			height: 100%;
-			line-height: 36rpx;
-			font-size: $font-size-28;	
-			position: relative;
-			.producttitle{
-				width: 100%;
-				display: inline-block;
-				height: auto;							
-				text-overflow:ellipsis;
-				display: -webkit-box;
-				word-break: break-all;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 2;
-				overflow: hidden;
-				margin-bottom: 15rpx;
-				.no-text{
-					display: inline-block;
-					height:36rpx;
-					padding: 0 12rpx;
-					line-height: 36rpx;
-					background:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
-					border-radius:18rpx;
-					text-align: center;
-					color: #FFFFFF;
-					font-size:$font-size-28;
-					margin-right: 24rpx;
-				}
-			}
-			.productspec{
-				height: 36rpx;
-				color: #999999;
-				font-size: $font-size-26;
-			}
-			.productprice{
-				width: 100%;
-				height: 48rpx;
-				margin: 30rpx 0 0 0;
-				.price{
-					line-height: 48rpx;
-					font-size: $font-size-26;
-					width: 48%;
-					color: $color-system;
-					float: left;
-					font-weight: bold;
-					&.disabled{
-						color: #999999;
-						text-decoration: line-through;
-					}
-					.money-sign{
-						font-size: $font-size-24;
-						color: $color-system;
-					}
-				}
-				.count{
-					height: 100%;
-					float: right;
-					position: relative;
-					&.show{
-						display: block;
-					}
-					&.none{
-						display: none;
-					}
-					.count-tips{
-						width: auto;
-						display: inline-block;
-						padding: 0 15rpx;
-						line-height: 44rpx;
-						height: 44rpx;
-						border-radius: 22rpx;
-						background: $btn-confirm;
-						font-size: $font-size-24;
-						text-align: center;
-						color: #FFFFFF;
-						position: absolute;
-						top:-60rpx;
-						left: -5rpx; 
-						z-index: 5;
-						&.step{
-							left:-217rpx
-						}
-						&::before{
-							content: "";
-							position: absolute;
-							bottom: -30rpx;
-							right: 15rpx;
-							z-index:1;
-							width: 0; 
-							height: 0;
-							border-width: 18rpx;
-							border-style: solid;
-							border-color:$color-system transparent transparent transparent;
-						}
-					}
-					.number-box {
-						display: flex;
-						justify-content: center;
-						align-items: center;
-						border: 2rpx solid #e1e1e1;
-						border-radius: 30rpx;
-						height: 48rpx;
-						margin-left: 20rpx;
-						.iconfont {
-							font-size: $font-size-24;
-							padding: 0 14rpx;
-							color: #666666;
-							text-align: center;
-							line-height: 48rpx;
-							font-weight: bold;
-							background: #ffffff;
-							&.icon-jianhao {
-								border-radius: 30rpx 0 0 30rpx;
-							}
-							&.icon-jiahao {
-								border-radius: 0 30rpx 30rpx 0;
-							}
-						}
-						.btn-input {
-							width: 56rpx;
-							height: 44rpx;
-							line-height: 44rpx;
-							border-radius: 4rpx;
-							text-align: center;
-							font-size: $font-size-24;
-							color: #333333;
-							background-color: #f7f7f7;
-						}
-					}
-					.uni-numbox{
-						position: absolute;
-						left: 45rpx;
-						bottom: 0;
-						.uni-numbox-minus, .uni-numbox-plus{
-							width: 50rpx;
-							line-height: 40rpx;
-						}
-						.uni-numbox-value {
-							font-size: $font-size-28;
-							width: 60rpx;
-						}
-					}
-				}
-			}
-			.floor-item-act{
-				width: 100%;
-				height: 30rpx;
-				margin-top: 8rpx;
-				float: left;
-				.tag{
-					display: inline-block;
-					width: 80rpx;
-					height: 30rpx;
-					background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
-					background-size: contain;
-					font-size: 22rpx;
-					line-height: 30rpx;
-					text-align: center;
-					color: #f83c6c;
-					float: left;
-				}
-			}
-		}
-	}
-	.failure-list{
-		width: 702rpx;
-		height: auto;
-		padding: 0 24rpx;
-		margin-top: 20rpx;
-		background: #FFFFFF;
-		.failure-title{
-			width: 100%;
-			height: 82rpx;
-			line-height: 82rpx;
-			font-size: $font-size-28;
-			border-bottom: 1px solid #EBEBEB;
-			.title-txt{
-				float: left;
-				color:#666666;
-				text-align: left;
-			}
-			.title-btn{
-				float: right;
-				color: $color-system;
-				text-align: right;
-				line-height: 80rpx;
-				.butto{
-					display: inline-block;
-					padding: 0 15rpx;
-					font-size: $font-size-26;
-					height: 50rpx;
-					line-height: 50rpx;
-					border-radius: 30rpx;
-					background:#fff8fd;
-					border: 1px solid #ff457b;
-					color: #ff457b;
-					margin-top: 15rpx;
-				}
-			}
-		}
-		.productlist{
-			padding-top: 10rpx;
-			.goods-pros{
-				width: 100%;
-				height: auto;
-				padding: 20rpx 0;
-			}	
-			.goods-pros-t{
-				display: flex;
-				align-items: center;
-				width: 100%;
-				height: 210rpx;
-				position: relative;
-				.img-tip{
-					display: block;
-					width: 72rpx;
-					height: 36rpx;
-					line-height: 36rpx;
-					font-size: $font-size-24;
-					text-align: center;
-					color: #FFFFFF;
-					border-radius: 24rpx;
-					background:rgba(51,51,51,0.3);
-					// position: absolute;
-					// left: 0;
-					// top: 0;
-				}
-				.checkbox-box{
-					padding: 10rpx;
-				}
-				.pros-img{
-					width: 180rpx;
-					height: 100%;
-					border-radius: 10rpx;
-					margin:0 20rpx;
-					border:1px solid #f3f3f3;
-					position: relative;
-					image{
-						width: 100%;
-						height: 100%;
-						border-radius: 10rpx;
-					}
-				}
-				.pros-marks{
-					width: 730rpx;
					height: 250rpx;
-					z-index: 90;
-					background: rgba(0,0,0,.05);
-					position: absolute;
-					left:-20rpx;
-					top: -20rpx;
-				}
-			}
-			.goods-pros-b{
-				width:622rpx;
-				margin-left: 84rpx;
-				height: 40rpx;
-				padding:0 0 26rpx 0;
-				// border-top: 1px solid #EBEBEB;
-				&.show{
-					display: block;
-				}
-				&.none{
-					display: none;
-				}
-				.sum{
-					font-size: $font-size-28;
-					line-height: 40rpx;
-					color: $text-color;
-					display: flex;
-					justify-content: flex-end;
-					.money{
-						color: #FF2A2A;
-						font-size: $font-size-28;
-					}
-					.money-sign{
-						font-size: $font-size-24;
-						color: #FF2A2A;
-					}
-				}
-			}
-			.pros-product{
-				width: 402rpx;
-				height: 100%;
-				line-height: 36rpx;
-				font-size: $font-size-28;	
-				position: relative;
-				.producttitle{
-					width: 100%;
-					display: inline-block;
-					height: auto;							
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					margin-bottom: 8rpx;
-					.no-text{
-						display: inline-block;
-						height:36rpx;
-						padding: 0 12rpx;
-						line-height: 36rpx;
-						background:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
-						border-radius:18rpx;
-						text-align: center;
-						color: #FFFFFF;
-						font-size: $font-size-28;
-						margin-right: 24rpx;
-					}
-				}
-				.productspec{
-					height: 36rpx;
-					color: #999999;
-					font-size: $font-size-26;
-					margin-top: 20rpx;
-				}
-				.productstate{
-					font-size: $font-size-28;
-					height: 44rpx;
-					color: #FF2A2A;
-					position: absolute;
-					bottom: 0;
-					left: 0;
-				}
-			}
-		}
-	}
-	.footer{
-		width: 100%;
-		background-color: #FFFFFF;
-		height: 100rpx;
-		position: fixed;
-		bottom: 0rpx;
-		z-index: 100;
-		.footer-le{
-			width: 520rpx;
-			height: 100%;
-			padding:10rpx 24rpx;
-			float: left;
-			box-sizing: border-box;
-			.foot-check{
-				width: 100rpx;
-				float: left;
-				line-height: 80rpx;
-				font-size: $font-size-24;
-				.checkbox{
-					width: 40rpx;
-					text-align: center;
-				}
-				.text{
-					width: 60rpx;
-					float: right;
-				}
-			}
-			.sum{
-				width: 360rpx;
-				height: 100%;
-				float: right;
-				box-sizing: border-box;
-				padding:0 10rpx;
-				.sum-none{
-					width: 100%;
-					height: 40rpx;
-					line-height: 40rpx;
-					color: $text-color;
-					float: left;
-					text-align: right;
-					.money{
-						font-size: $font-size-24;
-						color: #999999;
-						text-decoration: line-through;
-					}
-					.money-sign{
-						font-size: $font-size-24;
-						color: #999999;
-						text-decoration: line-through;
-					}
-					.money-reduced{
-						margin-left: 10rpx;
-						font-size: $font-size-24;
-						color: $color-system;
-					}
-				}
-				.sum-price{
-					text-align: right;
-					width: 100%;
-					height: 40rpx;
-					line-height: 40rpx;
-					font-size: $font-size-30;
-					color: $text-color;
-					float: left;
-					font-weight: normal;
-					&.none{
-						height: 80rpx;
-						line-height: 80rpx;
-					}
-					.money{
-						color: $color-system;
-					}
-					.money-sign{
-						font-size: $font-size-24;
-						color: $color-system;
-					}
-				}
-			}
-		}
-		.footer-ri{
-			width: 230rpx;
-			height: 100%;
-			float: right;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			z-index: 999;
-			box-sizing: border-box;
-			padding: 13rpx 15rpx;
-			&.none{
-				display: none;
-			}
-			.btn{
-				width: 200rpx;
-				height: 100%;
-				background:$btn-confirm;
-				font-size: $font-size-28;
-				line-height: 80rpx;
-				color: #FFFFFF;
-				display: flex;
-				border-radius: 40rpx;
-				justify-content: center;
-				align-items: center;
-			}
-		}
-		.footer-del{
-			width: 420rpx;
-			height: 100rpx;
-			position: absolute;
-			padding-left: 200rpx;
-			background: #FFFFFF;
-			right: 0;
-			top: 0;
-			z-index: 1000;
-			box-sizing: border-box;
-			padding: 10rpx 0;
-			display: flex;
-			&.show{
-				animation: showDelbtn 0s linear both;
-			}
-			&.none{
-				animation: hideDelbtn 0s linear both;
-			}
-			.btn{
-				flex: 1;
-				margin: 0 8rpx;
-				height: 100%;
-				line-height: 80rpx;
-				font-size: $font-size-28;
-				color: #FFFFFF;
-				text-align: center;
-				float: left;
-				border-radius: 40rpx;
-			}
-			.btn.btn-cancel{
-				background:#f7f7f7;
-				color: #B2B2B2;
-			}
-			.btn.btn-confirm{
-				background:$btn-confirm;
-				color: #FFFFFF;
-			}
-			@keyframes showDelbtn {
-				0% {
-					transform: translateX(0);
-				}
-				100% {
-					transform: translateX(-100%);
-				}
-			}
-			@keyframes hideDelbtn {
-				0% {
-					transform: translateX(-100%);
-				}
-				100% {
-					transform: translateX(0);
-				}
-			}
-		}
-	}
+<template>
+	<view class="container cart clearfix" v-if="!hasLogin"> 	
+		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
+		<view class="container-cart-main tui-skeleton" :style="{paddingTop:isshowDelbtn ? '0rpx':'80rpx'}">
+			<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length>0">
+				<view class="foot-text">共<text>{{kindCount}}</text>件商品</view>
+				<view class="delBtn" @tap.stop="showDelManager">删除</view>
+			</view>
+			<view v-if="!isEmpty" class="container-cart"> 
+				<view class="cart-content" :style="{paddingBottom :isIphoneX ? '130rpx' : '100rpx'}">
+					<view class="goods-list">
+						<view v-for="(item, index) in goodsList" :key="index" class="goods-item clearfix">
+							<view class="shoptitle">
+								<!--选择商店的全部商品"-->
+								<view class="checkbox-box" @click.stop="checkShop(item)">
+									<view class="checkbox iconfont" :class="[item.checked ?'icon-xuanze':'icon-weixuanze']"></view>
+								</view>
+								<view class="text">{{item.name}}</view> 
+							</view>
+							<view class="productlist">
+								<view 	class="goods-pros" v-for="(pros,idx) in item.productsList" :key="idx" >
+									<view class="goods-pros-t">
+										<!--选择商品-->
+										<view class="checkbox-box" @click.stop="ischeck(item,pros)">
+											<view class="checkbox iconfont" :class="[pros.productsChecked ? 'icon-xuanze':'icon-weixuanze']"></view>
+										</view>
+										<view class="pros-img" @click.stop="navToListPage(pros.productId)"	><image :src="pros.image ? pros.image:''" alt="" /></view>
+										<view class="pros-product">
+											<view class="producttitle" @click.stop="navToListPage(pros.productId)"	>{{pros.name}}</view>
+											<view class="productspec">规格:{{pros.unit ? pros.unit : ''}}</view>
+											<view class="floor-item-act"><view class="tag" @click.stop="clickPopupShow(pros,2)">活动价</view></view>
+											<view class="productprice">
+												<!--使用过滤器对总价改变-->
+												<view class="price"><text>¥</text>{{ pros.price  | NumFormat }}</view>
+												<view class="count" v-if="pros.validFlag == 2 "  :class="[isshowDelbtn ? 'none':'show']">
+													<view class="number-box">
+														<view  class="iconfont icon-jianhao" @click="changeCountSub(item,pros)"></view>
+														<input class="btn-input" type="number" maxlength='4' v-model="pros.minBuyNumber" @blur="changeNnmber($event,item,pros)" @focus="changeInput(pros)">
+														<view  class="iconfont icon-jiahao"  @click="changeCountAdd(item,pros)"></view>
+													</view>
+												</view>
+											</view>
+										</view>	
+									</view>
+								</view>
+							</view>	
+							<view class="goods-pros-b clearfix" :class="[isshowDelbtn ? 'none':'show']" >
+								<view class="sum-none" v-if="item.reducedPrice>0">
+									<text class="money-sign">¥</text>
+									<text class="money">{{ item.totalOriginalPrice | NumFormat }}</text>
+									<text class="money-reduced">减<text>¥{{ item.reducedPrice | NumFormat}}</text></text>
+								</view>
+								<view class="sum">合计:<text class="money"><text class="money-sign">¥</text>{{item.totalPrice | NumFormat}}</text></view>
+							</view>
+						</view>
+					</view>	
+					<view class="failure-list" v-if="failureList.length>0">
+						<view class="failure-title">
+							<view class="title-txt">失效商品<text>{{failureList.length}}件</text></view>
+							<view class="title-btn" @click.stop="deletefailureList"><text class="butto">清空失效商品</text></view>
+						</view>
+						<view class="productlist">
+							<view class="goods-pros" v-for="(failure,failureIdx) in failureList" :key="failureIdx" >
+								<view class="goods-pros-t" @click.stop="failureToProduct(failure)">
+									<!--选择商品-->
+									<view class="checkbox-box" @click.stop="ischeckFailure(failure)" v-if="isshowDelbtn">
+										<button class="checkbox iconfont" 
+												:class="[ failure.productsChecked ? 'icon-xuanze':'icon-weixuanze']">
+										</button>
+									</view>
+									<text class="img-tip">失效</text>
+									<view class="pros-img">
+										<image :src="failure.image ? failure.image:''" alt="" />
+									</view>
+									<view class="pros-product">
+										<view class="producttitle">{{failure.name}}</view>
+										<view class="productspec">规格:{{failure.unit ? failure.unit : ''}}</view>
+										<view class="productstate">{{failureStateText(failure.status)}}</view>
+									</view>
+									<view class="pros-marks" v-if="failure.isFailureLayer"></view>
+								</view>
+							</view>
+						</view>	
+					</view>
+				</view>
+				<!-- 脚部菜单 -->
+				<view class="footer">
+					<view class="footer-le">
+						<view class="foot-check checkbox-box" @tap.stop="checkAll()">
+							<button class="checkbox iconfont" :class="[isCheckAll?'icon-xuanze':'icon-weixuanze']"></button> 
+							<view class="text">全选</view>
+						</view>
+	
+						<view class="sum">
+							<view class="sum-none"  v-if="reducedPrice>0">
+								<text class="money-sign">¥</text>
+								<text class="money">{{ totalOriginalPrice | NumFormat }}</text>
+								<text class="money-reduced">减<text>¥{{ reducedPrice | NumFormat}}</text></text>
+							</view>
+							<view class="sum-price" :class="reducedPrice == 0 ? 'none' : ''">
+								总价:<text class="money-sign">¥</text><text class="money">{{allPrice | NumFormat}}</text>
+							</view>
+						</view>
+					</view>
+					<view v-if="!isshowDelbtn" class="footer-ri" >
+						<view class="btn hanld-btn" @tap="toConfirmation">去结算({{allCount}})</view>
+					</view>
+					<view v-else class="footer-del">
+						<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>
+						<view class="btn btn-confirm" @tap.stop="deleteList">删除</view>
+					</view>
+				</view>
+			</view>
+			<view v-else class="cart-content empty">
+				<view  class="empty-container">
+					<image class="empty-container-image" :src="StaticUrl+'icon-empty-cart.png'" mode="aspectFit"></image>
+					<text class="error-text">购物车空空的,快去逛逛吧~</text>
+				</view>
+			</view>
+		</view>
+		<!-- 操作弹窗 -->
+		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
+		<!-- 促销活动弹窗 -->
+		<activi-popup :product="handlerPros" :popupShow="popupShow"></activi-popup>
+		<!-- 透明模态层 -->
+		<modal-layer v-if='modallayer'></modal-layer>
+	</view>
+</template>
+<script>
+	import authorize from '@/common/config/authorize.js'
+	import tuiSkeleton from "@/components/tui-skeleton/tui-skeleton"
+	import tuiLoadmore from "@/components/tui-components/loadmore/loadmore"
+	import tuiNomore from "@/components/tui-components/nomore/nomore"
+	import activiPopup from "@/components/cm-module/productDetails/cm-activipopu"
+	import modalLayer from "@/components/modal-layer"
+	import { mapState,mapMutations } from 'vuex';
+	import { cartList } from '@/common/json/data.json.js' //本地数据
+	
+	export default{
+		components:{
+			tuiSkeleton,
+			tuiLoadmore,
+			tuiNomore,
+			activiPopup,
+			modalLayer
+		},
+		data(){
+			return{
+				StaticUrl:this.$Static,
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+				isIphoneX:this.$store.state.isIphoneX,
+				userID:'',
+				alertType:'',
+				isStock:'',
+				popupShow:false,
+				handlerPros:{},//监听单挑促销商品
+				failureList:[],	//失效商品列表
+				goodsList:cartList,	//购物车的商品
+				promotionsList:[],//促销列表
+				delGoodsList:'',//要删除的商品
+				setGoodData:'', //确认订单的商品
+				isCheckAll:false,//是否全选
+				kindCount:0,//购物车宝贝数量
+				allPrice:0,//所有价格
+				totalOriginalPrice:0,//所有原价价
+				reducedPrice:0,//满减
+				allCount:0,//被选中的产品数量
+				isModallayer:false,
+				skeletonShow:false,
+				isshowDelbtn:false,
+				isDisabled: false, // 供应商/店铺全选是否禁用状态
+				isNoConfim:false,
+				isEmpty:false,//显示空购物车
+				scrollHeight: 'auto',
+				nomoreText: '上拉显示更多',
+				hasNextPage: false,
+				loadding: false,
+				pullUpOn: true,
+				pullFlag: true,
+				pageSize: 10,
+				pageNum: 1,
+				submitIds:[],
+				modal:false,
+				contentModalText:'',
+				deleteType:0,
+				
+			}
+		},
+		onLoad(){
+			this.setScrollHeight();
+			console.log(this.goodsList)
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo'])
+		},
+		filters:{
+			NumFormat(value) {//处理金额
+				return Number(value).toFixed(2);
+			},
+		    totalprice(val,count){//单件商品的价格 × 数量
+		        return (val * count).toFixed(2)
+		    }
+		},	
+		methods:{
+			initData(){
+				this.isModallayer = false //遮罩层 防止多次点击
+				// this.skeletonShow = true //预加载圆圈
+				this.isCheckAll=false//是否全选
+				this.submitIds = []
+				this.$api.getStorage().then((resolve) => {
+					this.userID = resolve.userId;
+					this.initGetCartGoodsList();
+				})	
+			},
+			initLogin(){
+				authorize.checkLogin()
+				.then(res => {
+					this.$api.redirectTo('/pages/login/login?type=4')
+				})
+				.catch(err =>{
+					this.$api.navigateTo('/pages/authorization/authorization?type=0')
+				})
+			},
+			clickPopupShow(pros,type){
+				this.popupShow = true;
+				this.handlerPros = pros;
+			},
+			setScrollHeight() {
+				// 窗口高度-footer高度
+				const {windowHeight, pixelRatio} = uni.getSystemInfoSync();
+				setTimeout(()=> {
+					const query = uni.createSelectorQuery().in(this);
+					query.selectAll('.footer').boundingClientRect();
+					query.exec(res => {
+						this.windowHeight = windowHeight;
+						if(res[0][0]) {
+							this.scrollHeight = windowHeight - res[0][0].height;
+						}
+					})
+				}, 500)
+			},
+			initGetCartGoodsList(){//初始化购物车 index:1
+				this.ProductService.QueryShoppingCartList({userId:this.userID}).then(response =>{
+					this.skeletonShow = false
+					let data = response.data
+					this.kindCount = data.kindCount
+					this.promotionsList = data.promotions
+					this.$store.commit('updateAllNum',data.kindCount)
+					if( data.list.length > 0 || data.invalid.length > 0){
+						this.isEmpty =false
+					}else{
+						this.isEmpty =true
+					}
+					if(data.list && data.list.length > 0 ){
+						this.goodsList = data.list;
+						this.totalShopPeice()
+					} else {
+						this.goodsList = [];
+					}
+					if( data.invalid && data.invalid.length > 0){
+						let newFailureList = [],isFailureLayer;
+						data.invalid.forEach((failure,index) => {
+							if(failure.status == 1 || failure.status == 2) {
+								isFailureLayer = true
+							}else{
+								isFailureLayer = false
+							}
+							newFailureList.push(Object.assign({},failure,{isFailureLayer:isFailureLayer}))
+						})
+						this.failureList = newFailureList
+					} else {
+						this.failureList = [];
+					}
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},		
+			ischeckFailure(failure){
+				failure.productsChecked = !failure.productsChecked
+				this.updateCheckAllBtn()
+			},
+			ischeck(item,pro){//为未选中的时候改变为true,反之为true
+				pro.productsChecked = !pro.productsChecked;
+				if(pro.productsChecked) {
+					if(!this.submitIds.includes(pro.productID*1)){
+						this.submitIds.push(pro.productID);
+					}
+				} else {
+					var lent = this.submitIds.indexOf(pro.productID*1);
+					if(lent >=0 ){
+						this.submitIds.splice(lent, 1);
+					}
+				}
+				this.updateProductCheckedAllBtn(item);
+				this.updateCheckAllBtn();
+				
+			},
+			updateProductCheckedAllBtn(item) {// 单独每个供应商的勾选判断
+				let productsList = item.productsList,
+					productsCheckedLength = 0,
+					disabledLength = 0;
+				if(this.isshowDelbtn) {
+					productsList.forEach(pros => {
+						if(pros.productsChecked) {
+							productsCheckedLength++;
+						}
+					})
+				} else {
+					productsList.forEach(pros => {
+						if(pros.productsChecked) {
+							productsCheckedLength++;
+						}
+					})
+				}
+				item.checked = productsCheckedLength === productsList.length;
+			},
+			updateCheckAllBtn() {// 全选勾选判断
+				let goodsCheckedLength = 0,
+					goodsList = this.goodsList,
+					failureList = this.failureList;
+				goodsList.forEach(item => {
+					if(item.checked) {
+						goodsCheckedLength++;
+					}
+				})
+				failureList.forEach(failureItem=>{
+					if(failureItem.productsChecked){
+						goodsCheckedLength++;
+					}
+				})
+				if(this.isshowDelbtn){
+					this.isCheckAll = goodsCheckedLength === goodsList.length + failureList.length;
+				}else{
+					this.isCheckAll = goodsCheckedLength === goodsList.length;
+				}
+			},
+			checkShop(item){//与单选商品类似
+				item.checked = !item.checked;
+				this.setProductChecked(item);
+				this.updateCheckAllBtn();
+			},
+			setProductChecked(item) {
+				item.productsList.forEach(pros=>{
+					if(item.checked) {
+						pros.productsChecked = true;
+						if(!this.submitIds.includes(pros.productId*1)){
+							this.submitIds.push(pros.productId);
+						}
+					} else {
+						pros.productsChecked = false;
+						var lent = this.submitIds.indexOf(pros.productId*1);
+						if(lent >=0 ){
+							this.submitIds.splice(lent, 1);
+						}
+					}
+				})
+			},
+			updateBothCheckBtn() {
+				if(this.isshowDelbtn) {
+					// 当管理删除按钮出现时,失效的商品可被选择
+					this.goodsList.forEach((item)=>{
+						item.checked = this.isCheckAll;
+						this.setProductChecked(item);
+					})
+					//删除按钮 全选包括失效商品勾选
+					this.failureList.forEach(failureItem=>{
+						failureItem.productsChecked = this.isCheckAll;
+					})
+				} else {
+					this.goodsList.forEach((item)=>{
+						item.checked = this.isCheckAll && !item.isDisabled;
+						this.setProductChecked(item);
+					})
+				}
+			},
+			checkAll(){//全选方法内调用方法
+			    this.isCheckAll = !this.isCheckAll;
+				this.updateBothCheckBtn();     
+			},
+			totalShopPeice(){//每次所属会所下的商品增减重新计算合计价格&减去含有下架的商品
+				let touchPrice = 0;
+				let reducedPrice = 0;//商铺合计满减价
+				this.goodsList.map((item,index)=>{
+					let _totalPrice = 0;
+					let _reducedPrice = 0;
+					let _totalOriginalPrice =0;
+					item.productList.forEach(pros=>{
+						let _price = pros.retailPrice*pros.productCount
+						_totalOriginalPrice += pros.retailPrice*pros.productCount;
+						if(pros.promotion && pros.promotion.type != 2 && pros.promotion.mode == 2){
+							if(_price >= pros.promotion.touchPrice){
+								_price = _price - pros.promotion.reducedPrice
+								_reducedPrice += pros.promotion.reducedPrice
+							}
+							_totalPrice +=  _price
+						}else{
+							_reducedPrice = 0;
+							_totalPrice += pros.retailPrice*pros.productCount;
+						}
+					})
+					item.reducedPrice = _reducedPrice
+					item.totalOriginalPrice = _totalOriginalPrice
+					item.totalPrice = _totalPrice
+				})
+			},
+			totalPeice(){//计算总价格,每次调用此方法,将初始值为0,遍历价格并累加
+				let totalPrice = 0;
+				let reducedPrice = 0;
+				let originalPrice = 0;
+				this.goodsList.forEach((item,index)=>{
+					let supplierPrice = 0;
+					let supplierReducedPrice = 0;
+					item.totalprice = 0;
+					item.reducedprice = 0;
+					item.originalprice = 0;
+					item.productList.forEach(pros=>{	
+						if(pros.productsChecked){								
+							supplierPrice += pros.retailPrice*pros.productCount;
+							// 单品满减
+							if(pros.promotion && pros.promotion.type*1===1 && pros.promotion.mode*1===2){
+								// 单品满减-重新计算供应商总价/满减金额
+								if(pros.retailPrice*pros.productCount >= pros.promotion.touchPrice){
+									supplierPrice -= pros.promotion.reducedPrice;
+									supplierReducedPrice += pros.promotion.reducedPrice;
+								}
+							}
+						}	
+					})
+					item.totalprice = supplierPrice;
+					item.reducedprice = supplierReducedPrice;
+					item.originalprice = (supplierPrice+supplierReducedPrice);
+					totalPrice += item.totalprice;
+					reducedPrice += item.reducedprice;
+					originalPrice += item.originalprice;
+				})
+				//最后统计商品原价
+				this.totalOriginalPrice = originalPrice;
+				//最后满减金额 = 店铺减去金额 + 单品减去金额 + 凑单减去金额
+				this.reducedPrice = reducedPrice;
+				//最终合计价格 = 	店铺满减合计 + 单品满减  + 正常合计 + 凑单满减			
+				this.allPrice = totalPrice ;
+			},
+			totalCount(){//计算总数量
+			    this.allCount = 0
+				let prosAllCount=0
+				let validCount = 0
+				let validList =[];
+				let productsList =[];
+			    this.goodsList.forEach(item=>{
+					productsList = item.productList
+					productsList.forEach(pros=>{
+						if(pros.productsChecked){
+							prosAllCount+=parseInt(pros.productCount);
+							this.allCount = prosAllCount
+						}
+					})
+			    })
+			},		
+			changeCountAdd(item,pros){//商品数量加加
+				if(pros.step === 2){
+					pros.isStep = false
+					pros.number += pros.min
+					this.processActivityPrice(pros)
+					this.isStock = false
+				}else{
+					pros.number++
+					this.processActivityPrice(pros)
+					this.isStock = false
+				}
+				this.updateShoppogNum(pros)
+				this.totalShopPeice();
+			},
+			changeCountSub(item,pros){//商品数量减减
+				if(pros.number<=pros.min){
+					pros.number= pros.min
+					this.$util.msg(`该商品最小起订量为${pros.min}`,2000);
+					return
+				}else{
+					if(pros.step === 2){
+						pros.isStep = false
+						pros.number -= pros.min
+					}else{
+						pros.number--
+					}
+					this.processActivityPrice(pros)
+				}
+				this.updateShoppogNum(pros)
+				this.totalShopPeice();
+			},
+			changeInput(pros){//输入商品数量更新
+				pros.isStep = false
+			},
+			changeNnmber(e,item,pros){//输入商品数量更新
+				let _value = Number(e.detail.value);
+				if(!this.$api.isNumber(_value)){
+					pros.number = pros.min
+				}else if(_value < pros.min){	
+					this.$util.msg(`该商品最小起订量为${pros.min}`,2000);
+					pros.number = pros.min
+				}else if(_value % pros.min != 0){
+					pros.isStep = true
+					pros.number = pros.min
+				}else{
+					pros.isStep = false
+					pros.number = e.detail.value
+					this.processActivityPrice(pros)
+				}
+				this.updateShoppogNum(pros)
+				this.totalShopPeice();
+			},
+			processActivityPrice(pros){//单独处理活动价格和阶梯价格
+				let ladderPriceList = pros.ladderPrices;
+				if(pros.ladderFlag == '0' || pros.actStatus == 1){
+					pros.price = pros.price
+				}else{
+					ladderPriceList.forEach((item,index)=>{
+						if(pros.number>=item.buyNum){
+							pros.price = item.buyPrice
+						}
+					})
+				}
+			},
+			updateShoppogNum(pros){//加减购物车商品更新到后台
+				let params ={userID:this.userID,productID:pros.productId,productCount:pros.number}
+				this.ProductService.ShoppingCartUpdate(params).then(response =>{
+					this.isshowDelbtn = false;
+					this.initGetCartGoodsList();
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			 },
+			toConfirmation(){//跳转确认订单页面
+				let setGoodsList=[];
+				this.goodsList.forEach(res=>{
+					let products = res.productsList
+					products.forEach(pros=>{
+						if(pros.productsChecked){
+						    setGoodsList.push(pros.productId)
+						}
+					})
+				})
+				if(setGoodsList == ''){
+					this.$util.msg("请先选择结算商品~",2000);
+					return
+				}else{
+					this.isNoConfim = false
+					this.goodsList.forEach(el=>{
+						el.productsList.forEach(pros=>{
+							if(pros.productsChecked){
+							   if(pros.number<pros.min){
+								   this.isNoConfim = true
+							   }
+							}
+						})
+					})
+					if(this.isNoConfim){
+						this.$util.modal('','有商品的购买量没达到最小起订量,请修改数量后再次提交结算','去修改','',false,() =>{})
+						return;
+					}
+					let productID = '';
+					this.goodsList.forEach(el=>{//获取勾选的商品ID拼接字符串逗号隔开,最后一个逗号去掉
+						el.productsList.forEach(pros=>{
+							if(pros.productsChecked){
+							   productID += pros.productId+','
+							}
+						})
+					})
+					let cartPramsData={
+							allPrice:this.allPrice,
+							allCount:this.allCount,
+							productID:productID.substring(0,productID.lastIndexOf(',')),
+							productCount:''
+						}
+					this.$api.navigateTo(`/pages/user/order/create-order?data=${JSON.stringify({data:cartPramsData})}`)
+				}
+			},
+			showDelManager(){//显示删除商品管理
+				this.isshowDelbtn = true;
+				if(this.isCheckAll) {
+					this.updateBothCheckBtn();	
+				} else {
+					this.goodsList.forEach(item => {
+						if(item.checked) {
+							item.productsList.forEach(pros => {
+								pros.productsChecked = true;
+							})
+						}
+					})
+					this.updateCheckAllBtn();
+				}
+				// 失效也被勾选
+				this.failureList.forEach(failureItem => {
+					if(failureItem.isFailureLayer){
+						failureItem.isFailureLayer = false
+					}
+				})
+			},
+			hideDelManage(){//隐藏删除商品管理			
+				this.isshowDelbtn = false;
+				let isFailureLayer,newFailureList =[];
+				if(this.isCheckAll) {
+					this.updateBothCheckBtn();	
+				} else {
+					// 失效商品取消勾选
+					this.goodsList.forEach(item => {
+						if(item.isDisabled) {
+							item.checked = false;
+						}
+						item.productsList.forEach(pros => {
+							if(pros.validFlag == 3) {
+								pros.productsChecked = false;
+							}
+						})
+					})
+					this.updateCheckAllBtn();
+				}
+				this.failureList.forEach((failure,index) => {
+					if(failure.failureState == 1 || failure.failureState == 2) {
+						isFailureLayer = true
+					}else{
+						isFailureLayer = false
+					}
+					newFailureList.push(Object.assign({},failure,{isFailureLayer:isFailureLayer}))
+				})
+				this.failureList = newFailureList;
+			},		
+			deleteList(){//删除购物车商品
+				this.delGoodsList=[];
+				this.goodsList.forEach(delitem=>{
+					let products = delitem.productsList
+					products.forEach(pros=>{
+						if(pros.productsChecked){
+						    this.delGoodsList += pros.cartId+','
+						}
+					})
+				})
+				// this.failureList.forEach(failure=>{
+				// 	if(failure.productsChecked){
+				// 		this.delGoodsList += failure.cartId+','
+				// 	}
+				// })
+				if(this.delGoodsList.length == 0){
+					this.$util.msg("请选择要删除的商品~",2000);
+					return
+				}else{			
+					this.modal = true;
+					this.contentModalText = '确定删除选中的商品吗?';	
+					this.deleteType = 1
+				}
+			},
+			deletefailureList(){
+				this.delGoodsList = ''
+				this.failureList.forEach(failure=>{ this.delGoodsList += failure.cartId+',' })
+				this.modal = true;
+				this.contentModalText = '确定清除所有失效商品吗?';	
+				this.deleteType = 2
+			},
+			handleClick(e) {//用户操作订单
+				let index = e.index;
+				if(index == 1){
+					this.ProductService.ShoppingCartDelete(
+						{
+							cartIds:this.delGoodsList,
+						}
+					)
+					.then(response =>{
+						this.$util.msg('删除成功',2000);
+						setTimeout(()=>{
+							this.isshowDelbtn = false;
+							this.initGetCartGoodsList();
+						},1000)
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
+					})
+				}
+				this.modal = false;
+			},
+			hideMobel(){
+				this.modal = false;
+			},
+			goIndex(){
+				uni.switchTab({
+				    url: '/pages/tabBar/index/index'
+				});
+			},
+			goNavto(url){
+				uni.navigateTo ({
+					url
+				})
+			},
+			navToListPage(id){
+				this.isModallayer = true;
+				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+			},
+			failureToProduct(failure){
+				if(failure.status == 1){
+					this.$util.msg('商品已丢失,不能查看',2000)
+					return
+				}else if(failure.status == 2){
+					this.$util.msg('商品已停售,不能查看',2000)
+					return
+				}else{
+					this.isModallayer = true;
+					this.$api.navigateTo(`/pages/goods/product?id=${failure.productId}`)
+				}
+			},
+			failureStateText(state){
+				let stateText = '',
+					stateTextObject={
+						1:'商品已丢失',
+						2:'商品已停售',
+						3:'商品已下架',
+						4:'商品已售罄',
+						5:'价格仅会员可见,您不能购买',
+						6:'未公开价格',
+						7:'库存不足'
+					}
+				Object.keys(stateTextObject).forEach(key => {
+					if(key == state){
+						stateText = stateTextObject[key]
+					}
+				})
+				return stateText;
+			},
+			setHeaderBtnPosi(){
+				// 获得胶囊按钮位置信息
+				let headerBtnPosi = uni.getMenuButtonBoundingClientRect();
+				return headerBtnPosi
+			},
+			setSysteminfo(){
+				let systeminfo;
+				uni.getSystemInfo({ // 获取设备信息
+					success: (res) => {
+						systeminfo = res
+					},
+				})
+				return systeminfo
+			},
+			PromotionsFormat(promo){//促销活动类型数据处理
+				if(promo!=null){
+					if(promo.type == 1 && promo.mode == 1){
+						return true
+					}else{
+						return false
+					}
+				}
+				return false
+			}
+		},
+		watch:{//深度监听所有数据,每次改变重新计算总价和总数
+		    goodsList:{
+		        deep:true,
+		        handler(val,oldval){
+		            this.totalPeice()
+		            this.totalCount()
+		        }
+		    }
+		},
+		onPullDownRefresh() {//下拉刷新
+			this.initGetCartGoodsList()
+			uni.stopPullDownRefresh()
+		},
+		onShow(){
+			// if(this.hasLogin){
+			// 	this.initData()
+			// }else{
+			// 	this.initLogin()
+			// }
+		},
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background: #f7f7f7;
+		height: auto;
+	}
+	.cart-content{
+		position: relative;
+	}
+	.container-cart-main.none{
+		display: none;
+	}
+	.container-cart-main.show{
+		display: block;
+	}
+	.cart-content.empty.none{
+		display: none;
+	}
+	.cart-content.empty.show{
+		display: block;
+	}
+	.container-cart.show{
+		display: block;
+	}
+	.container-cart.none{
+		display: none;
+	}
+	.empty-container.none{
+		display: none;
+	}
+	.empty-container.show{
+		display: flex;
+	}
+	.foot-check-delbtn{
+		width: 100%;
+		height: 80rpx;
+		position: fixed;
+		top: 0;
+		left: 0;
+		box-sizing: border-box;
+		padding: 15rpx 24rpx;
+		background-color: #F7F7F7;
+		z-index: 990;
+		.foot-text{
+			font-size: $font-size-26;
+			height: 50rpx;
+			line-height: 50rpx;
+			color:#666666;
+			float: left;
+			padding-left: 10rpx;
+			text{
+				margin: 0 6rpx;
+			}
+		}
+		.delBtn{
+			width: 100rpx;
+			display: inline-block;
+			padding: 0 15rpx;
+			font-size: $font-size-26;
+			height: 50rpx;
+			line-height: 50rpx;
+			border-radius: 30rpx;
+			background:#FFFFFF;
+			border: 1px solid #ff457b;
+			color: #ff457b;
+			float: right;
+			text-align: center;
+			&.none{
+				display: none;	
+			}
+		}
+	}
+	.checkbox-box{
+		display: flex;
+		align-items: center;
+		.checkbox{
+			display: flex;
+			margin: 0;
+			padding: 5rpx;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			box-sizing: border-box;
+			text-align: center;
+			text-decoration: none;
+			border-radius: 0;
+			-webkit-tap-highlight-color: transparent;
+			overflow: hidden;
+			background-color:#FFFFFF;
+			font-size: 36rpx;
+			color:#999999;
+			&.icon-xuanze{
+				color: $color-system;
+			}
+		}
+		&.disabled{
+			.checkbox{
+				color:#999999
+			}
+		}
+		.text{
+			font-size: $font-size-24;
+			margin-left: 10rpx;
+		}
+	}
+	.goods-list{
+		width: 100%;
+		height: auto;
+		background-color: #F7F7F7;
+		.goods-item{
+			width: 702rpx;
+			padding: 0 24rpx;
+			background: #FFFFFF;
+			margin-bottom: 24rpx;
+		}
+		.shoptitle{
+			display: flex;
+			align-items: center;
+			height: 80rpx;
+			line-height: 80rpx;
+			.checkbox-box{
+				padding: 10rpx;
+			}
+			.text{
+				width: 450rpx;
+				display: block;
+				overflow: hidden;
+				text-overflow:ellipsis;
+				white-space: nowrap;
+				margin-left: 20rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				font-weight: bold;
+			}
+		}
+		.goods-pros{
+			width: 100%;
+			height: auto;
+			margin-bottom: 20rpx;
+		}	
+		.goods-pros-t{
+			display: flex;
+			align-items: center;
+			width: 100%;
+			height: 210rpx;
+			padding:0 0 26rpx 0;
+			.checkbox-box{
+				padding: 10rpx;
+			}
+			.pros-img{
+				width: 210rpx;
+				height: 100%;
+				border-radius: 10rpx;
+				margin:0 20rpx;
+				border:1px solid #f3f3f3;
+				image{
+					width: 100%;
+					height: 100%;
+					border-radius: 10rpx;
+				}
+			}
+		}
+		.goods-pros-b{
+			width:100%;
+			height: auto;
+			padding:0 0 24rpx 0;
+			box-sizing: border-box;
+			&.show{
+				display: block;
+			}
+			&.none{
+				display: none;
+			}
+			.sum-none{
+				width: 100%;
+				height: 48rpx;
+				line-height: 48rpx;
+				color: $text-color;
+				float: left;
+				text-align: right;
+				.money{
+					font-size: $font-size-26;
+					color: #999999;
+					text-decoration: line-through;
+				}
+				.money-sign{
+					font-size: $font-size-26;
+					color: #999999;
+					text-decoration: line-through;
+				}
+				.money-reduced{
+					margin-left: 10rpx;
+					font-size: $font-size-26;
+					color: $color-system;
+					.iconfont{
+						font-size: $font-size-34;
+					}
+				}
+			}
+			.sum{
+				width: 100%;
+				height: 40rpx;
+				font-size: $font-size-26;
+				line-height: 40rpx;
+				color: $text-color;
+				float: left;
+				display: flex;
+				justify-content: flex-end;
+				font-weight: bold;
+				.money{
+					color: $color-system;
+					font-size: $font-size-26;
+				}
+				.money-sign{
+					font-size: $font-size-24;
+					color: $color-system;
+				}
+			}
+		}
+		.pros-product{
+			width: 416rpx;
+			height: 100%;
+			line-height: 36rpx;
+			font-size: $font-size-28;	
+			position: relative;
+			.producttitle{
+				width: 100%;
+				display: inline-block;
+				height: auto;							
+				text-overflow:ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				margin-bottom: 15rpx;
+				.no-text{
+					display: inline-block;
+					height:36rpx;
+					padding: 0 12rpx;
+					line-height: 36rpx;
+					background:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
+					border-radius:18rpx;
+					text-align: center;
+					color: #FFFFFF;
+					font-size:$font-size-28;
+					margin-right: 24rpx;
+				}
+			}
+			.productspec{
+				height: 36rpx;
+				color: #999999;
+				font-size: $font-size-26;
+			}
+			.productprice{
+				width: 100%;
+				height: 48rpx;
+				margin: 30rpx 0 0 0;
+				.price{
+					line-height: 48rpx;
+					font-size: $font-size-26;
+					width: 48%;
+					color: $color-system;
+					float: left;
+					font-weight: bold;
+					&.disabled{
+						color: #999999;
+						text-decoration: line-through;
+					}
+					.money-sign{
+						font-size: $font-size-24;
+						color: $color-system;
+					}
+				}
+				.count{
+					height: 100%;
+					float: right;
+					position: relative;
+					&.show{
+						display: block;
+					}
+					&.none{
+						display: none;
+					}
+					.count-tips{
+						width: auto;
+						display: inline-block;
+						padding: 0 15rpx;
+						line-height: 44rpx;
+						height: 44rpx;
+						border-radius: 22rpx;
+						background: $btn-confirm;
+						font-size: $font-size-24;
+						text-align: center;
+						color: #FFFFFF;
+						position: absolute;
+						top:-60rpx;
+						left: -5rpx; 
+						z-index: 5;
+						&.step{
+							left:-217rpx
+						}
+						&::before{
+							content: "";
+							position: absolute;
+							bottom: -30rpx;
+							right: 15rpx;
+							z-index:1;
+							width: 0; 
+							height: 0;
+							border-width: 18rpx;
+							border-style: solid;
+							border-color:$color-system transparent transparent transparent;
+						}
+					}
+					.number-box {
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						border: 2rpx solid #e1e1e1;
+						border-radius: 30rpx;
+						height: 48rpx;
+						margin-left: 20rpx;
+						.iconfont {
+							font-size: $font-size-24;
+							padding: 0 14rpx;
+							color: #666666;
+							text-align: center;
+							line-height: 48rpx;
+							font-weight: bold;
+							background: #ffffff;
+							&.icon-jianhao {
+								border-radius: 30rpx 0 0 30rpx;
+							}
+							&.icon-jiahao {
+								border-radius: 0 30rpx 30rpx 0;
+							}
+						}
+						.btn-input {
+							width: 56rpx;
+							height: 44rpx;
+							line-height: 44rpx;
+							border-radius: 4rpx;
+							text-align: center;
+							font-size: $font-size-24;
+							color: #333333;
+							background-color: #f7f7f7;
+						}
+					}
+					.uni-numbox{
+						position: absolute;
+						left: 45rpx;
+						bottom: 0;
+						.uni-numbox-minus, .uni-numbox-plus{
+							width: 50rpx;
+							line-height: 40rpx;
+						}
+						.uni-numbox-value {
+							font-size: $font-size-28;
+							width: 60rpx;
+						}
+					}
+				}
+			}
+			.floor-item-act{
+				width: 100%;
+				height: 30rpx;
+				margin-top: 8rpx;
+				float: left;
+				.tag{
+					display: inline-block;
+					width: 80rpx;
+					height: 30rpx;
+					background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+					background-size: contain;
+					font-size: 22rpx;
+					line-height: 30rpx;
+					text-align: center;
+					color: #f83c6c;
+					float: left;
+				}
+			}
+		}
+	}
+	.failure-list{
+		width: 702rpx;
+		height: auto;
+		padding: 0 24rpx;
+		margin-top: 20rpx;
+		background: #FFFFFF;
+		.failure-title{
+			width: 100%;
+			height: 82rpx;
+			line-height: 82rpx;
+			font-size: $font-size-28;
+			border-bottom: 1px solid #EBEBEB;
+			.title-txt{
+				float: left;
+				color:#666666;
+				text-align: left;
+			}
+			.title-btn{
+				float: right;
+				color: $color-system;
+				text-align: right;
+				line-height: 80rpx;
+				.butto{
+					display: inline-block;
+					padding: 0 15rpx;
+					font-size: $font-size-26;
+					height: 50rpx;
+					line-height: 50rpx;
+					border-radius: 30rpx;
+					background:#fff8fd;
+					border: 1px solid #ff457b;
+					color: #ff457b;
+					margin-top: 15rpx;
+				}
+			}
+		}
+		.productlist{
+			padding-top: 10rpx;
+			.goods-pros{
+				width: 100%;
+				height: auto;
+				padding: 20rpx 0;
+			}	
+			.goods-pros-t{
+				display: flex;
+				align-items: center;
+				width: 100%;
+				height: 210rpx;
+				position: relative;
+				.img-tip{
+					display: block;
+					width: 72rpx;
+					height: 36rpx;
+					line-height: 36rpx;
+					font-size: $font-size-24;
+					text-align: center;
+					color: #FFFFFF;
+					border-radius: 24rpx;
+					background:rgba(51,51,51,0.3);
+					// position: absolute;
+					// left: 0;
+					// top: 0;
+				}
+				.checkbox-box{
+					padding: 10rpx;
+				}
+				.pros-img{
+					width: 180rpx;
+					height: 100%;
+					border-radius: 10rpx;
+					margin:0 20rpx;
+					border:1px solid #f3f3f3;
+					position: relative;
+					image{
+						width: 100%;
+						height: 100%;
+						border-radius: 10rpx;
+					}
+				}
+				.pros-marks{
+					width: 730rpx;					height: 250rpx;
+					z-index: 90;
+					background: rgba(0,0,0,.05);
+					position: absolute;
+					left:-20rpx;
+					top: -20rpx;
+				}
+			}
+			.goods-pros-b{
+				width:622rpx;
+				margin-left: 84rpx;
+				height: 40rpx;
+				padding:0 0 26rpx 0;
+				// border-top: 1px solid #EBEBEB;
+				&.show{
+					display: block;
+				}
+				&.none{
+					display: none;
+				}
+				.sum{
+					font-size: $font-size-28;
+					line-height: 40rpx;
+					color: $text-color;
+					display: flex;
+					justify-content: flex-end;
+					.money{
+						color: #FF2A2A;
+						font-size: $font-size-28;
+					}
+					.money-sign{
+						font-size: $font-size-24;
+						color: #FF2A2A;
+					}
+				}
+			}
+			.pros-product{
+				width: 402rpx;
+				height: 100%;
+				line-height: 36rpx;
+				font-size: $font-size-28;	
+				position: relative;
+				.producttitle{
+					width: 100%;
+					display: inline-block;
+					height: auto;							
+					text-overflow:ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+					margin-bottom: 8rpx;
+					.no-text{
+						display: inline-block;
+						height:36rpx;
+						padding: 0 12rpx;
+						line-height: 36rpx;
+						background:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
+						border-radius:18rpx;
+						text-align: center;
+						color: #FFFFFF;
+						font-size: $font-size-28;
+						margin-right: 24rpx;
+					}
+				}
+				.productspec{
+					height: 36rpx;
+					color: #999999;
+					font-size: $font-size-26;
+					margin-top: 20rpx;
+				}
+				.productstate{
+					font-size: $font-size-28;
+					height: 44rpx;
+					color: #FF2A2A;
+					position: absolute;
+					bottom: 0;
+					left: 0;
+				}
+			}
+		}
+	}
+	.footer{
+		width: 100%;
+		background-color: #FFFFFF;
+		height: 100rpx;
+		position: fixed;
+		bottom: 0rpx;
+		z-index: 100;
+		.footer-le{
+			width: 520rpx;
+			height: 100%;
+			padding:10rpx 24rpx;
+			float: left;
+			box-sizing: border-box;
+			.foot-check{
+				width: 100rpx;
+				float: left;
+				line-height: 80rpx;
+				font-size: $font-size-24;
+				.checkbox{
+					width: 40rpx;
+					text-align: center;
+				}
+				.text{
+					width: 60rpx;
+					float: right;
+				}
+			}
+			.sum{
+				width: 360rpx;
+				height: 100%;
+				float: right;
+				box-sizing: border-box;
+				padding:0 10rpx;
+				.sum-none{
+					width: 100%;
+					height: 40rpx;
+					line-height: 40rpx;
+					color: $text-color;
+					float: left;
+					text-align: right;
+					.money{
+						font-size: $font-size-24;
+						color: #999999;
+						text-decoration: line-through;
+					}
+					.money-sign{
+						font-size: $font-size-24;
+						color: #999999;
+						text-decoration: line-through;
+					}
+					.money-reduced{
+						margin-left: 10rpx;
+						font-size: $font-size-24;
+						color: $color-system;
+					}
+				}
+				.sum-price{
+					text-align: right;
+					width: 100%;
+					height: 40rpx;
+					line-height: 40rpx;
+					font-size: $font-size-30;
+					color: $text-color;
+					float: left;
+					font-weight: normal;
+					&.none{
+						height: 80rpx;
+						line-height: 80rpx;
+					}
+					.money{
+						color: $color-system;
+					}
+					.money-sign{
+						font-size: $font-size-24;
+						color: $color-system;
+					}
+				}
+			}
+		}
+		.footer-ri{
+			width: 230rpx;
+			height: 100%;
+			float: right;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			z-index: 999;
+			box-sizing: border-box;
+			padding: 13rpx 15rpx;
+			&.none{
+				display: none;
+			}
+			.btn{
+				width: 200rpx;
+				height: 100%;
+				background:$btn-confirm;
+				font-size: $font-size-28;
+				line-height: 80rpx;
+				color: #FFFFFF;
+				display: flex;
+				border-radius: 40rpx;
+				justify-content: center;
+				align-items: center;
+			}
+		}
+		.footer-del{
+			width: 420rpx;
+			height: 100rpx;
+			position: absolute;
+			padding-left: 200rpx;
+			background: #FFFFFF;
+			right: 0;
+			top: 0;
+			z-index: 1000;
+			box-sizing: border-box;
+			padding: 10rpx 0;
+			display: flex;
+			&.show{
+				animation: showDelbtn 0s linear both;
+			}
+			&.none{
+				animation: hideDelbtn 0s linear both;
+			}
+			.btn{
+				flex: 1;
+				margin: 0 8rpx;
+				height: 100%;
+				line-height: 80rpx;
+				font-size: $font-size-28;
+				color: #FFFFFF;
+				text-align: center;
+				float: left;
+				border-radius: 40rpx;
+			}
+			.btn.btn-cancel{
+				background:#f7f7f7;
+				color: #B2B2B2;
+			}
+			.btn.btn-confirm{
+				background:$btn-confirm;
+				color: #FFFFFF;
+			}
+			@keyframes showDelbtn {
+				0% {
+					transform: translateX(0);
+				}
+				100% {
+					transform: translateX(-100%);
+				}
+			}
+			@keyframes hideDelbtn {
+				0% {
+					transform: translateX(-100%);
+				}
+				100% {
+					transform: translateX(0);
+				}
+			}
+		}
+	}
 </style>

+ 4 - 1
pages/tabBar/index/index.vue

@@ -345,6 +345,9 @@
 					this.$util.msg(error.msg,2000)
 				})
 			},
+			Details(pro){
+				this.$api.navigateTo(`/pages/goods/product?id=${pro.productId}`)
+			},
 			handAddCarts(pro){
 				this.$util.msg('加入成功',1500,true,'success')
 			},
@@ -424,7 +427,7 @@
 			background: rgba(255,255,255,0);
 		}
 		&.bgclass{
-			background: #fa55bf;
+			background: #F94A9B;
 		}
 	}
 	.navbar-text {

+ 26 - 1
pages/tabBar/user/index.vue

@@ -78,7 +78,7 @@
 			<!-- 订单状态区域END -->
 			<!-- 菜单导航区域 -->
 			<view class="place-menu-conten clearfix">
-				<view class="place-menu-cell"  @click="navigator('/pages/user/order/order-list?state=4')">
+				<view class="place-menu-cell"  @click="navigator('/pages/user/activity/activity-list')">
 					<view class="place-left">
 						<image class="place-menu-icon" :src="StaticUrl+'icon-user-h@2x.png'" mode=""></image>
 						<text class="place-menu-title">活动专区</text>
@@ -101,6 +101,11 @@
 				</button>
 			</view>
 			<!-- 菜单导航区域END -->
+			<!-- 底部 -->
+			<view class="user-support">
+				<image class="user-support-image" :src="StaticUrl+'icon-logo@1x.png'" mode=""></image>
+				<view class="user-support-text">采美365网提供商品技术服务</view>
+			</view>
 		</template>
 	</view>
 </template>
@@ -429,4 +434,24 @@ export default {
 		}
 	}
 }
+.user-support{
+	width: 100%;
+	float: left;
+	margin-top: 240rpx;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	justify-content: center;
+	.user-support-image{
+		width: 54rpx;
+		height: 46rpx;
+		display: block;
+		margin-bottom: 5rpx;
+	}
+	.user-support-text{
+		font-size: 20rpx;
+		line-height: 30rpx;
+		color: #cccccc;
+	}
+}
 </style>

+ 226 - 0
pages/user/activity/activity-list.vue

@@ -0,0 +1,226 @@
+<template>
+	<view class="container activity">
+		<view class="activity-content">
+			<view class="activity-list" v-for="(activity,index) in activityList" :key="index" @click="NavigatorPath(activity)">
+				<view class="activity-list-pic">
+					<image class="activity-image" :src="activity.image" mode=""></image>
+				</view>
+				<view class="activity-list-msg">
+					<view class="activity-title">{{ activity.name }}</view>
+					<view class="activity-numbe">商品数:<text class="color">{{ activity.num }}</text> </view>
+					<view class="activity-times">
+						<text class="label">活动时间:</text>
+						<text class="color">{{ activity.startTime }}~{{ activity.endTime }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{
+				activityList:[
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+					{
+						num:10,
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+						startTime:'2021-04-12 15:19:32',
+						endTime:'2021-06-31 15:19:32'
+					},
+				]
+			}
+		},
+		onLoad() {
+			
+		},
+		methods:{
+			NavigatorPath(item){
+				console.log(item)
+				this.$api.navigateTo('/pages/user/activity/activity')
+			}
+		},
+		onPullDownRefresh() {//下拉刷新
+			uni.stopPullDownRefresh()
+		},
+		onShow() {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		height: auto !important;
+		background-color: $color-system;
+	}
+	.activity-content{
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		padding: 24rpx;
+		.activity-list{
+			width: 100%;
+			height: 228rpx;
+			box-sizing: border-box;
+			padding: 24rpx 20rpx;
+			background-color: #FFFFFF;
+			border-radius: 16rpx;
+			margin-bottom: 24rpx;
+			.activity-list-pic{
+				width: 180rpx;
+				height: 180rpx;
+				float: left;
+				box-sizing: border-box;
+				border: 1px solid #e1e1e1;
+				border-radius: 8rpx;
+				.activity-image{
+					width: 178rpx;
+					height: 178rpx;
+					display: block;
+					border-radius: 8rpx;
+				}
+			}
+			.activity-list-msg{
+				width: 460rpx;
+				height: 100%;
+				float: right;
+				position: relative;
+				.activity-title{
+					width: 100%;
+					height: auto;
+					line-height: 36rpx;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					display: -webkit-box;
+					-webkit-line-clamp: 2;
+					line-clamp: 2;
+					-webkit-box-orient: vertical;
+					font-size: $font-size-26;
+					color: #333333;
+					text-align: justify;
+					float: left;
+				}
+				.activity-numbe{
+					width: 100%;
+					height: 28rpx;
+					float: left;
+					margin-top: 4rpx;
+					text-align: left;
+					line-height: 28rpx;
+					font-size: $font-size-24;
+					color: #999999;
+					.color{
+						color: #666666;
+					}
+				}
+				.activity-times{
+					width: 100%;
+					height: 44rpx;
+					position: absolute;
+					bottom: 0;
+					left: 0;
+					font-size:18rpx;
+					color: #666666;
+					line-height: 44rpx;
+					.label{
+						display: inline-block;
+						float: left;
+					}
+					.color{
+						display: inline-block;
+						float: left;
+						color: $color-system;
+					}
+				}
+			}
+		}
+	}
+	
+</style>

+ 386 - 0
pages/user/activity/activity.vue

@@ -0,0 +1,386 @@
+<template>
+	<view class="container activity">
+		<view class="activity-banner">
+			<image class="activity-banner-image" :src="activityBanner" mode=""></image>
+		</view>
+		<!-- 商品列表 -->
+		<view class="container-section tui-skeleton clearfix">
+			<view class="product-list" v-for="(pro,index) in productList" :key="index" @click.stop="Details(pro)">
+				<view class="product-list-image">
+					<image class="product-image" :src="pro.image" mode=""></image>
+					<image class="product-icon" :src="StaticUrl+'icon-hot.png'" mode="" v-if="pro.activistatus == 1"></image>
+				</view>
+				<view class="product-list-msg">
+					<view class="product-msg-name">{{ pro.name }}</view>
+					<view class="product-list-tag" v-if="pro.activistatus == 1"><text class="tag">活动价</text></view>
+					<view class="product-list-pri">
+						<view class="price">¥{{ pro.price | PriceFormat}}</view>
+						<view class="carts" @click.stop="handAddCarts">
+							<view class="carts-add">
+								<text class="iconfont icon-gouwuche"></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{
+				activityBanner:`${this.$Static}banner.png`,
+				productList:[
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					
+				],//商品列表
+			}
+		},
+		onLoad() {
+			
+		},
+		filters: {
+			//处理金额
+			PriceFormat: function(text) {
+				return Number(text).toFixed(2)
+			}
+		},
+		methods:{
+			Details(pro){
+				this.$api.navigateTo(`/pages/goods/product?id=${pro.productId}`)
+			},
+			handAddCarts(pro){
+				this.$util.msg('加入成功',1500,true,'success')
+			},
+		},
+		onPullDownRefresh() {//下拉刷新
+			uni.stopPullDownRefresh()
+		},
+		onShow() {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		height: auto !important;
+		background-color: $color-system;
+	}
+	.activity-banner{
+		width: 100%;
+		height: 750rpx;
+		float: left;
+		margin-bottom: 64rpx;
+		.activity-banner-image{
+			width: 100%;
+			height: 100%;
+			display: block;
+		}
+	}
+	.container-section{
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		.product-list{
+			width: 339rpx;
+			height: 532rpx;
+			float: left;
+			margin-right: 24rpx;
+			margin-bottom: 24rpx;
+			background-color: #FFFFFF;
+			border-radius: 16rpx;
+			&:nth-child(2n){
+				margin-right: 0;
+			}
+			.product-list-image{
+				width: 100%;
+				height: 339rpx;
+				float: left;
+				position: relative;
+				.product-image{
+					width: 100%;
+					height: 100%;
+					display: block;
+					border-radius: 16rpx 16rpx 0 0;
+				}
+				.product-icon{
+					width: 68rpx;
+					height: 55rpx;
+					display: block;
+					position: absolute;
+					top: 0;
+					left: 34rpx;
+				}
+			}
+			.product-list-msg{
+				width: 100%;
+				height: 193rpx;
+				box-sizing: border-box;
+				padding: 16rpx 24rpx;
+				float: left;
+				position: relative;
+				.product-msg-name{
+					width: 100%;
+					height: 72rpx;
+					line-height: 35rpx;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					display: -webkit-box;
+					-webkit-line-clamp: 2;
+					line-clamp: 2;
+					-webkit-box-orient: vertical;
+					font-size: $font-size-26;
+					color: #333333;
+					text-align: justify;
+					float: left;
+				}
+				.product-list-tag{
+					width: 100%;
+					height: 30rpx;
+					margin-top: 8rpx;
+					float: left;
+					.tag{
+						display: inline-block;
+						width: 80rpx;
+						height: 30rpx;
+						background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+						background-size: contain;
+						font-size: 22rpx;
+						line-height: 30rpx;
+						text-align: center;
+						color: #f83c6c;
+						float: left;
+					}
+				}
+				.product-list-pri{
+					width: 100%;
+					height: 44rpx;
+					float: left;
+					position: absolute;
+					bottom: 16rpx;
+					left: 0;
+					box-sizing: border-box;
+					padding: 0 24rpx;
+					.price{
+						float: left;
+						font-size:$font-size-26;
+						color: #f83c6c;
+						font-weight: bold;
+						line-height: 44rpx;
+					}
+					.carts{
+						float: right;
+						.carts-add{
+							width: 44rpx;
+							height: 44rpx;
+							text-align: center;
+							line-height: 44rpx;
+							background-color: #ff457b;
+							border-radius: 50%;
+							.iconfont{
+								font-size: 32rpx;
+								color: #FFFFFF;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+	
+</style>

+ 6 - 46
pages/user/order/create-order.vue

@@ -4,12 +4,6 @@
 		<choice-address ref="choiceAddress" v-if="isAddress" :addressData="addressData"></choice-address>
 		<!-- 商品 -->
 		<goodsList ref='goods' v-if="isRequest" :goodsData="goodsData" @handleGoodList="handChangeInputGoodsList"></goodsList>
-		<!-- 发票信息 -->
-		<seller-invoice ref="invoice" 
-						v-if="isRequest" 
-						:invoiceDatas="invoiceData" 
-						@handleChoiceaInvoice="handleChoiceaInvoiceData">
-		</seller-invoice>
 		<!-- 运费 -->
 		<seller-freight ref="freight" 
 						v-if="isRequest" 
@@ -25,11 +19,6 @@
 					<text>共{{allCount}}件商品</text>
 				</view>
 				<view class="footer-price">
-					<view class="sum-none" v-if="totalFullReduction>0">
-						<text class="money-sign">¥</text>
-						<text class="money">{{ totalOriginalPrice | NumFormat }}</text>
-						<text class="money-reduced">减<text>¥{{ totalFullReduction | NumFormat}}</text></text>
-					</view>
 					<view class="sum" :class="totalFullReduction == 0 ? 'none' : ''">总价:<text class="price">¥{{payAllPrice | NumFormat}}</text></view>
 				</view>
 			</view>
@@ -43,13 +32,11 @@
 <script>
 	import choiceAddress from '@/components/cm-module/creatOrder/address'  
 	import goodsList from '@/components/cm-module/creatOrder/goodsList'
-	import sellerInvoice from '@/components/cm-module/creatOrder/sellerInvoice'
 	import sellerFreight from '@/components/cm-module/creatOrder/sellerFreight'
 	export default {
 		components:{
 			choiceAddress,
 			goodsList,
-			sellerInvoice,
 			sellerFreight
 		},
 		data() {
@@ -389,42 +376,15 @@
 			color: $text-color;
 			padding: 10rpx 20rpx 10rpx 0;
 			box-sizing: border-box;
-			width: 385rpx;
-			.sum-none{
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				color: $text-color;
-				float: left;
-				text-align: right;
-				.money{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-sign{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-reduced{
-					margin-left: 10rpx;
-					font-size: $font-size-26;
-					color:$color-system;
-				}
-			}
+			width: 370rpx;
 			.sum{
 				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
+				height: 110rpx;
+				line-height: 110rpx;
 				float: left;
-				&.none{
-					height: 90rpx;
-					line-height: 90rpx;
-				}
 				.price{
 					font-size: $font-size-32;
-					color: #FF2A2A;
+					color: $color-system;
 				}
 			}
 			
@@ -433,7 +393,7 @@
 			display:flex;
 			align-items:center;
 			justify-content: center;
-			width: 200rpx;
+			width: 210rpx;
 			height: 100%;
 			box-sizing: border-box;
 			padding: 15rpx 5rpx;
@@ -441,7 +401,7 @@
 				width: 100%;
 				height: 100%;
 				color: #FFFFFF;
-				background:#ff2a2a;
+				background:$btn-confirm;
 				font-size: $font-size-26;
 				text-align: center;
 				line-height: 80rpx;

+ 7 - 7
pages/user/order/order-details.vue

@@ -118,7 +118,7 @@
 				this.state = option.state
 			}
 			this.getHeaderTopHeight()
-			this.initOrderDetaileData()
+			this.GetOrderDetaileData()
 		},
 		filters:{
 			TextFormat(status) {//处理金额
@@ -152,8 +152,8 @@
 			openclauseConten(id){
 				this.$api.navigateTo(`/pages/service/sellconten?clauseId=${id}`)
 			},
-			initOrderDetaileData(){//初始化页面数据@参数:订单ID
-				this.OrderService.QueryOrderDetails({ orderId : this.orderId }).then(response =>{
+			GetOrderDetaileData(){//初始化页面数据@参数:订单ID
+				this.OrderService.QueryOrderDetails({ orderID : 15522 }).then(response =>{
 					let resData = response.data;
 					this.isRequest = true
 					this.orderInfo = resData.order
@@ -179,7 +179,7 @@
 					}
 				}).catch(error =>{
 					this.$util.modal('提示','订单查询失败,请稍后重试~','确定','',false,() =>{
-						this.$api.switchTabTo('/pages/tabBar/home/index')
+						this.$api.switchTabTo('/pages/tabBar/index/index')
 					})
 				})
 			},
@@ -238,7 +238,7 @@
 				this.OrderService.ConfirmReceipt({orderId:id}).then(response =>{
 					this.$util.msg(response.msg,2000,true,'success');
 					setTimeout(() => {
-						this.initOrderDetaileData(this.currentTab)
+						this.GetOrderDetaileData(this.currentTab)
 					},2000)
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000)
@@ -262,7 +262,7 @@
 				this.OrderService.CancelOrder({orderId:id}).then(response =>{
 					this.$util.msg(response.msg,2000,true,'success');
 					setTimeout(() => {
-						this.initOrderDetaileData(this.currentTab)
+						this.GetOrderDetaileData(this.currentTab)
 					},2000)
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000)
@@ -416,7 +416,7 @@
 		font-size: $font-size-26;
 		.view-type{
 			float: left;
-			color: #ff2a2a;
+			color: $color-system;
 		}
 	}
 	

+ 194 - 91
pages/user/order/order-list.vue

@@ -21,7 +21,6 @@
 						<view v-else class="tui-order-content">
 							<view  class="tui-order-item" v-for="(order,orderIndex) in tabItem.orderList" :key="orderIndex" >
 								<view class="order-title">
-									<view class="order-title-name">{{order.clubName}}</view>
 									<view class="order-title-t">
 										<text class="bage-text tui-skeleton-fillet"><text class="text">订单编号:</text>{{order.orderNo}}</text>
 									</view>
@@ -39,41 +38,29 @@
 										<view class="goods-pros-t">
 											<view class="pros-img tui-skeleton-fillet">
 												<image :src="pros.productImage" alt="" />
-												<text class="tips" v-if="pros.productType ==2 || pros.productType ==1">赠品</text>
 											</view>
 											<view class="pros-product clearfix">
 												<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
 												<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory!=2">规格:{{pros.productUnit}}</view>
+												<view class="floor-item-act"><view class="tag" @click.stop="clickPopupShow(pros,2)">活动价</view></view>
 												<view class="productprice">
-													<view class="price " v-if="pros.productType ==2 || pros.productType ==1">
-														<text>¥0.00</text>
-													</view>
-													<view class="price tui-skeleton-fillet" v-else :class="PromotionsFormat(pros.productPromotion) ? 'disabled' : ''">
-														<text>¥{{pros.price | NumFormat}}</text>
-													</view>
-													<view class="count tui-skeleton-fillet">
-														<text class="small">x</text>{{pros.num}}
-													</view>
-												</view>
-												<view class="floor-item-act" v-if=" pros.productPromotion!=null ">
-													<view v-if="PromotionsFormat(pros.productPromotion)"  class="floor-tags">
-														{{pros.productPromotion.name}}
-														<text v-if ="pros.productPromotion!=null && pros.productPromotion.type !=3">
-															:¥{{ pros.productPromotion == null ? '0.00' : pros.productPromotion.touchPrice | NumFormat}}
-														</text>
-													</view>
-													<view v-else-if="pros.productPromotion.type !=3" class="floor-tags">{{pros.productPromotion.name}}</view>	
+													<view class="price tui-skeleton-fillet"><text>¥{{pros.price | NumFormat}}</text></view>
+													<view class="count tui-skeleton-fillet"><text class="small">x</text>{{pros.num}}</view>
 												</view>
+												
 											</view>	
 										</view>
 									</view>	
 								</block>
 								<view class="order-footer">
-									<view class="order-footer-top" v-if="order.discountFee!=0">经理折扣:¥{{order.discountFee | NumFormat}}</view>
 									<view class="order-footer-bot">
 										<view class="count tui-skeleton-fillet">共{{order.productCount}}件商品</view>
-										<view class="money tui-skeleton-fillet" v-if="order.status==31||order.status==32||order.status==33">已支付:<label style="color:#f94b4b ;">¥{{ order.receiptAmount | NumFormat }}</label></view>
-										<view class="money tui-skeleton-fillet" v-else>待付总额:<label style="color:#f94b4b ;">¥{{ order.pendingPayments | NumFormat }}</label></view>
+										<view class="money tui-skeleton-fillet" v-if="order.status==31||order.status==32||order.status==33">
+											已支付:<text class="color">¥{{ order.receiptAmount | NumFormat }}</text>
+										</view>
+										<view class="money tui-skeleton-fillet" v-else>
+											待付总额:<text class="color">¥{{ order.pendingPayments | NumFormat }}</text>
+										</view>
 									</view>
 								</view>
 								<!-- 底部button -->
@@ -93,7 +80,27 @@
 			</swiper-item>
 		</swiper>
 		<!-- 操作弹窗 -->
-		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
+		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel(1)" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
+		<!-- 再次购买订单商品全部下架弹窗 -->
+		<tui-modal :show="modal2" @click="handleClick2" @cancel="hideMobel(2)" shape="circle" content="订单内商品已全部下架,不能购买!" :button="button"></tui-modal>
+		<!-- 再次购买部分商品失效弹窗 -->
+		<tui-modal :show="modal3" @cancel="hideMobel(3)" :custom="true">
+			<view class="tui-modal-custom">
+				<view class="tui-modal-custom-text">
+					<view class="title">以下商品已失效,不能进行购买;是否先将其他商品加入购物车?</view>
+					<scroll-view scroll-y class="tui-modal-custom-list">
+						<view class="custom-list" v-for="(invalid,index) in invalidList" :key="index">
+							<view class="custom-list-image"><image :src="invalid.image" mode=""></image></view>
+							<view class="custom-list-name">{{ invalid.name }}</view>
+						</view>
+					</scroll-view>
+				</view>
+				<view class="tui-modal-button">
+					<button  class="modal-button cancel" @click="hideMobel(3)">我再想想</button>
+					<button  class="modal-button confirm" @click="handleClick3">加入购物车</button>
+				</view>
+			</view>
+		</tui-modal>
 		<!-- 透明模态层 -->
 		<modal-layer v-if='isModalLayer'></modal-layer>
 	</view>
@@ -108,6 +115,7 @@
 	import orderButton from '@/components/cm-module/orderDetails/orderListButton'		 //按钮
 	import modalLayer from "@/components/modal-layer"
 	import empty from "@/components/empty";
+	import { orderDataList } from '@/common/json/data.json.js' //本地数据
 	
 	
 	export default {
@@ -162,8 +170,38 @@
 				nomoreText: '上拉显示更多',
 				isOnloadFlag:false,
 				modal:false,
+				modal2:false,
+				modal3:false,
 				OperationType:'',
-				contentModalText:''
+				contentModalText:'',
+				button: [
+					{
+						text: '确定',
+						type:'danger'
+					}
+				],
+				invalidList:[
+					{
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBrzcmAbarfAG8gcPdEFtI777.jpg',
+						name:'韩国恩盛进口氢洁气小气泡清韩国恩盛进口氢洁气小气泡清',
+					},
+				]
 			}
 		},
 		onLoad(e) {
@@ -251,20 +289,20 @@
 					return;
 				}
 				setTimeout(()=>{
-					this.$api.getStorage().then((resolve) =>{
-						this.userId = resolve.userId
-						this.organizeId = resolve.organizeId
-						this.OrderService.QueryOrderList(
-							{
-								orderState:index,
-								organizeId:resolve.organizeId,
-								pageNum:1,
-								pageSize:this.pageSize,
-								}
-						)
-						.then(response =>{
+					// this.$api.getStorage().then((resolve) =>{
+					// 	this.userId = resolve.userId
+					// 	this.organizeId = resolve.organizeId
+					// 	this.OrderService.QueryOrderList(
+					// 		{
+					// 			orderState:index,
+					// 			organizeId:resolve.organizeId,
+					// 			pageNum:1,
+					// 			pageSize:this.pageSize,
+					// 			}
+					// 	)
+					// 	.then(response =>{
 							//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
-							let orderList = response.data.list.filter(item=>{
+							let orderList = orderDataList.filter(item=>{
 									//添加不同状态下订单的表现形式
 									item = Object.assign(item, this.StateExpFormat(item.state));
 									return item;
@@ -286,10 +324,10 @@
 									this.nomoreText = '已至底部'
 								}
 							}
-						}).catch(error =>{
-							this.$util.msg(error.msg,2000);
-						})
-					})
+					// 	}).catch(error =>{
+					// 		this.$util.msg(error.msg,2000);
+					// 	})
+					// })
 				}, 600);	
 			}, 
 			getOnReachBottomData(index){//上拉加载
@@ -357,6 +395,14 @@
 						this.isModalLayer = true;
 						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+data.orderId)
 						break;
+					case 'again':
+						const isAgainType = 2
+						if(isAgainType == 1){
+							this.modal2 = true
+						}else{
+							this.modal3 = true
+						}
+						break;
 					case 'pay':
 						if(data.order.onlinePayFlag == '0'){
 							this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${data.orderId}`)
@@ -383,6 +429,9 @@
 				}
 				this.modal = false;
 			},
+			handleClick2(){
+				this.modal2 = false;
+			},
 			handOrderConfirm (id){//确认收货
 				this.OrderService.ConfirmReceipt({orderId:id}).then(response =>{
 					this.$util.msg(response.msg,2000,true,'success');
@@ -485,7 +534,15 @@
 					}
 				});
 				return HtmlStateText;
-			}
+			},
+			hideMobel(index) {
+				switch(index){
+					case 1:this.modal = false;break;
+					case 2:this.modal2 = false;break;
+					case 3:this.modal3 = false;break;
+				}
+				
+			},
 		},
 		onPageScroll(e) {
 			this.scrollTop = e.scrollTop;
@@ -549,10 +606,10 @@
 		color: $text-color;
 	}
 	.active {
-		border-bottom: 6rpx solid #c4761f;
+		border-bottom: 6rpx solid $color-system;
 	}
 	.active .tab-bar-title {
-		color:#c4761f !important;
+		color:$color-system !important;
 	}
 
 	/*tabbar end*/
@@ -589,14 +646,6 @@
 		height: auto;
 		padding-bottom: 20rpx;
 		border-bottom: 1px solid #e1e1e1;
-		.order-title-name{
-			width: 100%;
-			height: 48rpx;
-			line-height: 48rpx;
-			text-align: left;
-			font-size: $font-size-28;
-			color: #333333;
-		}
 		.order-title-t{
 			width: 100%;
 			height: 48rpx;
@@ -692,20 +741,6 @@
 			border-radius: 10rpx;
 			margin:0 26rpx 0 0;
 			position: relative;
-			.tips{
-				display: inline-block;
-				width: 80rpx;
-				height: 40rpx;
-				background-image: linear-gradient(214deg, #ff4500 0%, #ff5800 53%, #ff4367 100%);
-				line-height: 40rpx;
-				text-align: center;
-				font-size: $font-size-24;
-				color: #FFFFFF;
-				border-radius:10rpx 0 10rpx 0 ;
-				position: absolute;
-				top:0;
-				left: 0;
-			}
 			image{
 				width: 210rpx;
 				height: 210rpx;
@@ -736,17 +771,18 @@
 		.productspec{
 			height: 36rpx;
 			color: #999999;
-			margin: 10rpx 0;
+			margin: 10rpx 0 0 0;
 		}
 		.productprice{
 			height: 48rpx;
 			width: 100%;
 			float: left;
+			margin-top: 10rpx;
 			.price{
 				line-height: 48rpx;
 				font-size: $font-size-28;
 				width: 48%;
-				color: #FF2A2A;
+				color: $color-system;
 				float: left;
 				font-weight: bold;
 				&.disabled{
@@ -765,22 +801,19 @@
 		}
 		.floor-item-act{
 			width: 100%;
-			height: 56rpx;
-			text-align: center;
-			box-sizing: border-box;
+			height: 30rpx;
+			margin-top: 8rpx;
 			float: left;
-			padding:0 0 10rpx 0;
-			.floor-tags{
-				height: 28rpx;
-				border-radius: 6rpx;
-				background-color: #FFFFFF;
-				line-height: 28rpx;
-				color: #ff2a2a;
-				text-align: center;
+			.tag{
 				display: inline-block;
-				padding:0 5rpx;
-				font-size: $font-size-20;
-				border: 1px solid #ff2a2a;
+				width: 80rpx;
+				height: 30rpx;
+				background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+				background-size: contain;
+				font-size: 22rpx;
+				line-height: 30rpx;
+				text-align: center;
+				color: #f83c6c;
 				float: left;
 			}
 		}
@@ -790,14 +823,6 @@
 		height: 78rpx;
 		float: left;
 		margin-top: 20rpx;
-		.order-footer-top{
-			width: 100%;
-			height: 34rpx;
-			line-height: 34rpx;
-			font-size: $font-size-24;
-			color: #999999;
-			text-align: right;
-		}
 		.order-footer-bot{
 			width: 100%;
 			float: left;
@@ -815,6 +840,84 @@
 				width: 50%;
 				float: right;
 				text-align: right;
+				.color{
+					color: $color-system;
+					font-weight: bold;
+				}
+			}
+		}
+	}
+	.tui-modal-custom-text{
+		min-height: 300rpx;
+		margin-bottom: 30rpx;
+		.title{
+			width: 100%;
+			height: auto;
+			font-size: $font-size-30;
+			text-align: justify;
+			color: #333333;
+			line-height: 40rpx;
+			margin-bottom: 30rpx;
+		}
+		.tui-modal-custom-list{
+			width: 100%;
+			height: 350rpx;
+			overflow: hidden;
+			.custom-list{
+				width: 100%;
+				height: 117rpx;
+				box-sizing: border-box;
+				float: left;
+				padding: 15rpx 0;
+				.custom-list-image{
+					width: 86rpx;
+					height: 86rpx;
+					float: left;
+					border-radius: 6rpx;
+					box-sizing: border-box;
+					border: 1px solid #e1e1e1;
+					image{
+						width: 84rpx;
+						height: 84rpx;
+						border-radius: 6rpx;
+						display: block;
+					}
+				}
+				.custom-list-name{
+					width: 400rpx;
+					height: 86rpx;
+					float: right;
+					line-height: 43rpx;
+					font-size: $font-size-26;
+					color: #666666;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					display: -webkit-box;
+					-webkit-line-clamp: 2;
+					line-clamp: 2;
+					-webkit-box-orient: vertical;
+				}
+			}
+		}
+	}
+	.tui-modal-button{
+		width: 100%;
+		height: 72rpx;
+		display: flex;
+		.modal-button{
+			width: 200rpx;
+			height: 72rpx;
+			line-height: 72rpx;
+			border-radius: 36rpx;
+			box-sizing: border-box;
+			&.cancel{
+				border: 1px solid #b2b2b2;
+				background: #FFFFFF;
+				color: #333333;
+			}
+			&.confirm{
+				background: $btn-confirm;
+				color: #FFFFFF;
 			}
 		}
 	}

+ 86 - 34
pages/user/order/success.vue

@@ -1,46 +1,66 @@
 <template>
 	<view class="container cashier">
-		<ws-custom :systeminfo='systeminfo' :navbar-data='nvabarData' :headerBtnPosi ="headerBtnPosi" :isBackType="true" :path="'/pages/user/cart/cart'"></ws-custom>
+		<custom :systeminfo='systeminfo' 
+				:navbar-data='nvabarData' 
+				:headerBtnPosi ="headerBtnPosi" 
+				:isBackType="true" 
+				:path="'/pages/user/cart/cart'">
+		</custom>
 		<view class="container-cash clearfix" :style="{marginTop:CustomBar+'px'}">
 			<view class="container-wrapper">
 				<view class="cash-icon">
-					<image src="../../../static/ws/dd_success.png" mode=""></image>
+					<image :src="StaticUrl+'icon-pay-fail.png'" mode=""></image>
 				</view>
 				<view class="cash-text">
 					<text>{{ successText }}</text>
 				</view>
-				<view class="cash-btn">
-					<view class="btn btn-pay" @click="this.$api.redirectTo(`/pages/user/order/order-payment?type=payfirm&orderId=${orderId}`)">支付订单</view>
-					<view class="btn btn-open" @click="this.$api.redirectTo('/pages/user/order/order-details?type=confim&orderId='+orderId)">查看订单</view>
-				</view>
+			</view>
+			<view class="container-money">
+				<view class="label">支付金额</view>
+				<view class="money">¥{{ payMoney | NumFormat}}</view>
+			</view>
+			<view class="container-button">
+				<view class="btn btn-pay" @click="handPayWxMinPay">重新支付</view>
+				<view class="btn btn-open" @click="this.$api.redirectTo('/pages/user/order/order-details?type=confim&orderId='+orderId)">查看订单</view>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
+	import custom from '@/components/cm-custom/pay-custom' //自定义导航
+	
 	export default{
+		components:{
+			custom
+		},
 		data(){
 			return{
+				StaticUrl:this.$Static,
 				orderId:'',
 				nvabarData: {		//顶部自定义导航
-					haveBack:true,
+					haveBack:false,
 					showCapsule:1, // 是否显示左上角图标  1表示显示  0表示不显示,
 					showSearch: 0,
-					title: '',  // 导航栏 中间的标题
+					title: '支付结果',  // 导航栏 中间的标题
 					textLeft:this.$store.state.isIphone
 				},
 				headerBtnPosi:this.setHeaderBtnPosi(),//获取设备顶部胶囊高度
 				systeminfo:this.setSysteminfo(),		 //获取设备信息
 				isIphoneX:this.$store.state.isIphoneX,
 				CustomBar:this.CustomBar,// 顶部导航栏高度
-				successText:'订单提交成功~',
-				
+				successText:'订单支付失败',
+				payMoney:88888
 			}
 		},
 		onLoad(option) {
 			this.initData(option)
 		},
+		filters:{
+			NumFormat(value) {//处理金额
+				return Number(value).toFixed(2);
+			},
+		},	
 		methods:{
 			setHeaderBtnPosi(){
 				// 获得胶囊按钮位置信息
@@ -55,6 +75,9 @@
 					},
 				})
 				return systeminfo
+			},
+			handPayWxMinPay(){
+				
 			},
 			initData(option){
 				console.log(option)
@@ -69,50 +92,79 @@
 
 <style lang="scss">
 	page{
+		background-color: #f7f7f7;
 		height: auto !important;
 	}
 	.container-cash{
 		width: 100%;
 		.container-wrapper{
-			width:662rpx;
+			width:100%;
 			margin: 0 auto;
 			margin-top: 120rpx;
 			display: flex;
 			flex-direction: column;
 			align-items: center;
+			background-color: #FFFFFF;
 			.cash-icon{
-				width: 332rpx;
-				height: 269rpx;
+				width: 210rpx;
+				height: 210rpx;
 				margin-top: 112rpx;
 				image{
-					width: 332rpx;
-					height: 269rpx;
+					width: 210rpx;
+					height: 210rpx;
 				}
 			}
 			.cash-text{
 				font-size: $font-size-28;
 				color:#666666;
 				line-height: 104rpx;
+				font-weight: bold;
 			}
-			.cash-btn{
-				margin-top: 79rpx;
-				.btn{
-					width: 600rpx;
-					height: 90rpx;
-					border-radius: 45rpx;
-					line-height: 90rpx;
-					text-align: center;
-					font-size: $font-size-26;
-					color: #FFFFFF;
-					box-sizing: border-box;
-					border: 1px solid #333333;
-					margin-bottom: 24rpx;
-					&.btn-open{
-						color: #333333;
-					}
-					&.btn-pay{
-						background:#191919;
-					}
+		}
+		.container-money{
+			width: 100%;
+			height: 90rpx;
+			float: left;
+			line-height: 90rpx;
+			font-size: $font-size-28;
+			box-sizing: border-box;
+			padding: 0 24rpx;
+			margin-top: 20rpx;
+			background-color: #FFFFFF;
+			.label{
+				float: left;
+				color: #333333;
+			}
+			.money{
+				float: right;
+				color: #666666;
+			}
+		}
+		.container-button{
+			width: 100%;
+			height: auto;
+			float: left;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			margin-top: 160rpx;
+			.btn{
+				width: 600rpx;
+				height: 90rpx;
+				border-radius: 45rpx;
+				line-height: 90rpx;
+				text-align: center;
+				font-size: $font-size-26;
+				color: #FFFFFF;
+				box-sizing: border-box;
+				border: 1px solid $color-system;
+				margin-bottom: 24rpx;
+				&.btn-open{
+					color: $color-system;
+				}
+				&.btn-pay{
+					border-color: $color-system;
+					background:$btn-confirm;
 				}
 			}
 		}

+ 2 - 2
services/public.js

@@ -14,12 +14,12 @@ import $reg from '@/common/config/common.js'
  */
 export function queryAddressInformation() {
 	return new Promise(function(resolve, reject) {
-		request.get('/other/list', {}, res => {
+		request.get('/club/address', {}, res => {
 			if (res.code == 0) {
 				resolve(res)
 			} else {
 				return new Promise(function(resolve, reject) {
-					request.get('/other/list', {}, res => {
+					request.get('/club/address', {}, res => {
 						if (res.code == 0) {
 							resolve(res)
 						} else {

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