ソースを参照

commit -m 超级会员

zhengjinyi 3 年 前
コミット
1b80086502
29 ファイル変更5660 行追加5022 行削除
  1. 17 1
      common/css/common.scss
  2. 34 32
      components/cm-module/listTemplate/buyagainList.vue
  3. 6 2
      components/cm-module/listTemplate/immediatelyList.vue
  4. 33 31
      components/cm-module/listTemplate/productList.vue
  5. 293 244
      components/cm-module/pageFloorTemplate/templateA.vue
  6. 302 249
      components/cm-module/pageFloorTemplate/templateB.vue
  7. 332 279
      components/cm-module/pageFloorTemplate/templateC.vue
  8. 322 265
      components/cm-module/pageFloorTemplate/templateD.vue
  9. 306 257
      components/cm-module/pageFloorTemplate/templateE.vue
  10. 280 236
      components/cm-module/pageFloorTemplate/templateF.vue
  11. 277 236
      components/cm-module/pageFloorTemplate/templateG.vue
  12. 28 75
      components/cm-module/pageFloorTemplate/templateI.vue
  13. 36 83
      components/cm-module/pageFloorTemplate/templateJ.vue
  14. 45 100
      components/cm-module/pageFloorTemplate/templateK.vue
  15. 293 244
      components/cm-module/pageTemplate/templateA.vue
  16. 303 249
      components/cm-module/pageTemplate/templateB.vue
  17. 333 279
      components/cm-module/pageTemplate/templateC.vue
  18. 323 265
      components/cm-module/pageTemplate/templateD.vue
  19. 307 257
      components/cm-module/pageTemplate/templateE.vue
  20. 322 272
      components/cm-module/pageTemplate/templateF.vue
  21. 282 237
      components/cm-module/pageTemplate/templateG.vue
  22. 364 296
      components/cm-module/pageTemplate/templateH.vue
  23. 28 75
      components/cm-module/pageTemplate/templateI.vue
  24. 36 83
      components/cm-module/pageTemplate/templateJ.vue
  25. 44 99
      components/cm-module/pageTemplate/templateK.vue
  26. 16 11
      pages/search/search.vue
  27. 692 563
      pages/supplier/user/my-shop.vue
  28. 3 1
      pages/user/member/member-product.vue
  29. 3 1
      pages/user/member/member.vue

+ 17 - 1
common/css/common.scss

@@ -362,4 +362,20 @@ button::after{
 			top: -12rpx;
 			opacity: 0;
 		}
-	}
+	}
+/* 优惠券标签样式*/
+// .coupon-tags {
+// 	height: 32rpx;
+// 	box-sizing: border-box;
+// 	border-radius: 8rpx;
+// 	background-color: #fff1eb;
+// 	line-height: 28rpx;
+// 	color: #f94b4b;
+// 	text-align: center;
+// 	display: inline-block;
+// 	padding: 0 10rpx;
+// 	font-size: $font-size-20;
+// 	border: 1px solid #f94b4b;
+// 	float: left;
+// 	margin-right: 12rpx;
+// }

+ 34 - 32
components/cm-module/listTemplate/buyagainList.vue

@@ -25,14 +25,16 @@
 						</view>
 						<view class="list-details-price">
 							<view class="floor-item-act" v-if="item.actStatus==1">
-								<template v-if="item.actStatus==1">
+								<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
+								<template>
 									<view class="floor-tags" v-if="PromotionsFormat(item.promotions)">
 										{{item.promotions.name}}<text>:¥{{ item.price | NumFormat }}</text>
 									</view>
 									<view class="floor-tags" v-else>{{item.promotions.name}}</view>	
 								</template>
 							</view>
-							<view class="floor-item-act" v-if="item.actStatus==0">
+							<view class="floor-item-act" v-else>
+								<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
 								<view class="floor-tags" v-if="item.actStatus ==0  &&  item.ladderPriceFlag==1">阶梯价格</view>	
 							</view>
 						</view>	
@@ -63,10 +65,10 @@
 
 <script>
 	import listSkeleton from '@/components/cm-module/listTemplate/listSkeleton'
-	import modalLayer from "@/components/modal-layer"
+	import modalLayer from '@/components/modal-layer'
 	import uniStars from '@/components/uni-stars/uni-stars.vue'
 	import cmDrag from '@/components/cm-custom/cm-drag.vue'
-	import { mapState,mapMutations } from 'vuex';
+	import { mapState,mapMutations } from 'vuex'
 	export default{
 		name:'productList',
 		components:{
@@ -102,7 +104,7 @@
 			}
 		},
 		created() {
-			this.setScrollHeight();		
+			this.setScrollHeight()		
 			this.$parent.getClubProductNum()
 			this.$api.getComStorage('orderUserInfo').then((resolve) =>{
 				this.userId = resolve.userID
@@ -111,7 +113,7 @@
 		},
 		filters: {
 			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2);
+				return Number(text).toFixed(2)
 			},
 		},
 		computed: {
@@ -120,20 +122,20 @@
 		methods:{
 			scrolltolower() {
 				if(this.hasNextPage && this.pullFlag) {
-					this.getProductAgainInfo(true);
+					this.getProductAgainInfo(true)
 				}
 			},
 			setScrollHeight() {
-				const {windowHeight, pixelRatio} = wx.getSystemInfoSync();
-				this.windowHeight = windowHeight - 1;
-				this.scrollHeight = windowHeight - 1;
+				const {windowHeight, pixelRatio} = wx.getSystemInfoSync()
+				this.windowHeight = windowHeight - 1
+				this.scrollHeight = windowHeight - 1
 			},
 			getProductAgainInfo(loadMore) {
-				this.showLoading = true;
-				this.loadingNow = true;
-				this.loadingText = '加载中';
-				this.isShowEmpty = false;				
-				if(loadMore) {this.pageNum += 1;}
+				this.showLoading = true
+				this.loadingNow = true
+				this.loadingText = '加载中'
+				this.isShowEmpty = false				
+				if(loadMore) {this.pageNum += 1}
 				this.ProductService.GetRepeatBuyAgainProductList(
 					{
 						userId:this.userId,
@@ -143,19 +145,19 @@
 				)
 				.then(response =>{
 					this.isShowWrapper = true
-					this.showSkeleton = false;
-					const listData = response.data.results;
+					this.showSkeleton = false
+					const listData = response.data.results
 					if(listData && listData.length > 0){
-						this.hasNextPage = response.data.hasNextPage;
-						this.isShowEmpty = false;
+						this.hasNextPage = response.data.hasNextPage
+						this.isShowEmpty = false
 						if(loadMore) {
-							this.productList = [...this.productList,...listData];
+							this.productList = [...this.productList,...listData]
 						} else {
-							this.productList = listData;
+							this.productList = listData
 							console.log(this.productList)
 						}
 						//价格显示处理
-						let isActFlg,newProductList=[];
+						let isActFlg,newProductList=[]
 						this.productList.map((item, index)=> {
 							console.log(item)
 							if(item.actStatus == 1){
@@ -170,34 +172,34 @@
 						this.productList = newProductList
 						console.log(this.productList)
 						// 防上拉暴滑
-						this.pullFlag = false;
+						this.pullFlag = false
 						setTimeout(()=>{
-							this.pullFlag = true;
+							this.pullFlag = true
 						},500)
 						// 底部提示文案
 						if(this.hasNextPage) {
-							this.loadingText = '上拉加载更多';
+							this.loadingText = '上拉加载更多'
 						} else {
-							this.showLoading = true;
-							this.loadingNow = false;
+							this.showLoading = true
+							this.loadingNow = false
 						}
 					} else {
 						if(!loadMore) {
-							this.isShowEmpty = true;
+							this.isShowEmpty = true
 						}
 					}
 				})
 				.catch(error =>{
-					this.$util.msg(error.msg,2000);
+					this.$util.msg(error.msg,2000)
 				})
 			},
 			operationHanld(prop){
 				this.$emit('operationConfim',prop)
 			},
 			navToDetailPage(id) {
-				this.isModallayer = true;
-				this.$api.navigateTo(`/pages/goods/product?id=${id}`);
-				this.isModallayer = false;
+				this.isModallayer = true
+				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+				this.isModallayer = false
 			},
 			repurchModel(){
 				this.$util.modal('','此商品的价格有变化,原来的购买价已不适用','知道了','',false,() =>{})

+ 6 - 2
components/cm-module/listTemplate/immediatelyList.vue

@@ -85,6 +85,7 @@
 							</view>
 							<view class="list-details-price">
 								<view class="floor-item-act" v-if="pros.actStatus == 1">
+									<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
 									<template>
 										<view class="floor-tags" v-if="PromotionsFormat(pros.promotions)">
 											{{ pros.promotions.name }}<text>:¥{{ pros.price | NumFormat }}</text>
@@ -92,7 +93,8 @@
 										<view class="floor-tags" v-else>{{ pros.promotions.name }}</view>
 									</template>
 								</view>
-								<view class="floor-item-act" v-if="pros.actStatus == 0">
+								<view class="floor-item-act" v-else>
+									<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
 									<view class="floor-tags" v-if="pros.actStatus == 0 && pros.ladderPriceFlag == 1"
 										>阶梯价格</view
 									>
@@ -148,6 +150,7 @@
 											</view>
 											<view class="zuhe_price-larger zuhe_list_text">
 												<view class="floor-item-act" v-if="pros.actStatus == 1">
+													<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
 													<template>
 														<view
 															class="floor-tags"
@@ -161,7 +164,8 @@
 														}}</view>
 													</template>
 												</view>
-												<view class="floor-item-act" v-if="pros.actStatus == 0">
+												<view class="floor-item-act" v-else>
+													<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
 													<view
 														class="floor-tags"
 														v-if="pros.actStatus == 0 && pros.ladderPriceFlag == 1"

+ 33 - 31
components/cm-module/listTemplate/productList.vue

@@ -28,6 +28,7 @@
 						</view>
 						<view class="list-details-price">
 							<view class="floor-item-act" v-if="item.actStatus==1">
+								<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
 								<template>
 									<view class="floor-tags" v-if="PromotionsFormat(item.promotions)">
 										{{item.promotions.name}}
@@ -36,7 +37,8 @@
 									<view class="floor-tags" v-else>{{item.promotions.name}}</view>	
 								</template>
 							</view>
-							<view class="floor-item-act" v-if="item.actStatus==0">
+							<view class="floor-item-act" v-else>
+								<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
 								<view class="floor-tags" v-if="item.actStatus ==0  &&  item.ladderPriceFlag==1">阶梯价格</view>	
 							</view>
 						</view>	
@@ -70,10 +72,10 @@
 
 <script>
 	import listSkeleton from '@/components/cm-module/listTemplate/listSkeleton'
-	import modalLayer from "@/components/modal-layer"
+	import modalLayer from '@/components/modal-layer'
 	import uniStars from '@/components/uni-stars/uni-stars.vue'
 	import cmDrag from '@/components/cm-custom/cm-drag.vue'
-	import { mapState,mapMutations } from 'vuex';
+	import { mapState,mapMutations } from 'vuex'
 	export default{
 		name:'productList',
 		components:{
@@ -110,7 +112,7 @@
 			}
 		},
 		created() {
-			this.setScrollHeight();		
+			this.setScrollHeight()		
 			this.$api.getStorage().then((resolve) =>{
 				this.userId = resolve.userId ? resolve.userId : 0
 				this.getProductAgainInfo()
@@ -118,7 +120,7 @@
 		},
 		filters: {
 			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2);
+				return Number(text).toFixed(2)
 			},
 		},
 		computed: {
@@ -127,20 +129,20 @@
 		methods:{
 			scrolltolower() {
 				if(this.hasNextPage && this.pullFlag) {
-					this.getProductAgainInfo(true);
+					this.getProductAgainInfo(true)
 				}
 			},
 			setScrollHeight() {
-				const {windowHeight, pixelRatio} = wx.getSystemInfoSync();
-				this.windowHeight = windowHeight - 1;
-				this.scrollHeight = windowHeight - 1;
+				const {windowHeight, pixelRatio} = wx.getSystemInfoSync()
+				this.windowHeight = windowHeight - 1
+				this.scrollHeight = windowHeight - 1
 			},
 			getProductAgainInfo(loadMore) {
-				this.showLoading = true;
-				this.loadingNow = true;
-				this.loadingText = '加载中';
-				this.isShowEmpty = false;				
-				if(loadMore) {this.pageNum += 1;}
+				this.showLoading = true
+				this.loadingNow = true
+				this.loadingText = '加载中'
+				this.isShowEmpty = false				
+				if(loadMore) {this.pageNum += 1}
 				this.ProductService.GetRepeatBuyAgainProductList(
 					{
 						userId:this.userId,
@@ -152,18 +154,18 @@
 				.then(response =>{
 					this.isShowWrapper = true
 					this.cartQuantity = response.data.cartQuantity
-					const listData = response.data.results;
+					const listData = response.data.results
 					if(listData && listData.length > 0){
-						this.hasNextPage = response.data.hasNextPage;
-						this.isShowEmpty = false;
+						this.hasNextPage = response.data.hasNextPage
+						this.isShowEmpty = false
 						if(loadMore) {
-							this.productList = [...this.productList,...listData];
+							this.productList = [...this.productList,...listData]
 						} else {
-							this.productList = listData;
-							this.showSkeleton = false;
+							this.productList = listData
+							this.showSkeleton = false
 						}
 						//价格显示处理
-						let isActFlg,newProductList=[];
+						let isActFlg,newProductList=[]
 						this.productList.map((item, index)=> {
 							if(item.actStatus == 1){
 								isActFlg = true
@@ -176,33 +178,33 @@
 						})
 						this.productList = newProductList
 						// 防上拉暴滑
-						this.pullFlag = false;
+						this.pullFlag = false
 						setTimeout(()=>{
-							this.pullFlag = true;
+							this.pullFlag = true
 						},500)
 						// 底部提示文案
 						if(this.hasNextPage) {
-							this.loadingText = '上拉加载更多';
+							this.loadingText = '上拉加载更多'
 						} else {
-							this.showLoading = true;
-							this.loadingNow = false;
+							this.showLoading = true
+							this.loadingNow = false
 						}
 					} else {
 						if(!loadMore) {
-							this.isShowEmpty = true;
+							this.isShowEmpty = true
 						}
 					}
 				}).catch(response =>{
-					this.$util.msg(response.msg,2000);
+					this.$util.msg(response.msg,2000)
 				})
 			},
 			operationHanld(prop){
 				this.$emit('operationConfim',prop)
 			},
 			navToDetailPage(id) {
-				this.isModallayer = true;
-				this.$api.navigateTo(`/pages/goods/product?id=${id}`);
-				this.isModallayer = false;
+				this.isModallayer = true
+				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+				this.isModallayer = false
 			},
 			toIndexPage() {
 				uni.switchTab({

+ 293 - 244
components/cm-module/pageFloorTemplate/templateA.vue

@@ -1,18 +1,27 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_02">
-			<image class="item-img-gg" 
-				   :src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-				   mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -20,35 +29,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -56,46 +73,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -111,11 +154,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -123,243 +164,251 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateA",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateA',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 302 - 249
components/cm-module/pageFloorTemplate/templateB.vue

@@ -1,30 +1,43 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_02">
-			<image  class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage2" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType2,
 						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
 						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -32,35 +45,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -68,46 +89,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -123,11 +170,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -135,243 +180,251 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateB",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateB',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 332 - 279
components/cm-module/pageFloorTemplate/templateC.vue

@@ -1,30 +1,43 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage2" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType2,
 						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
 						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -32,35 +45,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -68,46 +89,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -123,11 +170,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -135,276 +180,284 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateC",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateC',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			.item-img-gg {
+				width: 100%;
+				height: 240rpx;
+				display: block;
+				border-radius: 16rpx;
+			}
+		}
+		&.ad_02 {
+			margin-right: 20rpx;
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
-				width: 100%;
-				height: 240rpx;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&.ad_02{
-				margin-right: 20rpx;
-			}	
-			&:nth-child(odd){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 8rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			margin-bottom: 20rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
-				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
+				float: left;
+				margin-right: 12rpx;
 			}
-			.floor-item_tag{
-				width: 100%;
+			.floor-tags {
 				height: 32rpx;
-				float: left;
-				margin: 8rpx 0;
-				padding: 0 20rpx;
 				box-sizing: border-box;
-				margin-bottom: 20rpx;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 322 - 265
components/cm-module/pageFloorTemplate/templateD.vue

@@ -1,42 +1,59 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage2" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType2,
 						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
 						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_03">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage3" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage3"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType3,
 						floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 						floorData.floorContent.adsLink3,
 						floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -44,35 +61,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -80,46 +105,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -135,11 +186,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -147,254 +196,262 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateD",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateD',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
-			width: 339rpx;
-			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
-			border-radius: 16rpx;
-			margin-bottom: 20rpx;
-			float: left;
-			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			margin-right: 0;
+			.item-img-gg {
 				width: 100%;
 				height: 240rpx;
-				margin-right: 0;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&:nth-child(odd){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
 				display: block;
 				border-radius: 16rpx;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
+			width: 339rpx;
+			height: 516rpx;
+			display: block;
+			border-radius: 16rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 306 - 257
components/cm-module/pageFloorTemplate/templateE.vue

@@ -1,18 +1,27 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -20,35 +29,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -56,46 +73,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -111,11 +154,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -123,256 +164,264 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateE",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateE',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
-			width: 339rpx;
-			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
-			border-radius: 16rpx;
-			margin-bottom: 20rpx;
-			float: left;
-			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			.item-img-gg {
 				width: 100%;
 				height: 240rpx;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&.ad_02{
-				margin-right: 20rpx;
-			}	
-			&:nth-child(odd){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
 				display: block;
 				border-radius: 16rpx;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		&.ad_02 {
+			margin-right: 20rpx;
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
+			width: 339rpx;
+			height: 516rpx;
+			display: block;
+			border-radius: 16rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 280 - 236
components/cm-module/pageFloorTemplate/templateF.vue

@@ -1,6 +1,11 @@
 <template>
 	<view class="section_page_main clearfix">
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -8,35 +13,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -44,46 +57,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -99,11 +138,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -111,240 +148,247 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateG",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateG',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-30;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-30;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 277 - 236
components/cm-module/pageFloorTemplate/templateG.vue

@@ -1,6 +1,11 @@
 <template>
 	<view class="section_page_main clearfix">
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -8,35 +13,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -44,46 +57,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -99,11 +138,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -111,239 +148,243 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateG",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateG',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.$api.getStorage().then(resolve => {
+				this.shopId = resolve.shopId ? resolve.shopId : 0
+			})
+			this.floorData = data
+			// console.log(this.floorData)
 		},
-		methods:{
-			initData(data){
-				this.$api.getStorage().then((resolve) =>{
-					this.shopId = resolve.shopId ? resolve.shopId : 0
-				})
-				this.floorData = data
-				// console.log(this.floorData)
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
 			}
+			return false
+		},
+
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-30;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-30;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 28 - 75
components/cm-module/pageFloorTemplate/templateI.vue

@@ -7,13 +7,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType1,
-						floorData.floorContent.linkParam1.id
-							? floorData.floorContent.linkParam1.id
-							: '',
+						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
-						floorData.floorContent.linkParam1.keyword
-							? floorData.floorContent.linkParam1.keyword
-							: ''
+						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -27,13 +23,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType2,
-						floorData.floorContent.linkParam2.id
-							? floorData.floorContent.linkParam2.id
-							: '',
+						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
-						floorData.floorContent.linkParam2.keyword
-							? floorData.floorContent.linkParam2.keyword
-							: ''
+						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -47,13 +39,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType3,
-						floorData.floorContent.linkParam3.id
-							? floorData.floorContent.linkParam3.id
-							: '',
+						floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 						floorData.floorContent.adsLink3,
-						floorData.floorContent.linkParam3.keyword
-							? floorData.floorContent.linkParam3.keyword
-							: ''
+						floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -79,56 +67,33 @@
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text
-										v-if="
-											hasLogin &&
-												item.product.priceFlag != 1 &&
-												item.product.shopID == shopId
-										"
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
 						<template v-else>
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text v-if="hasLogin && item.product.priceFlag != 1"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
@@ -137,18 +102,13 @@
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
 								<template v-if="item.product.shopID == shopId">
-									<view
-										class="title-none"
-										v-if="item.product.priceFlag === 1"
-									>
+									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="
-											PromotionsFormat(item.product.promotions) ? 'none' : ''
-										"
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -209,17 +169,12 @@
 							</template>
 						</template>
 						<template v-else>
-							<view
-								class="price tui-skeleton-rect"
-								v-if="item.product.detailTalkFlag == '2'"
-							>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
 								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
-								<text class="p big">{{
-									item.product.price | NumFormat
-								}}</text>
+								<text class="p big">{{ item.product.price | NumFormat }}</text>
 							</view>
 						</template>
 					</view>
@@ -227,10 +182,7 @@
 						<template v-if="item.product.productCategory == 1">
 							<view class="p-stars">
 								<text class="p-no">¥</text>
-								<uni-grader
-									:grade="Number(item.product.priceGrade)"
-									:margin="14"
-								></uni-grader>
+								<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
 							</view>
 						</template>
 						<template v-else>
@@ -351,7 +303,8 @@ export default {
 			margin-right: 0;
 		}
 
-		&.ad_02,&.ad_03{
+		&.ad_02,
+		&.ad_03 {
 			width: 339rpx;
 			height: 260rpx;
 			.item-img-gg {
@@ -392,13 +345,13 @@ export default {
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.floor-item-act{
+		.floor-item-act {
 			display: block;
 			width: 100%;
 			height: 32rpx;
 			text-align: center;
 			box-sizing: border-box;
-			.coupon-tags{
+			.coupon-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
@@ -407,24 +360,24 @@ export default {
 				color: #f94b4b;
 				text-align: center;
 				display: inline-block;
-				padding:0 10rpx;
+				padding: 0 10rpx;
 				font-size: $font-size-20;
 				border: 1px solid #f94b4b;
 				float: left;
 				margin-right: 12rpx;
 			}
-			.floor-tags{
+			.floor-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
-				background-color: #FFFFFF;
+				background-color: #ffffff;
 				line-height: 28rpx;
 				color: $color-system;
 				text-align: center;
 				display: inline-block;
-				padding:0 16rpx;
+				padding: 0 16rpx;
 				font-size: $font-size-20;
-				border: 1px solid #E15616;
+				border: 1px solid #e15616;
 				float: left;
 			}
 		}

+ 36 - 83
components/cm-module/pageFloorTemplate/templateJ.vue

@@ -8,13 +8,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType1,
-							floorData.floorContent.linkParam1.id
-								? floorData.floorContent.linkParam1.id
-								: '',
+							floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 							floorData.floorContent.adsLink1,
-							floorData.floorContent.linkParam1.keyword
-								? floorData.floorContent.linkParam1.keyword
-								: ''
+							floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -28,13 +24,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType2,
-							floorData.floorContent.linkParam2.id
-								? floorData.floorContent.linkParam2.id
-								: '',
+							floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 							floorData.floorContent.adsLink2,
-							floorData.floorContent.linkParam2.keyword
-								? floorData.floorContent.linkParam2.keyword
-								: ''
+							floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -46,13 +38,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType3,
-							floorData.floorContent.linkParam3.id
-								? floorData.floorContent.linkParam3.id
-								: '',
+							floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 							floorData.floorContent.adsLink3,
-							floorData.floorContent.linkParam3.keyword
-								? floorData.floorContent.linkParam3.keyword
-								: ''
+							floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -80,56 +68,33 @@
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text
-										v-if="
-											hasLogin &&
-												item.product.priceFlag != 1 &&
-												item.product.shopID == shopId
-										"
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
 						<template v-else>
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text v-if="hasLogin && item.product.priceFlag != 1"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
@@ -138,18 +103,13 @@
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
 								<template v-if="item.product.shopID == shopId">
-									<view
-										class="title-none"
-										v-if="item.product.priceFlag === 1"
-									>
+									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="
-											PromotionsFormat(item.product.promotions) ? 'none' : ''
-										"
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -210,17 +170,12 @@
 							</template>
 						</template>
 						<template v-else>
-							<view
-								class="price tui-skeleton-rect"
-								v-if="item.product.detailTalkFlag == '2'"
-							>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
 								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
-								<text class="p big">{{
-									item.product.price | NumFormat
-								}}</text>
+								<text class="p big">{{ item.product.price | NumFormat }}</text>
 							</view>
 						</template>
 					</view>
@@ -228,10 +183,7 @@
 						<template v-if="item.product.productCategory == 1">
 							<view class="p-stars">
 								<text class="p-no">¥</text>
-								<uni-grader
-									:grade="Number(item.product.priceGrade)"
-									:margin="14"
-								></uni-grader>
+								<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
 							</view>
 						</template>
 						<template v-else>
@@ -324,32 +276,33 @@ export default {
 	width: 100%;
 	height: auto;
 	box-sizing: border-box;
-	
-	.floor-item-ad{
+
+	.floor-item-ad {
 		width: 100%;
 		margin-bottom: 24rpx;
-		.floor-item-left,.floor_item_right{
+		.floor-item-left,
+		.floor_item_right {
 			width: 339rpx;
 			height: 516rpx;
 		}
-		.floor-item-left{
+		.floor-item-left {
 			margin-right: 20rpx;
 			float: left;
-			.item-img-gg{
+			.item-img-gg {
 				width: 339rpx;
 				height: 516rpx;
 				border-radius: 16rpx;
 			}
 		}
-		.floor_item_right{
+		.floor_item_right {
 			float: left;
 			.item-img-gg {
 				width: 100%;
 				height: 246rpx;
 				display: block;
 				border-radius: 16rpx;
-				&:nth-child(1){
-					margin-bottom:24rpx;
+				&:nth-child(1) {
+					margin-bottom: 24rpx;
 				}
 			}
 		}
@@ -367,7 +320,7 @@ export default {
 		float: left;
 		box-sizing: border-box;
 		position: relative;
-		
+
 		&:nth-child(odd) {
 			margin-right: 0;
 		}
@@ -408,13 +361,13 @@ export default {
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.floor-item-act{
+		.floor-item-act {
 			display: block;
 			width: 100%;
 			height: 32rpx;
 			text-align: center;
 			box-sizing: border-box;
-			.coupon-tags{
+			.coupon-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
@@ -423,24 +376,24 @@ export default {
 				color: #f94b4b;
 				text-align: center;
 				display: inline-block;
-				padding:0 10rpx;
+				padding: 0 10rpx;
 				font-size: $font-size-20;
 				border: 1px solid #f94b4b;
 				float: left;
 				margin-right: 12rpx;
 			}
-			.floor-tags{
+			.floor-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
-				background-color: #FFFFFF;
+				background-color: #ffffff;
 				line-height: 28rpx;
 				color: $color-system;
 				text-align: center;
 				display: inline-block;
-				padding:0 16rpx;
+				padding: 0 16rpx;
 				font-size: $font-size-20;
-				border: 1px solid #E15616;
+				border: 1px solid #e15616;
 				float: left;
 			}
 		}

+ 45 - 100
components/cm-module/pageFloorTemplate/templateK.vue

@@ -8,13 +8,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType1,
-							floorData.floorContent.linkParam1.id
-								? floorData.floorContent.linkParam1.id
-								: '',
+							floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 							floorData.floorContent.adsLink1,
-							floorData.floorContent.linkParam1.keyword
-								? floorData.floorContent.linkParam1.keyword
-								: ''
+							floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -28,13 +24,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType2,
-							floorData.floorContent.linkParam2.id
-								? floorData.floorContent.linkParam2.id
-								: '',
+							floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 							floorData.floorContent.adsLink2,
-							floorData.floorContent.linkParam2.keyword
-								? floorData.floorContent.linkParam2.keyword
-								: ''
+							floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -46,13 +38,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType3,
-							floorData.floorContent.linkParam3.id
-								? floorData.floorContent.linkParam3.id
-								: '',
+							floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 							floorData.floorContent.adsLink3,
-							floorData.floorContent.linkParam3.keyword
-								? floorData.floorContent.linkParam3.keyword
-								: ''
+							floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -60,7 +48,7 @@
 				</image>
 			</view>
 		</view>
-		
+
 		<view class="floor-item-ad ad-row2 clearfix">
 			<image
 				class="item-img-gg"
@@ -68,13 +56,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType2,
-						floorData.floorContent.linkParam2.id
-							? floorData.floorContent.linkParam2.id
-							: '',
+						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
-						floorData.floorContent.linkParam2.keyword
-							? floorData.floorContent.linkParam2.keyword
-							: ''
+						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -86,20 +70,16 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType3,
-						floorData.floorContent.linkParam3.id
-							? floorData.floorContent.linkParam3.id
-							: '',
+						floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 						floorData.floorContent.adsLink3,
-						floorData.floorContent.linkParam3.keyword
-							? floorData.floorContent.linkParam3.keyword
-							: ''
+						floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 					)
 				"
 				mode="aspectFill"
 			>
 			</image>
 		</view>
-		
+
 		<view
 			class="floor-item ad_04 clearfix"
 			v-for="(item, idx) in floorData.floorImageList"
@@ -119,56 +99,33 @@
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text
-										v-if="
-											hasLogin &&
-												item.product.priceFlag != 1 &&
-												item.product.shopID == shopId
-										"
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
 						<template v-else>
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text v-if="hasLogin && item.product.priceFlag != 1"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
@@ -177,18 +134,13 @@
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
 								<template v-if="item.product.shopID == shopId">
-									<view
-										class="title-none"
-										v-if="item.product.priceFlag === 1"
-									>
+									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="
-											PromotionsFormat(item.product.promotions) ? 'none' : ''
-										"
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -249,17 +201,12 @@
 							</template>
 						</template>
 						<template v-else>
-							<view
-								class="price tui-skeleton-rect"
-								v-if="item.product.detailTalkFlag == '2'"
-							>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
 								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
-								<text class="p big">{{
-									item.product.price | NumFormat
-								}}</text>
+								<text class="p big">{{ item.product.price | NumFormat }}</text>
 							</view>
 						</template>
 					</view>
@@ -267,10 +214,7 @@
 						<template v-if="item.product.productCategory == 1">
 							<view class="p-stars">
 								<text class="p-no">¥</text>
-								<uni-grader
-									:grade="Number(item.product.priceGrade)"
-									:margin="14"
-								></uni-grader>
+								<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
 							</view>
 						</template>
 						<template v-else>
@@ -359,40 +303,41 @@ export default {
 </script>
 
 <style lang="scss">
-	.section_page_main {
+.section_page_main {
 	width: 100%;
 	height: auto;
 	box-sizing: border-box;
-	
-	.floor-item-ad{
+
+	.floor-item-ad {
 		width: 100%;
 		margin-bottom: 20rpx;
-		.floor-item-left,.floor_item_right{
+		.floor-item-left,
+		.floor_item_right {
 			width: 339rpx;
 			height: 516rpx;
 		}
-		.floor-item-left{
+		.floor-item-left {
 			margin-right: 20rpx;
 			float: left;
-			.item-img-gg{
+			.item-img-gg {
 				width: 339rpx;
 				height: 516rpx;
 				border-radius: 16rpx;
 			}
 		}
-		.floor_item_right{
+		.floor_item_right {
 			float: left;
 			.item-img-gg {
 				width: 100%;
 				height: 246rpx;
 				display: block;
 				border-radius: 16rpx;
-				&:nth-child(1){
-					margin-bottom:24rpx;
+				&:nth-child(1) {
+					margin-bottom: 24rpx;
 				}
 			}
 		}
-		&.ad-row2{
+		&.ad-row2 {
 			width: 100%;
 			margin: 24rpx 0;
 			.item-img-gg {
@@ -401,7 +346,7 @@ export default {
 				float: left;
 				display: block;
 				border-radius: 16rpx;
-				&:nth-child(1){
+				&:nth-child(1) {
 					margin-right: 20rpx;
 				}
 			}
@@ -420,7 +365,7 @@ export default {
 		float: left;
 		box-sizing: border-box;
 		position: relative;
-		
+
 		&:nth-child(even) {
 			margin-right: 0;
 		}
@@ -461,13 +406,13 @@ export default {
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.floor-item-act{
+		.floor-item-act {
 			display: block;
 			width: 100%;
 			height: 32rpx;
 			text-align: center;
 			box-sizing: border-box;
-			.coupon-tags{
+			.coupon-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
@@ -476,24 +421,24 @@ export default {
 				color: #f94b4b;
 				text-align: center;
 				display: inline-block;
-				padding:0 10rpx;
+				padding: 0 10rpx;
 				font-size: $font-size-20;
 				border: 1px solid #f94b4b;
 				float: left;
 				margin-right: 12rpx;
 			}
-			.floor-tags{
+			.floor-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
-				background-color: #FFFFFF;
+				background-color: #ffffff;
 				line-height: 28rpx;
 				color: $color-system;
 				text-align: center;
 				display: inline-block;
-				padding:0 16rpx;
+				padding: 0 16rpx;
 				font-size: $font-size-20;
-				border: 1px solid #E15616;
+				border: 1px solid #e15616;
 				float: left;
 			}
 		}

+ 293 - 244
components/cm-module/pageTemplate/templateA.vue

@@ -1,18 +1,28 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill" >
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 3" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 3"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -20,35 +30,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -56,46 +74,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -111,11 +155,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -123,243 +165,250 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateA",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateA',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			this.$api
+				.getStorage()
+				.then(resolve => {
+					this.shopId = resolve.shopId ? resolve.shopId : 0
+				})
+				.catch(err => {
+					console.log('err', err)
+				})
 		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
 			}
+			return false
 		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		created(){
-			this.initData(this.pageData)
+		navToDetailPage(pros) {
+			//跳转
+			this.$api.FlooryNavigateTo(pros)
 		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				this.$api.getStorage().then((resolve) =>{
-					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
-				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
-				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
-			},
-			
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 303 - 249
components/cm-module/pageTemplate/templateB.vue

@@ -1,30 +1,44 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage2" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType2,
 						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
 						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 2" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 2"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -32,35 +46,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -68,46 +90,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -123,11 +171,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -135,243 +181,251 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateB",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateB',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 333 - 279
components/cm-module/pageTemplate/templateC.vue

@@ -1,30 +1,44 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage2" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType2,
 						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
 						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 3" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 3"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -32,35 +46,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -68,46 +90,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -123,11 +171,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -135,276 +181,284 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateC",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateC',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			.item-img-gg {
+				width: 100%;
+				height: 240rpx;
+				display: block;
+				border-radius: 16rpx;
+			}
+		}
+		&.ad_02 {
+			margin-right: 20rpx;
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
-				width: 100%;
-				height: 240rpx;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&.ad_02{
-				margin-right: 20rpx;
-			}	
-			&:nth-child(odd){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 8rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			margin-bottom: 20rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
-				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
+				float: left;
+				margin-right: 12rpx;
 			}
-			.floor-item_tag{
-				width: 100%;
+			.floor-tags {
 				height: 32rpx;
-				float: left;
-				margin: 8rpx 0;
-				padding: 0 20rpx;
 				box-sizing: border-box;
-				margin-bottom: 20rpx;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 323 - 265
components/cm-module/pageTemplate/templateD.vue

@@ -1,42 +1,60 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_02">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage2" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType2,
 						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
 						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 		<view class="floor-item ad_03">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage3" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage3"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType3,
 						floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 						floorData.floorContent.adsLink3,
 						floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 2" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 2"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -44,35 +62,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -80,46 +106,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -135,11 +187,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -147,254 +197,262 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateD",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateD',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
-			width: 339rpx;
-			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
-			border-radius: 16rpx;
-			margin-bottom: 20rpx;
-			float: left;
-			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			margin-right: 0;
+			.item-img-gg {
 				width: 100%;
 				height: 240rpx;
-				margin-right: 0;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&:nth-child(odd){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
 				display: block;
 				border-radius: 16rpx;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
+			width: 339rpx;
+			height: 516rpx;
+			display: block;
+			border-radius: 16rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 307 - 257
components/cm-module/pageTemplate/templateE.vue

@@ -1,18 +1,28 @@
 <template>
 	<view class="section_page_main clearfix">
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 4" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 4"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -20,35 +30,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -56,46 +74,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -111,11 +155,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -123,256 +165,264 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateE",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateE',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
-			width: 339rpx;
-			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
-			border-radius: 16rpx;
-			margin-bottom: 20rpx;
-			float: left;
-			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			.item-img-gg {
 				width: 100%;
 				height: 240rpx;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&.ad_02{
-				margin-right: 20rpx;
-			}	
-			&:nth-child(odd){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
 				display: block;
 				border-radius: 16rpx;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		&.ad_02 {
+			margin-right: 20rpx;
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
+			width: 339rpx;
+			height: 516rpx;
+			display: block;
+			border-radius: 16rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 322 - 272
components/cm-module/pageTemplate/templateF.vue

@@ -1,6 +1,12 @@
 <template>
 	<view class="section_page_main clearfix">
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 4" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 4"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -8,35 +14,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -44,46 +58,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -99,298 +139,308 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>		
+					</view>
 				</view>
 			</view>
 		</view>
 		<view class="floor-item ad_01">
-			<image 	class="item-img-gg" 
-					:src="floorData.floorContent.appletsAdsImage1" 
-					@click="BannerNavigateTo(
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
 						floorData.floorContent.linkType1,
 						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
 						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
-					)"
-					mode="aspectFill">
+					)
+				"
+				mode="aspectFill"
+			>
 			</image>
 		</view>
 	</view>
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateF",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateF',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			margin-right: 0;
+			.item-img-gg {
+				width: 100%;
+				height: 240rpx;
+				display: block;
+				border-radius: 16rpx;
+			}
+		}
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&.ad_01{
-				width: 100%;
-				height: 240rpx;
-				margin-right: 0;
-				.item-img-gg{
-					width: 100%;
-					height: 240rpx;
-					display: block;
-					border-radius: 16rpx;
-				}
-			}
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 8rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			margin-bottom: 20rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
-				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
+				float: left;
+				margin-right: 12rpx;
 			}
-			.floor-item_tag{
-				width: 100%;
+			.floor-tags {
 				height: 32rpx;
-				float: left;
-				margin: 8rpx 0;
-				padding: 0 20rpx;
 				box-sizing: border-box;
-				margin-bottom: 20rpx;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-28;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 282 - 237
components/cm-module/pageTemplate/templateG.vue

@@ -1,6 +1,12 @@
 <template>
 	<view class="section_page_main clearfix">
-		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" v-if="idx < 4" :key="idx" @click.stop="navToDetailPage(item)">
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			v-if="idx < 4"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
 			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 			<view class="floor-item_tag" v-if="item.listType == 2">
 				<text>{{ item.label }}</text>
@@ -8,35 +14,43 @@
 			<view class="floor-item-content">
 				<view class="title tui-skeleton-rect">
 					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
-							<template v-if="item.product.actStatus===1">
+							<template v-if="item.product.actStatus === 1">
 								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-									{{item.product.promotions.name}}
-									<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.priceFlag != 1"
+										>:¥{{ item.product.price | NumFormat }}</text
+									>
 								</view>
-								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-								<view class="floor-tags">阶梯价格</view>	
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
+								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
-					</view>	
+					</view>
 					<view v-if="hasLogin">
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
@@ -44,46 +58,72 @@
 									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.originalPrice
+												: item.product.price) | NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 								<template v-else>
 									<view class="no-price">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
-									</view>	
+									</view>
 								</template>
 							</template>
-							<template v-else-if="userIdentity ===4">
+							<template v-else-if="userIdentity === 4">
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="title-none"  v-if="item.product.priceFlag === 2">
+								<view class="title-none" v-if="item.product.priceFlag === 2">
 									<text class="p big">¥价格仅会员可见</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.priceFlag === 0"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
 							<template v-else>
 								<view class="title-none" v-if="item.product.priceFlag === 1">
 									<text class="p big">¥未公开价格</text>
 								</view>
-								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
 									<text class="p sm">¥</text>
-									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.originalPrice
+											: item.product.price) | NumFormat
+									}}</text>
 								</view>
 							</template>
-						</template>	
+						</template>
 						<template v-else>
 							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-								<text class="p sm">¥</text>
-								<text class="p big">价格详聊</text>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
@@ -99,11 +139,9 @@
 							</view>
 						</template>
 						<template v-else>
-							<view class="p-stars">
-								<text class="p-no">¥登录可见</text>
-							</view>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 						</template>
-					</view>	
+					</view>
 				</view>
 			</view>
 		</view>
@@ -111,241 +149,248 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateG",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateG',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
-			}
-		},
-		data() {
-			return{
-				shopId:0,
-				floorData:{}
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
-		},
-		created(){
-			this.initData(this.pageData)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.floorData = data
-				// console.log(this.floorData)
-				this.$api.getStorage().then((resolve) =>{
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.floorData = data
+			// console.log(this.floorData)
+			this.$api
+				.getStorage()
+				.then(resolve => {
 					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
 				})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
+				.catch(err => {
+					console.log('err', err)
+				})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-				return false
-			},
-			
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
 			}
+			return false
+		},
+
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
-		width: 100%;
-		height: auto;
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
 		box-sizing: border-box;
-		.floor-item{
+		position: relative;
+		&:nth-child(2n) {
+			margin-right: 0;
+		}
+		.item-img-gg {
 			width: 339rpx;
 			height: 516rpx;
-			margin-right: 20rpx;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #FFFFFF;
-			line-height: 36rpx;
+			display: block;
 			border-radius: 16rpx;
-			margin-bottom: 20rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
 			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
 			box-sizing: border-box;
-			position: relative;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.item-img-gg{
-				width: 339rpx;
-				height: 516rpx;
-				display: block;
-				border-radius: 16rpx;
-			}
-			.item-img{
-				width: 339rpx;
-				height: 339rpx;
-				border-radius: 16rpx 16rpx 0 0;
-				display: block;
-				margin-bottom: 8rpx;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
 			}
-			.floor-item_tag{
-				width: 100%;
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+			.coupon-tags {
 				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
 				float: left;
-				margin: 20rpx 0;
-				padding: 0 20rpx;
+				margin-right: 12rpx;
+			}
+			.floor-tags {
+				height: 32rpx;
 				box-sizing: border-box;
-				text{
-					display: inline-block;
-					padding: 0 8rpx;
-					border: 1px solid #e3ebf7;
-					border-radius: 8rpx ;
-					color: #9aa5b5;
-					font-size: $font-size-22;
-					line-height: 32rpx;
-					text-align: center;
-					float: left;
-				}
+				border-radius: 8rpx;
+				background-color: #ffffff;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding: 0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #e15616;
+				float: left;
 			}
-			.floor-item-content{
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
 				width: 100%;
-				padding: 0 20rpx;
-				box-sizing: border-box;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
 			}
-			.floor-item-act{
+			.mclap-tag {
 				display: block;
-				width: 100%;
+				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;
-				box-sizing: border-box;
-				.coupon-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #fff1eb;
-					line-height: 28rpx;
-					color: #f94b4b;
-					text-align: center;
-					display: inline-block;
-					padding:0 10rpx;
-					font-size: $font-size-20;
-					border: 1px solid #f94b4b;
-					float: left;
-					margin-right: 12rpx;
-				}
-				.floor-tags{
-					height: 32rpx;
-					box-sizing: border-box;
-					border-radius: 8rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
-					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
-					float: left;
-				}
+				position: absolute;
+				left: 0;
+				top: 0;
 			}
-			.title-none{
-				font-size: $font-size-26;
-				color: #FF2A2A;
-				line-height: 54rpx;
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-30;
+				color: $text-color;
+				display: block;
+				float: left;
 			}
-			.title{
-				width: 100%;
-				height: 70rpx;
-				display: flex;
-				line-height: 35rpx;
-				flex-direction: column;
-				margin: 8rpx 0;
-				padding: 0;
-				position: relative;
-				.mclap{
-					width: 100%;
-					line-height:35rpx;
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					font-size: 26rpx;
-					&.indent{
-						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: 0;
-				}
+			.p-stars {
+				float: left;
 			}
-			.no-price{
-				height: 54rpx;
-				line-height: 54rpx;
-				display: flex;
-				box-sizing: border-box;
-				.p-no{
-					font-size: $font-size-30;
-					color: $text-color;
-					display: block;
-					float: left;
-				}
-				.p-stars{
-					float: left;
-				}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
 			}
-			.price{
-				color: #FF2A2A;
-				line-height:54rpx;
-				&.none{
-					text-decoration: line-through;
-					color: #999999;
-				}
-				.sm{
-					font-size: $font-size-24;
-				}
-				.big{
-					font-size: $font-size-28;
-				}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
 			}
 		}
 	}
+}
 </style>

+ 364 - 296
components/cm-module/pageTemplate/templateH.vue

@@ -1,9 +1,22 @@
 <template>
 	<view class="section_page_main clearfix">
-		<view class="recommend-list" :style="hasLessProduct?'height:269px':''">
-			<swiper class="tui-banner-swiper" :autoplay="true" :interval="5000" :duration="500" :circular="true" @change="swiperChange" :style="hasLessProduct?'height:269px':''">
-				<swiper-item v-for="(product,index) in productList" :key="index">
-					<view class="floor-item ad_04 clearfix" v-for="(item, idx) in product" :key="idx" @click.stop="navToDetailPage(item)">
+		<view class="recommend-list" :style="hasLessProduct ? 'height:269px' : ''">
+			<swiper
+				class="tui-banner-swiper"
+				:autoplay="true"
+				:interval="5000"
+				:duration="500"
+				:circular="true"
+				@change="swiperChange"
+				:style="hasLessProduct ? 'height:269px' : ''"
+			>
+				<swiper-item v-for="(product, index) in productList" :key="index">
+					<view
+						class="floor-item ad_04 clearfix"
+						v-for="(item, idx) in product"
+						:key="idx"
+						@click.stop="navToDetailPage(item)"
+					>
 						<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
 						<view class="floor-item_tag" v-if="item.listType == 2">
 							<text>{{ item.label }}</text>
@@ -11,35 +24,51 @@
 						<view class="floor-item-content">
 							<view class="title tui-skeleton-rect">
 								<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
-								<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+								<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+									>{{ item.name }}
+								</text>
 							</view>
 							<view class="floor-item-price" v-if="item.listType == 1">
 								<view class="floor-item-act">
+									<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 									<template v-if="userIdentity === 3">
-										<template v-if="item.product.actStatus===1">
+										<template v-if="item.product.actStatus === 1">
 											<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-												{{item.product.promotions.name}}
-												<text v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId">:¥{{item.product.price | NumFormat}}</text>
+												{{ item.product.promotions.name }}
+												<text
+													v-if="
+														hasLogin &&
+															item.product.priceFlag != 1 &&
+															item.product.shopID == shopId
+													"
+													>:¥{{ item.product.price | NumFormat }}</text
+												>
 											</view>
-											<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+											<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 										</template>
-										<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-											<view class="floor-tags">阶梯价格</view>	
+										<template
+											v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1"
+										>
+											<view class="floor-tags">阶梯价格</view>
 										</template>
-									</template>	
+									</template>
 									<template v-else>
-										<template v-if="item.product.actStatus===1">
+										<template v-if="item.product.actStatus === 1">
 											<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
-												{{item.product.promotions.name}}
-												<text v-if="hasLogin && item.product.priceFlag != 1">:¥{{item.product.price | NumFormat}}</text>
+												{{ item.product.promotions.name }}
+												<text v-if="hasLogin && item.product.priceFlag != 1"
+													>:¥{{ item.product.price | NumFormat }}</text
+												>
 											</view>
-											<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+											<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 										</template>
-										<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
-											<view class="floor-tags">阶梯价格</view>	
+										<template
+											v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1"
+										>
+											<view class="floor-tags">阶梯价格</view>
 										</template>
 									</template>
-								</view>	
+								</view>
 								<view v-if="hasLogin">
 									<template v-if="item.product.productCategory == 1">
 										<template v-if="userIdentity == 3">
@@ -47,46 +76,72 @@
 												<view class="title-none" v-if="item.product.priceFlag === 1">
 													<text class="p big">¥未公开价格</text>
 												</view>
-												<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+												<view
+													class="price tui-skeleton-rect"
+													v-else
+													:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+												>
 													<text class="p sm">¥</text>
-													<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+													<text class="p big">{{
+														(PromotionsFormat(item.product.promotions)
+															? item.product.originalPrice
+															: item.product.price) | NumFormat
+													}}</text>
 												</view>
-											</template>	
+											</template>
 											<template v-else>
 												<view class="no-price">
 													<view class="p-stars">
 														<text class="p-no">¥</text>
-														<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+														<uni-grader
+															:grade="Number(item.product.priceGrade)"
+															:margin="14"
+														></uni-grader>
 													</view>
-												</view>	
+												</view>
 											</template>
 										</template>
-										<template v-else-if="userIdentity ===4">
+										<template v-else-if="userIdentity === 4">
 											<view class="title-none" v-if="item.product.priceFlag === 1">
 												<text class="p big">¥未公开价格</text>
 											</view>
-											<view class="title-none"  v-if="item.product.priceFlag === 2">
+											<view class="title-none" v-if="item.product.priceFlag === 2">
 												<text class="p big">¥价格仅会员可见</text>
 											</view>
-											<view class="price tui-skeleton-rect" v-if="item.product.priceFlag === 0" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+											<view
+												class="price tui-skeleton-rect"
+												v-if="item.product.priceFlag === 0"
+												:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+											>
 												<text class="p sm">¥</text>
-												<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+												<text class="p big">{{
+													(PromotionsFormat(item.product.promotions)
+														? item.product.originalPrice
+														: item.product.price) | NumFormat
+												}}</text>
 											</view>
 										</template>
 										<template v-else>
 											<view class="title-none" v-if="item.product.priceFlag === 1">
 												<text class="p big">¥未公开价格</text>
 											</view>
-											<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+											<view
+												class="price tui-skeleton-rect"
+												v-else
+												:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+											>
 												<text class="p sm">¥</text>
-												<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.originalPrice : item.product.price ) | NumFormat}}</text>
+												<text class="p big">{{
+													(PromotionsFormat(item.product.promotions)
+														? item.product.originalPrice
+														: item.product.price) | NumFormat
+												}}</text>
 											</view>
 										</template>
-									</template>	
+									</template>
 									<template v-else>
 										<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
-											<text class="p sm">¥</text>
-											<text class="p big">价格详聊</text>
+											<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 										</view>
 										<view class="price tui-skeleton-rect" v-else>
 											<text class="p sm">¥</text>
@@ -98,321 +153,334 @@
 									<template v-if="item.product.productCategory == 1">
 										<view class="p-stars">
 											<text class="p-no">¥</text>
-											<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
+											<uni-grader
+												:grade="Number(item.product.priceGrade)"
+												:margin="14"
+											></uni-grader>
 										</view>
 									</template>
 									<template v-else>
-										<view class="p-stars">
-											<text class="p-no">¥登录可见</text>
-										</view>
+										<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
 									</template>
-								</view>	
+								</view>
 							</view>
 						</view>
 					</view>
 				</swiper-item>
 			</swiper>
 			<view class="swiper__recommenddots-box" v-if="productList.length > 1">
-				<view v-for="(item,idx) in productList" 
-					  :key="idx" 
-					  :class="[idx===swiperCurrent?'swiper__dots-long':'none']" 
-					  :data-index="swiperCurrent" class="swiper__dots-item">
-				</view>	  
+				<view
+					v-for="(item, idx) in productList"
+					:key="idx"
+					:class="[idx === swiperCurrent ? 'swiper__dots-long' : 'none']"
+					:data-index="swiperCurrent"
+					class="swiper__dots-item"
+				>
+				</view>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	export default{
-		name:"templateH",
-		components:{
-			uniGrader
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateH',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
 		},
-		props:{
-			pageData:{
-				type:Object
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			productList: [],
+			current: 100,
+			swiperCurrent: 0,
+			pageSize: 4,
+			productCount: 0
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity']),
+		hasLessProduct() {
+			return this.productCount <= 2
+		}
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
 			},
-			userIdentity:{
-				type:Number
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.$api
+				.getStorage()
+				.then(resolve => {
+					this.shopId = resolve.shopId ? resolve.shopId : 0
+				})
+				.catch(err => {
+					console.log('err', err)
+				})
+			this.productCount = data.floorImageList.length
+			if (this.productCount > 0) {
+				this.productList.splice(0, this.productList.length)
+				for (var i = 0, j = data.floorImageList.length; i < j; i += this.pageSize) {
+					this.productList.push(data.floorImageList.slice(i, i + this.pageSize))
+				}
 			}
 		},
-		data() {
-			return{
-				shopId:0,
-				productList:[],
-				current:100,
-				swiperCurrent:0,
-				pageSize:4,
-				productCount:0
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
 			}
+			return false
 		},
-		filters: {
-			NumFormat:function(text) {//处理金额				
-				return Number(text).toFixed(2);			
-			},		
+		tabClick(index) {
+			//轮播图切换
+			this.current = index
 		},
-		created(){
-			this.initData(this.pageData)
+		swiperChange(e) {
+			//轮播切换
+			const index = e.detail.current
+			this.swiperCurrent = index
 		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity']),
-			hasLessProduct(){
-				return this.productCount <= 2
-			}
-		},
-		watch: {
-			pageData: {
-				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-					this.pageData = el
-					this.initData(this.pageData)
-				},
-				deep: true
-			}
-		},
-		methods:{
-			initData(data){
-				this.$api.getStorage().then((resolve) =>{
-					this.shopId = resolve.shopId ? resolve.shopId : 0
-				}).catch(err => {
-					console.log('err',err)
-				})
-				this.productCount = data.floorImageList.length
-				if(this.productCount>0){
-					this.productList.splice(0,this.productList.length);
-					for (var i = 0, j = data.floorImageList.length; i < j; i += this.pageSize) {
-						this.productList.push(data.floorImageList.slice(i, i + this.pageSize));
-					}
-				}
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
-				}
-				return false
-			},
-			tabClick(index) {//轮播图切换
-				this.current = index;
-			},
-			swiperChange(e) {//轮播切换
-				const index = e.detail.current;
-				this.swiperCurrent = index;
-			},
-			navToDetailPage(pros) {//跳转商品详情页
-				this.$api.FlooryNavigateTo(pros)
-			}
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.section_page_main{
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.recommend-list {
 		width: 100%;
-		height: auto;
-		box-sizing: border-box;
-		.recommend-list{
+		height: 1100rpx;
+		position: relative;
+		padding-bottom: 20rpx;
+		.tui-banner-swiper {
 			width: 100%;
+			margin: 0 auto;
+			background: #f7f7f7;
 			height: 1100rpx;
-			position: relative;
-			padding-bottom: 20rpx;
-			.tui-banner-swiper {
-				width: 100%;
-				margin: 0 auto;
-				background: #F7F7F7;
-				height: 1100rpx;
-				overflow: hidden;
-				transform: translateY(0);
-				.floor-item{
+			overflow: hidden;
+			transform: translateY(0);
+			.floor-item {
+				width: 339rpx;
+				height: 516rpx;
+				margin-right: 20rpx;
+				font-size: $font-size-24;
+				color: $text-color;
+				background: #ffffff;
+				line-height: 36rpx;
+				border-radius: 16rpx;
+				margin-bottom: 20rpx;
+				float: left;
+				box-sizing: border-box;
+				position: relative;
+				&:nth-child(2n) {
+					margin-right: 0;
+				}
+				.item-img {
 					width: 339rpx;
-					height: 516rpx;
-					margin-right: 20rpx;
-					font-size: $font-size-24;
-					color: $text-color;
-					background: #FFFFFF;
-					line-height: 36rpx;
-					border-radius: 16rpx;
-					margin-bottom: 20rpx;
+					height: 339rpx;
+					border-radius: 16rpx 16rpx 0 0;
+					display: block;
+					margin-bottom: 8rpx;
+				}
+				.floor-item_tag {
+					width: 100%;
+					height: 32rpx;
 					float: left;
+					margin: 20rpx 0;
+					padding: 0 20rpx;
 					box-sizing: border-box;
-					position: relative;
-					&:nth-child(2n){
-						margin-right: 0;
-					}
-					.item-img{
-						width: 339rpx;
-						height: 339rpx;
-						border-radius: 16rpx 16rpx 0 0;
-						display: block;
-						margin-bottom: 8rpx;
+					text {
+						display: inline-block;
+						padding: 0 8rpx;
+						border: 1px solid #e3ebf7;
+						border-radius: 8rpx;
+						color: #9aa5b5;
+						font-size: $font-size-22;
+						line-height: 32rpx;
+						text-align: center;
+						float: left;
 					}
-					.floor-item_tag{
-						width: 100%;
+				}
+				.floor-item-content {
+					width: 100%;
+					padding: 0 20rpx;
+					box-sizing: border-box;
+				}
+				.floor-item-act {
+					display: block;
+					width: 100%;
+					height: 32rpx;
+					text-align: center;
+					box-sizing: border-box;
+					.coupon-tags {
 						height: 32rpx;
+						box-sizing: border-box;
+						border-radius: 8rpx;
+						background-color: #fff1eb;
+						line-height: 28rpx;
+						color: #f94b4b;
+						text-align: center;
+						display: inline-block;
+						padding: 0 10rpx;
+						font-size: $font-size-20;
+						border: 1px solid #f94b4b;
 						float: left;
-						margin: 20rpx 0;
-						padding: 0 20rpx;
+						margin-right: 12rpx;
+					}
+					.floor-tags {
+						height: 32rpx;
 						box-sizing: border-box;
-						text{
-							display: inline-block;
-							padding: 0 8rpx;
-							border: 1px solid #e3ebf7;
-							border-radius: 8rpx ;
-							color: #9aa5b5;
-							font-size: $font-size-22;
-							line-height: 32rpx;
-							text-align: center;
-							float: left;
-						}
+						border-radius: 8rpx;
+						background-color: #ffffff;
+						line-height: 28rpx;
+						color: $color-system;
+						text-align: center;
+						display: inline-block;
+						padding: 0 16rpx;
+						font-size: $font-size-20;
+						border: 1px solid #e15616;
+						float: left;
 					}
-					.floor-item-content{
+				}
+				.title-none {
+					font-size: $font-size-26;
+					color: #ff2a2a;
+					line-height: 54rpx;
+				}
+				.title {
+					width: 100%;
+					height: 70rpx;
+					display: flex;
+					line-height: 35rpx;
+					flex-direction: column;
+					margin: 8rpx 0;
+					padding: 0;
+					position: relative;
+					.mclap {
 						width: 100%;
-						padding: 0 20rpx;
-						box-sizing: border-box;
+						line-height: 35rpx;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 2;
+						overflow: hidden;
+						font-size: 26rpx;
+						&.indent {
+							text-indent: 95rpx;
+						}
 					}
-					.floor-item-act{
+					.mclap-tag {
 						display: block;
-						width: 100%;
+						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;
-						box-sizing: border-box;
-						.coupon-tags{
-							height: 32rpx;
-							box-sizing: border-box;
-							border-radius: 8rpx;
-							background-color: #fff1eb;
-							line-height: 28rpx;
-							color: #f94b4b;
-							text-align: center;
-							display: inline-block;
-							padding:0 10rpx;
-							font-size: $font-size-20;
-							border: 1px solid #f94b4b;
-							float: left;
-							margin-right: 12rpx;
-						}
-						.floor-tags{
-							height: 32rpx;
-							box-sizing: border-box;
-							border-radius: 8rpx;
-							background-color: #FFFFFF;
-							line-height: 28rpx;
-							color: $color-system;
-							text-align: center;
-							display: inline-block;
-							padding:0 16rpx;
-							font-size: $font-size-20;
-							border: 1px solid #E15616;
-							float: left;
-						}
+						position: absolute;
+						left: 0;
+						top: 0;
+					}
+				}
+				.no-price {
+					height: 54rpx;
+					line-height: 54rpx;
+					display: flex;
+					box-sizing: border-box;
+					.p-no {
+						font-size: $font-size-28;
+						color: $text-color;
+						display: block;
+						float: left;
 					}
-					.title-none{
-						font-size: $font-size-26;
-						color: #FF2A2A;
-						line-height: 54rpx;
+					.p-stars {
+						float: left;
 					}
-					.title{
-						width: 100%;
-						height: 70rpx;
-						display: flex;
-						line-height: 35rpx;
-						flex-direction: column;
-						margin: 8rpx 0;
-						padding: 0;
-						position: relative;
-						.mclap{
-							width: 100%;
-							line-height:35rpx;
-							text-overflow:ellipsis;
-							display: -webkit-box;
-							word-break: break-all;
-							-webkit-box-orient: vertical;
-							-webkit-line-clamp: 2;
-							overflow: hidden;
-							font-size: 26rpx;
-							&.indent{
-								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: 0;
-						}
+				}
+				.price {
+					color: #ff2a2a;
+					line-height: 54rpx;
+					&.none {
+						text-decoration: line-through;
+						color: #999999;
 					}
-					.no-price{
-						height: 54rpx;
-						line-height: 54rpx;
-						display: flex;
-						box-sizing: border-box;
-						.p-no{
-							font-size: $font-size-28;
-							color: $text-color;
-							display: block;
-							float: left;
-						}
-						.p-stars{
-							float: left;
-						}
+					.sm {
+						font-size: $font-size-24;
 					}
-					.price{
-						color: #FF2A2A;
-						line-height:54rpx;
-						&.none{
-							text-decoration: line-through;
-							color: #999999;
-						}
-						.sm{
-							font-size: $font-size-24;
-						}
-						.big{
-							font-size: $font-size-28;
-						}
+					.big {
+						font-size: $font-size-28;
 					}
 				}
 			}
-		}	
-		.swiper__recommenddots-box{
-			position: absolute;
-			bottom: 0;
-			left: 0;
-			right: 0;
-			/* #ifndef APP-NVUE */
-			display: flex;
-			/* #endif */
-			flex: 1;
-			flex-direction: row;
-			justify-content: center;
-			align-items: center;
-			height: 60rpx;
-			.swiper__dots-item{
-				width: 8rpx;
-				height: 8rpx;
-				border-radius: 100%;
-				margin-left: 6px;
-				background-color:rgba(225,86,22,.3);
-			}
-			.swiper__dots-long{
-				width: 32rpx;
-				height: 8rpx;
-				border-radius: 4rpx;
-				background-color: #e15616;
-				transition: all 0.4s;
-			}
 		}
 	}
+	.swiper__recommenddots-box {
+		position: absolute;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		height: 60rpx;
+		.swiper__dots-item {
+			width: 8rpx;
+			height: 8rpx;
+			border-radius: 100%;
+			margin-left: 6px;
+			background-color: rgba(225, 86, 22, 0.3);
+		}
+		.swiper__dots-long {
+			width: 32rpx;
+			height: 8rpx;
+			border-radius: 4rpx;
+			background-color: #e15616;
+			transition: all 0.4s;
+		}
+	}
+}
 </style>

+ 28 - 75
components/cm-module/pageTemplate/templateI.vue

@@ -7,13 +7,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType1,
-						floorData.floorContent.linkParam1.id
-							? floorData.floorContent.linkParam1.id
-							: '',
+						floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 						floorData.floorContent.adsLink1,
-						floorData.floorContent.linkParam1.keyword
-							? floorData.floorContent.linkParam1.keyword
-							: ''
+						floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -27,13 +23,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType2,
-						floorData.floorContent.linkParam2.id
-							? floorData.floorContent.linkParam2.id
-							: '',
+						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
-						floorData.floorContent.linkParam2.keyword
-							? floorData.floorContent.linkParam2.keyword
-							: ''
+						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -47,13 +39,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType3,
-						floorData.floorContent.linkParam3.id
-							? floorData.floorContent.linkParam3.id
-							: '',
+						floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 						floorData.floorContent.adsLink3,
-						floorData.floorContent.linkParam3.keyword
-							? floorData.floorContent.linkParam3.keyword
-							: ''
+						floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -80,56 +68,33 @@
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text
-										v-if="
-											hasLogin &&
-												item.product.priceFlag != 1 &&
-												item.product.shopID == shopId
-										"
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
 						<template v-else>
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text v-if="hasLogin && item.product.priceFlag != 1"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
@@ -138,18 +103,13 @@
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
 								<template v-if="item.product.shopID == shopId">
-									<view
-										class="title-none"
-										v-if="item.product.priceFlag === 1"
-									>
+									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="
-											PromotionsFormat(item.product.promotions) ? 'none' : ''
-										"
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -210,17 +170,12 @@
 							</template>
 						</template>
 						<template v-else>
-							<view
-								class="price tui-skeleton-rect"
-								v-if="item.product.detailTalkFlag == '2'"
-							>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
 								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
-								<text class="p big">{{
-									item.product.price | NumFormat
-								}}</text>
+								<text class="p big">{{ item.product.price | NumFormat }}</text>
 							</view>
 						</template>
 					</view>
@@ -228,10 +183,7 @@
 						<template v-if="item.product.productCategory == 1">
 							<view class="p-stars">
 								<text class="p-no">¥</text>
-								<uni-grader
-									:grade="Number(item.product.priceGrade)"
-									:margin="14"
-								></uni-grader>
+								<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
 							</view>
 						</template>
 						<template v-else>
@@ -352,7 +304,8 @@ export default {
 			margin-right: 0;
 		}
 
-		&.ad_02,&.ad_03{
+		&.ad_02,
+		&.ad_03 {
 			width: 339rpx;
 			height: 260rpx;
 			.item-img-gg {
@@ -393,13 +346,13 @@ export default {
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.floor-item-act{
+		.floor-item-act {
 			display: block;
 			width: 100%;
 			height: 32rpx;
 			text-align: center;
 			box-sizing: border-box;
-			.coupon-tags{
+			.coupon-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
@@ -408,24 +361,24 @@ export default {
 				color: #f94b4b;
 				text-align: center;
 				display: inline-block;
-				padding:0 10rpx;
+				padding: 0 10rpx;
 				font-size: $font-size-20;
 				border: 1px solid #f94b4b;
 				float: left;
 				margin-right: 12rpx;
 			}
-			.floor-tags{
+			.floor-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
-				background-color: #FFFFFF;
+				background-color: #ffffff;
 				line-height: 28rpx;
 				color: $color-system;
 				text-align: center;
 				display: inline-block;
-				padding:0 16rpx;
+				padding: 0 16rpx;
 				font-size: $font-size-20;
-				border: 1px solid #E15616;
+				border: 1px solid #e15616;
 				float: left;
 			}
 		}

+ 36 - 83
components/cm-module/pageTemplate/templateJ.vue

@@ -8,13 +8,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType1,
-							floorData.floorContent.linkParam1.id
-								? floorData.floorContent.linkParam1.id
-								: '',
+							floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 							floorData.floorContent.adsLink1,
-							floorData.floorContent.linkParam1.keyword
-								? floorData.floorContent.linkParam1.keyword
-								: ''
+							floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -28,13 +24,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType2,
-							floorData.floorContent.linkParam2.id
-								? floorData.floorContent.linkParam2.id
-								: '',
+							floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 							floorData.floorContent.adsLink2,
-							floorData.floorContent.linkParam2.keyword
-								? floorData.floorContent.linkParam2.keyword
-								: ''
+							floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -46,13 +38,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType3,
-							floorData.floorContent.linkParam3.id
-								? floorData.floorContent.linkParam3.id
-								: '',
+							floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 							floorData.floorContent.adsLink3,
-							floorData.floorContent.linkParam3.keyword
-								? floorData.floorContent.linkParam3.keyword
-								: ''
+							floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -81,56 +69,33 @@
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text
-										v-if="
-											hasLogin &&
-												item.product.priceFlag != 1 &&
-												item.product.shopID == shopId
-										"
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
 						<template v-else>
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text v-if="hasLogin && item.product.priceFlag != 1"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
@@ -139,18 +104,13 @@
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
 								<template v-if="item.product.shopID == shopId">
-									<view
-										class="title-none"
-										v-if="item.product.priceFlag === 1"
-									>
+									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="
-											PromotionsFormat(item.product.promotions) ? 'none' : ''
-										"
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -211,17 +171,12 @@
 							</template>
 						</template>
 						<template v-else>
-							<view
-								class="price tui-skeleton-rect"
-								v-if="item.product.detailTalkFlag == '2'"
-							>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
 								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
-								<text class="p big">{{
-									item.product.price | NumFormat
-								}}</text>
+								<text class="p big">{{ item.product.price | NumFormat }}</text>
 							</view>
 						</template>
 					</view>
@@ -229,10 +184,7 @@
 						<template v-if="item.product.productCategory == 1">
 							<view class="p-stars">
 								<text class="p-no">¥</text>
-								<uni-grader
-									:grade="Number(item.product.priceGrade)"
-									:margin="14"
-								></uni-grader>
+								<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
 							</view>
 						</template>
 						<template v-else>
@@ -325,32 +277,33 @@ export default {
 	width: 100%;
 	height: auto;
 	box-sizing: border-box;
-	
-	.floor-item-ad{
+
+	.floor-item-ad {
 		width: 100%;
 		margin-bottom: 24rpx;
-		.floor-item-left,.floor_item_right{
+		.floor-item-left,
+		.floor_item_right {
 			width: 339rpx;
 			height: 516rpx;
 		}
-		.floor-item-left{
+		.floor-item-left {
 			margin-right: 20rpx;
 			float: left;
-			.item-img-gg{
+			.item-img-gg {
 				width: 339rpx;
 				height: 516rpx;
 				border-radius: 16rpx;
 			}
 		}
-		.floor_item_right{
+		.floor_item_right {
 			float: left;
 			.item-img-gg {
 				width: 100%;
 				height: 246rpx;
 				display: block;
 				border-radius: 16rpx;
-				&:nth-child(1){
-					margin-bottom:24rpx;
+				&:nth-child(1) {
+					margin-bottom: 24rpx;
 				}
 			}
 		}
@@ -368,7 +321,7 @@ export default {
 		float: left;
 		box-sizing: border-box;
 		position: relative;
-		
+
 		&:nth-child(odd) {
 			margin-right: 0;
 		}
@@ -409,13 +362,13 @@ export default {
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.floor-item-act{
+		.floor-item-act {
 			display: block;
 			width: 100%;
 			height: 32rpx;
 			text-align: center;
 			box-sizing: border-box;
-			.coupon-tags{
+			.coupon-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
@@ -424,24 +377,24 @@ export default {
 				color: #f94b4b;
 				text-align: center;
 				display: inline-block;
-				padding:0 10rpx;
+				padding: 0 10rpx;
 				font-size: $font-size-20;
 				border: 1px solid #f94b4b;
 				float: left;
 				margin-right: 12rpx;
 			}
-			.floor-tags{
+			.floor-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
-				background-color: #FFFFFF;
+				background-color: #ffffff;
 				line-height: 28rpx;
 				color: $color-system;
 				text-align: center;
 				display: inline-block;
-				padding:0 16rpx;
+				padding: 0 16rpx;
 				font-size: $font-size-20;
-				border: 1px solid #E15616;
+				border: 1px solid #e15616;
 				float: left;
 			}
 		}

+ 44 - 99
components/cm-module/pageTemplate/templateK.vue

@@ -8,13 +8,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType1,
-							floorData.floorContent.linkParam1.id
-								? floorData.floorContent.linkParam1.id
-								: '',
+							floorData.floorContent.linkParam1.id ? floorData.floorContent.linkParam1.id : '',
 							floorData.floorContent.adsLink1,
-							floorData.floorContent.linkParam1.keyword
-								? floorData.floorContent.linkParam1.keyword
-								: ''
+							floorData.floorContent.linkParam1.keyword ? floorData.floorContent.linkParam1.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -28,13 +24,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType2,
-							floorData.floorContent.linkParam2.id
-								? floorData.floorContent.linkParam2.id
-								: '',
+							floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 							floorData.floorContent.adsLink2,
-							floorData.floorContent.linkParam2.keyword
-								? floorData.floorContent.linkParam2.keyword
-								: ''
+							floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -46,13 +38,9 @@
 					@click="
 						BannerNavigateTo(
 							floorData.floorContent.linkType3,
-							floorData.floorContent.linkParam3.id
-								? floorData.floorContent.linkParam3.id
-								: '',
+							floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 							floorData.floorContent.adsLink3,
-							floorData.floorContent.linkParam3.keyword
-								? floorData.floorContent.linkParam3.keyword
-								: ''
+							floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 						)
 					"
 					mode="aspectFill"
@@ -60,7 +48,7 @@
 				</image>
 			</view>
 		</view>
-		
+
 		<view class="floor-item-ad ad-row2 clearfix">
 			<image
 				class="item-img-gg"
@@ -68,13 +56,9 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType2,
-						floorData.floorContent.linkParam2.id
-							? floorData.floorContent.linkParam2.id
-							: '',
+						floorData.floorContent.linkParam2.id ? floorData.floorContent.linkParam2.id : '',
 						floorData.floorContent.adsLink2,
-						floorData.floorContent.linkParam2.keyword
-							? floorData.floorContent.linkParam2.keyword
-							: ''
+						floorData.floorContent.linkParam2.keyword ? floorData.floorContent.linkParam2.keyword : ''
 					)
 				"
 				mode="aspectFill"
@@ -86,20 +70,16 @@
 				@click="
 					BannerNavigateTo(
 						floorData.floorContent.linkType3,
-						floorData.floorContent.linkParam3.id
-							? floorData.floorContent.linkParam3.id
-							: '',
+						floorData.floorContent.linkParam3.id ? floorData.floorContent.linkParam3.id : '',
 						floorData.floorContent.adsLink3,
-						floorData.floorContent.linkParam3.keyword
-							? floorData.floorContent.linkParam3.keyword
-							: ''
+						floorData.floorContent.linkParam3.keyword ? floorData.floorContent.linkParam3.keyword : ''
 					)
 				"
 				mode="aspectFill"
 			>
 			</image>
 		</view>
-		
+
 		<view
 			class="floor-item ad_04 clearfix"
 			v-for="(item, idx) in floorData.floorImageList"
@@ -120,56 +100,33 @@
 				</view>
 				<view class="floor-item-price" v-if="item.listType == 1">
 					<view class="floor-item-act">
+						<view class="coupon-tags" v-if="item.product.couponsLogo">优惠券</view>
 						<template v-if="userIdentity === 3">
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text
-										v-if="
-											hasLogin &&
-												item.product.priceFlag != 1 &&
-												item.product.shopID == shopId
-										"
+										v-if="hasLogin && item.product.priceFlag != 1 && item.product.shopID == shopId"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
 						<template v-else>
 							<template v-if="item.product.actStatus === 1">
-								<view
-									class="floor-tags"
-									v-if="PromotionsFormat(item.product.promotions)"
-								>
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
 									{{ item.product.promotions.name }}
 									<text v-if="hasLogin && item.product.priceFlag != 1"
 										>:¥{{ item.product.price | NumFormat }}</text
 									>
 								</view>
-								<view class="floor-tags" v-else>{{
-									item.product.promotions.name
-								}}</view>
+								<view class="floor-tags" v-else>{{ item.product.promotions.name }}</view>
 							</template>
-							<template
-								v-if="
-									item.product.actStatus === 0 &&
-										item.product.ladderPriceFlag === 1
-								"
-							>
+							<template v-if="item.product.actStatus === 0 && item.product.ladderPriceFlag === 1">
 								<view class="floor-tags">阶梯价格</view>
 							</template>
 						</template>
@@ -178,18 +135,13 @@
 						<template v-if="item.product.productCategory == 1">
 							<template v-if="userIdentity == 3">
 								<template v-if="item.product.shopID == shopId">
-									<view
-										class="title-none"
-										v-if="item.product.priceFlag === 1"
-									>
+									<view class="title-none" v-if="item.product.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="
-											PromotionsFormat(item.product.promotions) ? 'none' : ''
-										"
+										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -250,17 +202,12 @@
 							</template>
 						</template>
 						<template v-else>
-							<view
-								class="price tui-skeleton-rect"
-								v-if="item.product.detailTalkFlag == '2'"
-							>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
 								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
 							</view>
 							<view class="price tui-skeleton-rect" v-else>
 								<text class="p sm">¥</text>
-								<text class="p big">{{
-									item.product.price | NumFormat
-								}}</text>
+								<text class="p big">{{ item.product.price | NumFormat }}</text>
 							</view>
 						</template>
 					</view>
@@ -268,10 +215,7 @@
 						<template v-if="item.product.productCategory == 1">
 							<view class="p-stars">
 								<text class="p-no">¥</text>
-								<uni-grader
-									:grade="Number(item.product.priceGrade)"
-									:margin="14"
-								></uni-grader>
+								<uni-grader :grade="Number(item.product.priceGrade)" :margin="14"></uni-grader>
 							</view>
 						</template>
 						<template v-else>
@@ -364,36 +308,37 @@ export default {
 	width: 100%;
 	height: auto;
 	box-sizing: border-box;
-	
-	.floor-item-ad{
+
+	.floor-item-ad {
 		width: 100%;
 		margin-bottom: 20rpx;
-		.floor-item-left,.floor_item_right{
+		.floor-item-left,
+		.floor_item_right {
 			width: 339rpx;
 			height: 516rpx;
 		}
-		.floor-item-left{
+		.floor-item-left {
 			margin-right: 20rpx;
 			float: left;
-			.item-img-gg{
+			.item-img-gg {
 				width: 339rpx;
 				height: 516rpx;
 				border-radius: 16rpx;
 			}
 		}
-		.floor_item_right{
+		.floor_item_right {
 			float: left;
 			.item-img-gg {
 				width: 100%;
 				height: 246rpx;
 				display: block;
 				border-radius: 16rpx;
-				&:nth-child(1){
-					margin-bottom:24rpx;
+				&:nth-child(1) {
+					margin-bottom: 24rpx;
 				}
 			}
 		}
-		&.ad-row2{
+		&.ad-row2 {
 			width: 100%;
 			margin: 24rpx 0;
 			.item-img-gg {
@@ -402,7 +347,7 @@ export default {
 				float: left;
 				display: block;
 				border-radius: 16rpx;
-				&:nth-child(1){
+				&:nth-child(1) {
 					margin-right: 20rpx;
 				}
 			}
@@ -421,7 +366,7 @@ export default {
 		float: left;
 		box-sizing: border-box;
 		position: relative;
-		
+
 		&:nth-child(even) {
 			margin-right: 0;
 		}
@@ -462,13 +407,13 @@ export default {
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.floor-item-act{
+		.floor-item-act {
 			display: block;
 			width: 100%;
 			height: 32rpx;
 			text-align: center;
 			box-sizing: border-box;
-			.coupon-tags{
+			.coupon-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
@@ -477,24 +422,24 @@ export default {
 				color: #f94b4b;
 				text-align: center;
 				display: inline-block;
-				padding:0 10rpx;
+				padding: 0 10rpx;
 				font-size: $font-size-20;
 				border: 1px solid #f94b4b;
 				float: left;
 				margin-right: 12rpx;
 			}
-			.floor-tags{
+			.floor-tags {
 				height: 32rpx;
 				box-sizing: border-box;
 				border-radius: 8rpx;
-				background-color: #FFFFFF;
+				background-color: #ffffff;
 				line-height: 28rpx;
 				color: $color-system;
 				text-align: center;
 				display: inline-block;
-				padding:0 16rpx;
+				padding: 0 16rpx;
 				font-size: $font-size-20;
-				border: 1px solid #E15616;
+				border: 1px solid #e15616;
 				float: left;
 			}
 		}

+ 16 - 11
pages/search/search.vue

@@ -120,20 +120,26 @@
 						<view class="list-details-price">
 							<template v-if="userIdentity == 3">
 								<view class="floor-item-act" v-if="item.actStatus == 1">
-									<template v-if="item.actStatus == 1">
-										<view class="floor-tags" v-if="PromotionsFormat(item.promotions)"></view>
+									<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
+									<template>
+										<view class="floor-tags" v-if="PromotionsFormat(item.promotions)">
+											{{ item.promotions.name }}
+											<text v-if="hasLogin && userIdentity == 2 && item.priceFlag != 1"
+												>:¥{{ item.price | NumFormat }}</text
+											>
+										</view>
 										<view class="floor-tags" v-else>{{ item.promotions.name }}</view>
 									</template>
 								</view>
-								<view class="floor-item-act" v-if="item.actStatus == 0">
-									<view class="floor-tags" v-if="item.actStatus == 0 && item.ladderPriceFlag == 1"
-										>阶梯价格</view
-									>
+								<view class="floor-item-act" v-else>
+									<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
+									<view class="floor-tags" v-if="item.actStatus == 0 && item.ladderPriceFlag == 1">阶梯价格</view>
 								</view>
 							</template>
 							<template v-else>
 								<view class="floor-item-act" v-if="item.actStatus == 1">
-									<template v-if="item.actStatus == 1">
+									<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
+									<template>
 										<view class="floor-tags" v-if="PromotionsFormat(item.promotions)">
 											{{ item.promotions.name }}
 											<text v-if="hasLogin && userIdentity == 2 && item.priceFlag != 1"
@@ -143,10 +149,9 @@
 										<view class="floor-tags" v-else>{{ item.promotions.name }}</view>
 									</template>
 								</view>
-								<view class="floor-item-act" v-if="item.actStatus == 0">
-									<view class="floor-tags" v-if="item.actStatus == 0 && item.ladderPriceFlag == 1"
-										>阶梯价格</view
-									>
+								<view class="floor-item-act" v-else>
+									<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
+									<view class="floor-tags" v-if="item.actStatus == 0 && item.ladderPriceFlag == 1">阶梯价格</view>
 								</view>
 							</template>
 							<view v-if="hasLogin" class="list-price">

+ 692 - 563
pages/supplier/user/my-shop.vue

@@ -1,25 +1,52 @@
 <template>
-	<view class="container shop clearfix" :style="{paddingTop:CustomBar+'px'}">
+	<view class="container shop clearfix" :style="{ paddingTop: CustomBar + 'px' }">
 		<!-- 主页内容 -->
-		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
+		<tui-skeleton
+			v-if="skeletonShow"
+			backgroundColor="#fafafa"
+			borderRadius="10rpx"
+			:isLoading="true"
+			:loadingType="5"
+		></tui-skeleton>
 		<template v-else>
 			<view class="shop-search-main">
 				<view class="shop-search">
 					<text class="iconfont icon-sousuo"></text>
-					<input class="input" maxlength="20" type="text" value=""  @focus="onFocus" @input="onShowClose" v-model.trim="listQuery.keyword" confirm-type="search" @confirm="SubMitSearch()" placeholder="搜索本店铺商品" />
+					<input
+						class="input"
+						maxlength="20"
+						type="text"
+						value=""
+						@focus="onFocus"
+						@input="onShowClose"
+						v-model.trim="listQuery.keyword"
+						confirm-type="search"
+						@confirm="SubMitSearch()"
+						placeholder="搜索本店铺商品"
+					/>
 					<text class="iconfont icon-shanchu1" v-if="isShowClose" @click.stop="delInputText()"></text>
 				</view>
 			</view>
 			<view class="container-shop tui-skeleton">
 				<!-- 轮播 -->
 				<view class="product-supplier" @click="goSupplier">
-					<view class="logo"><img :src="shopLogo ? shopLogo : 'https://static.caimei365.com/app/img/icon/icon-shoplogo.png'" alt=""></view>
+					<view class="logo"
+						><img
+							:src="shopLogo ? shopLogo : 'https://static.caimei365.com/app/img/icon/icon-shoplogo.png'"
+							alt=""
+					/></view>
 					<view class="main">
 						<view class="name">{{ shopName }}</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>
+								<uni-stars
+									:stars="6"
+									:iconClass="iconClass"
+									:iconColor="iconColor"
+									:fontSize="36"
+									:widthInfo="176"
+								></uni-stars>
 							</view>
 							<view class="acount">
 								<text> {{ normalNum }} </text>件商品
@@ -29,104 +56,142 @@
 					<view class="right"><text class="iconfont icon-xiayibu"></text></view>
 				</view>
 				<banner :list="bannerImageList"></banner>
-			</view>	
+			</view>
 			<view class="container-section tui-skeleton" v-if="!isEmpty">
 				<view class="tab-title">主推商品</view>
 				<view class="section-product clearfix">
-					<view class="floor-item-none"  v-if="isHomeProduct">
+					<view class="floor-item-none" v-if="isHomeProduct">
 						<image class="none-image" :src="iconNoneData" mode=""></image>
 						<view class="none-text">暂无主推商品~</view>
 					</view>
-					<view v-else class="floor-item" v-for="(prop, index) in recommendList" :key="index" @click.stop="navToDetailPage(prop.productId)">
+					<view
+						v-else
+						class="floor-item"
+						v-for="(prop, index) in recommendList"
+						:key="index"
+						@click.stop="navToDetailPage(prop.productId)"
+					>
 						<image class="item-img tui-skeleton-fillet" :src="prop.image" mode="aspectFill"></image>
 						<view class="floor-item-content">
 							<view class="title tui-skeleton-rect">
 								<text class="mclap-tag" v-if="prop.beautyActFlag == '1'">美博会</text>
-								<text class="mclap" :class="prop.beautyActFlag =='1' ? 'indent' : ''">{{ prop.name }}</text>
+								<text class="mclap" :class="prop.beautyActFlag == '1' ? 'indent' : ''">{{
+									prop.name
+								}}</text>
 							</view>
 							<view class="floor-item-act">
 								<template v-if="userIdentity === 3">
-									<template v-if="prop.actStatus===1">
+									<view class="coupon-tags" v-if="prop.couponsLogo">优惠券</view>
+									<template v-if="prop.actStatus === 1">
 										<view class="floor-tags" v-if="PromotionsFormat(prop.promotions)">
-											{{prop.promotions.name}}
-											<text v-if="hasLogin && prop.priceFlag != 1 && prop.shopId == shopId">:¥{{prop.price | NumFormat}}</text>
+											{{ prop.promotions.name }}
+											<text v-if="hasLogin && prop.priceFlag != 1 && prop.shopId == shopId"
+												>:¥{{ prop.price | NumFormat }}</text
+											>
 										</view>
-										<view class="floor-tags" v-else>{{prop.promotions.name}}</view>
+										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-if="prop.actStatus ===0  &&  prop.ladderPriceFlag===1">
-										<view class="floor-tags">阶梯价格</view>	
+									<template v-if="prop.actStatus === 0 && prop.ladderPriceFlag === 1">
+										<view class="floor-tags">阶梯价格</view>
 									</template>
-								</template>	
+								</template>
 								<template v-else>
-									<template v-if="prop.actStatus===1">
+									<view class="coupon-tags" v-if="prop.couponsLogo">优惠券</view>
+									<template v-if="prop.actStatus === 1">
 										<view class="floor-tags" v-if="PromotionsFormat(prop.promotions)">
-											{{prop.promotions.name}}
-											<text v-if="hasLogin && prop.priceFlag != 1">:¥{{prop.price | NumFormat}}</text>
+											{{ prop.promotions.name }}
+											<text v-if="hasLogin && prop.priceFlag != 1"
+												>:¥{{ prop.price | NumFormat }}</text
+											>
 										</view>
-										<view class="floor-tags" v-else>{{prop.promotions.name}}</view>
+										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-if="prop.actStatus ===0  &&  prop.ladderPriceFlag===1">
-										<view class="floor-tags">阶梯价格</view>	
+									<template v-if="prop.actStatus === 0 && prop.ladderPriceFlag === 1">
+										<view class="floor-tags">阶梯价格</view>
 									</template>
 								</template>
-							</view>	
+							</view>
 							<view class="" v-if="hasLogin">
 								<template v-if="userIdentity == 3">
 									<template v-if="prop.shopId == shopId">
 										<view class="title-none" v-if="prop.priceFlag === 1">
 											<text class="p big">¥未公开价格</text>
 										</view>
-										<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(prop.promotions) ? 'none' : ''">
+										<view
+											class="price tui-skeleton-rect"
+											v-else
+											:class="PromotionsFormat(prop.promotions) ? 'none' : ''"
+										>
 											<text class="p sm">¥</text>
-											<text class="p big">{{ (PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price ) | NumFormat}}</text>
+											<text class="p big">{{
+												(PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price)
+													| NumFormat
+											}}</text>
 										</view>
-									</template>	
+									</template>
 									<template v-else>
 										<view class="no-price">
 											<view class="p-stars">
 												<text class="p-no">¥</text>
 												<uni-grader :grade="Number(prop.priceGrade)" :margin="14"></uni-grader>
 											</view>
-										</view>	
+										</view>
 									</template>
 								</template>
-								<template v-else-if="userIdentity ===4">
+								<template v-else-if="userIdentity === 4">
 									<view class="title-none" v-if="prop.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="title-none"  v-if="prop.priceFlag === 2">
+									<view class="title-none" v-if="prop.priceFlag === 2">
 										<text class="p big">¥价格仅会员可见</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-if="prop.priceFlag === 0" :class="PromotionsFormat(prop.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-if="prop.priceFlag === 0"
+										:class="PromotionsFormat(prop.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price)
+												| NumFormat
+										}}</text>
 									</view>
 								</template>
 								<template v-else>
 									<view class="title-none" v-if="prop.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(prop.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(prop.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price)
+												| NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 							</view>
 							<view v-else class="no-price">
 								<view class="p-stars">
 									<text class="p-no">¥</text>
 									<uni-grader :grade="Number(prop.priceGrade)"></uni-grader>
-									<template v-if="prop.actStatus==1">
+									<template v-if="prop.actStatus == 1">
 										<view class="floor-tags" v-if="PromotionsFormat(prop.promotions)">
-											{{prop.promotions.name}}<text v-if="hasLogin && prop.priceFlag != 1">:¥{{prop.price | NumFormat}}</text>
+											{{ prop.promotions.name
+											}}<text v-if="hasLogin && prop.priceFlag != 1"
+												>:¥{{ prop.price | NumFormat }}</text
+											>
 										</view>
-										<view class="floor-tags" v-else>{{prop.promotions.name}}</view>
+										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-if="prop.actStatus ==0  &&  prop.ladderPriceFlag==1">
-										<view class="floor-tags">阶梯价格</view>	
+									<template v-if="prop.actStatus == 0 && prop.ladderPriceFlag == 1">
+										<view class="floor-tags">阶梯价格</view>
 									</template>
 								</view>
-							</view>	
+							</view>
 						</view>
 					</view>
 				</view>
@@ -138,87 +203,122 @@
 						<image class="none-image" :src="iconNoneData1" mode=""></image>
 						<view class="none-text">暂未发布任何商品~</view>
 					</view>
-					<view v-else class="floor-item" v-for="(prop, index) in productList" :key="index" @click.stop="navToDetailPage(prop.productId)">
+					<view
+						v-else
+						class="floor-item"
+						v-for="(prop, index) in productList"
+						:key="index"
+						@click.stop="navToDetailPage(prop.productId)"
+					>
 						<image class="item-img tui-skeleton-fillet" :src="prop.image" mode="aspectFill"></image>
 						<view class="floor-item-content">
 							<view class="title tui-skeleton-rect">
 								<text class="mclap-tag" v-if="prop.priceFlag == '1'">美博会</text>
-								<text class="mclap" :class="prop.priceFlag =='1' ? 'indent' : ''">{{isInterceptHtmlFn(prop.name)}}</text>
+								<text class="mclap" :class="prop.priceFlag == '1' ? 'indent' : ''">{{
+									isInterceptHtmlFn(prop.name)
+								}}</text>
 							</view>
 							<view class="floor-item-act">
 								<template v-if="userIdentity === 3">
-									<template v-if="prop.actStatus===1">
+									<view class="coupon-tags" v-if="prop.couponsLogo">优惠券</view>
+									<template v-if="prop.actStatus === 1">
 										<view class="floor-tags" v-if="PromotionsFormat(prop.promotions)">
-											{{prop.promotions.name}}
-											<text v-if="hasLogin && prop.priceFlag != 1 && prop.shopId == shopId">:¥{{prop.price | NumFormat}}</text>
+											{{ prop.promotions.name }}
+											<text v-if="hasLogin && prop.priceFlag != 1 && prop.shopId == shopId"
+												>:¥{{ prop.price | NumFormat }}</text
+											>
 										</view>
-										<view class="floor-tags" v-else>{{prop.promotions.name}}</view>
+										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-if="prop.actStatus ===0  &&  prop.ladderPriceFlag===1">
-										<view class="floor-tags">阶梯价格</view>	
+									<template v-if="prop.actStatus === 0 && prop.ladderPriceFlag === 1">
+										<view class="floor-tags">阶梯价格</view>
 									</template>
-								</template>	
+								</template>
 								<template v-else>
-									<template v-if="prop.actStatus===1">
+									<view class="coupon-tags" v-if="prop.couponsLogo">优惠券</view>
+									<template v-if="prop.actStatus === 1">
 										<view class="floor-tags" v-if="PromotionsFormat(prop.promotions)">
-											{{prop.promotions.name}}
-											<text v-if="hasLogin && prop.priceFlag != 1">:¥{{prop.price | NumFormat}}</text>
+											{{ prop.promotions.name }}
+											<text v-if="hasLogin && prop.priceFlag != 1"
+												>:¥{{ prop.price | NumFormat }}</text
+											>
 										</view>
-										<view class="floor-tags" v-else>{{prop.promotions.name}}</view>
+										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-if="prop.actStatus ===0  &&  prop.ladderPriceFlag===1">
-										<view class="floor-tags">阶梯价格</view>	
+									<template v-if="prop.actStatus === 0 && prop.ladderPriceFlag === 1">
+										<view class="floor-tags">阶梯价格</view>
 									</template>
 								</template>
-							</view>	
+							</view>
 							<view class="" v-if="hasLogin">
 								<template v-if="userIdentity == 3">
 									<template v-if="prop.shopId == shopId">
 										<view class="title-none" v-if="prop.priceFlag === 1">
 											<text class="p big">¥未公开价格</text>
 										</view>
-										<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(prop.promotions) ? 'none' : ''">
+										<view
+											class="price tui-skeleton-rect"
+											v-else
+											:class="PromotionsFormat(prop.promotions) ? 'none' : ''"
+										>
 											<text class="p sm">¥</text>
-											<text class="p big">{{ (PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price ) | NumFormat}}</text>
+											<text class="p big">{{
+												(PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price)
+													| NumFormat
+											}}</text>
 										</view>
-									</template>	
+									</template>
 									<template v-else>
 										<view class="no-price">
 											<view class="p-stars">
 												<text class="p-no">¥</text>
 												<uni-grader :grade="Number(prop.priceGrade)" :margin="14"></uni-grader>
 											</view>
-										</view>	
+										</view>
 									</template>
 								</template>
-								<template v-else-if="userIdentity ===4">
+								<template v-else-if="userIdentity === 4">
 									<view class="title-none" v-if="prop.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="title-none"  v-if="prop.priceFlag === 2">
+									<view class="title-none" v-if="prop.priceFlag === 2">
 										<text class="p big">¥价格仅会员可见</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-if="prop.priceFlag === 0" :class="PromotionsFormat(prop.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-if="prop.priceFlag === 0"
+										:class="PromotionsFormat(prop.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price)
+												| NumFormat
+										}}</text>
 									</view>
 								</template>
 								<template v-else>
 									<view class="title-none" v-if="prop.priceFlag === 1">
 										<text class="p big">¥未公开价格</text>
 									</view>
-									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(prop.promotions) ? 'none' : ''">
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="PromotionsFormat(prop.promotions) ? 'none' : ''"
+									>
 										<text class="p sm">¥</text>
-										<text class="p big">{{ (PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price ) | NumFormat}}</text>
+										<text class="p big">{{
+											(PromotionsFormat(prop.promotions) ? prop.originalPrice : prop.price)
+												| NumFormat
+										}}</text>
 									</view>
-								</template>	
+								</template>
 							</view>
 							<view v-else class="no-price">
 								<view class="p-stars">
 									<text class="p-no">¥</text>
 									<uni-grader :grade="Number(prop.priceGrade)"></uni-grader>
 								</view>
-							</view>	
+							</view>
 						</view>
 					</view>
 				</view>
@@ -230,591 +330,620 @@
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
-	import banner from '@/components/cm-module/supplier/banner.vue'
-	import uniGrader from '@/components/uni-grade/uni-grade.vue'
-	import authorize from '@/common/config/authorize.js'
-	import wxLogin from "@/common/config/wxLogin.js"
-	
-	export default {
-		components:{
-			banner,
-			uniGrader
-		},
-		data() {
-			return {
-				userID:0,
-				supplierId:0,
-				shopId:0,
-				iconClass:'icon-aixin',
-				iconColor:'#ff9100',
-				iconNoneData:'https://static.caimei365.com/app/img/icon/icon-prnone.png',
-				iconNoneData1:'https://static.caimei365.com/app/img/icon/icon-pbnone.png',
-				isScrollTop:false,
-				shopName:'',
-				shopLogo:'',
-				normalNum:0,
-				isFocus:false,
-				isEmpty:false,
-				isShowClose:false,	//是否显示清空输入框图标
-				skeletonShow: true,
-				bannerImageList:[],
-				recommendList:[],
-				productList:[],
-				userIdentity:'',
-				listQuery:{
-					keyword: '',
-					pageSize: 10,
-					pageNum: 1,
-					id:0
-				},
-				isHomeProduct:false,
-				total:0
-			}
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity','identity','isWxAuthorize'])
-		},
-		onLoad(option) {
-			if(option.type =='share'){
-				wxLogin.wxLoginAuthorize()
-			}
-			this.listQuery.id = this.supplierId = option.shopId
-			this.$api.getStorage().then((resolve) =>{
+import { mapState, mapMutations } from 'vuex'
+import banner from '@/components/cm-module/supplier/banner.vue'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+import authorize from '@/common/config/authorize.js'
+import wxLogin from '@/common/config/wxLogin.js'
+
+export default {
+	components: {
+		banner,
+		uniGrader
+	},
+	data() {
+		return {
+			userID: 0,
+			supplierId: 0,
+			shopId: 0,
+			iconClass: 'icon-aixin',
+			iconColor: '#ff9100',
+			iconNoneData: 'https://static.caimei365.com/app/img/icon/icon-prnone.png',
+			iconNoneData1: 'https://static.caimei365.com/app/img/icon/icon-pbnone.png',
+			isScrollTop: false,
+			shopName: '',
+			shopLogo: '',
+			normalNum: 0,
+			isFocus: false,
+			isEmpty: false,
+			isShowClose: false, //是否显示清空输入框图标
+			skeletonShow: true,
+			bannerImageList: [],
+			recommendList: [],
+			productList: [],
+			userIdentity: '',
+			listQuery: {
+				keyword: '',
+				pageSize: 10,
+				pageNum: 1,
+				id: 0
+			},
+			isHomeProduct: false,
+			total: 0
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity', 'identity', 'isWxAuthorize'])
+	},
+	onLoad(option) {
+		if (option.type == 'share') {
+			wxLogin.wxLoginAuthorize()
+		}
+		this.listQuery.id = this.supplierId = option.shopId
+		this.$api
+			.getStorage()
+			.then(resolve => {
 				this.shopId = resolve.shopId ? resolve.shopId : 0
 				this.userID = resolve.userId ? resolve.userId : 0
 				this.userIdentity = resolve.userIdentity
 				this.InitShopDataInfo()
-			}).catch( error =>{
+			})
+			.catch(error => {
 				this.InitShopDataInfo()
 			})
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	methods: {
+		...mapMutations(['login', 'logout']),
+		InitShopDataInfo() {
+			//初始化请求数据
+			this.GetSupplierHomeBanner()
+			this.GetSupplierHomeDeatils()
+			this.GetSupplierHomeProduct()
+			this.GetSupplierHomeProductList()
+			this.skeletonShow = false
 		},
-		filters: {
-			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2);
-			},
-		},
-		methods: {
-			...mapMutations(['login','logout']),
-			InitShopDataInfo(){//初始化请求数据
-				this.GetSupplierHomeBanner()
-				this.GetSupplierHomeDeatils()
-				this.GetSupplierHomeProduct()
-				this.GetSupplierHomeProductList()
-				this.skeletonShow =false
-			},
-			GetSupplierHomeBanner(){//轮播图
-				this.ShopService.GetSupplierHomeBanner({supplierId:this.supplierId}).then(response =>{
-					this.bannerImageList = response.data;
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
+		GetSupplierHomeBanner() {
+			//轮播图
+			this.ShopService.GetSupplierHomeBanner({ supplierId: this.supplierId })
+				.then(response => {
+					this.bannerImageList = response.data
 				})
-			},
-			GetSupplierHomeDeatils(){//商铺详情
-				this.ShopService.GetSupplierHomeDeatils({supplierId:this.supplierId}).then(response =>{
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		GetSupplierHomeDeatils() {
+			//商铺详情
+			this.ShopService.GetSupplierHomeDeatils({ supplierId: this.supplierId })
+				.then(response => {
 					let data = response.data
 					this.normalNum = data.normalNum
 					this.shopName = data.name
 					this.shopLogo = data.logo
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
 				})
-			},
-			GetSupplierHomeProduct(){//主推商品
-				this.ShopService.GetSupplierHomeProduct({shopId:this.supplierId,identity:this.identity}).then(response =>{
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		GetSupplierHomeProduct() {
+			//主推商品
+			this.ShopService.GetSupplierHomeProduct({ shopId: this.supplierId, identity: this.identity })
+				.then(response => {
 					let data = response.data
-					console.log('主推商品',data)
-					if(data.length>0){
+					console.log('主推商品', data)
+					if (data.length > 0) {
 						this.isHomeProduct = false
 						this.QueryProductPrice(data)
-					}else{
+					} else {
 						this.isHomeProduct = true
 					}
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
 				})
-			},
-			GetSupplierHomeProductList(){//全部商品
-				this.ShopService.GetSupplierHomeProductList(this.listQuery).then(response =>{
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		GetSupplierHomeProductList() {
+			//全部商品
+			this.ShopService.GetSupplierHomeProductList(this.listQuery)
+				.then(response => {
 					let data = JSON.parse(response.data)
-					console.log('全部商品',data)
+					console.log('全部商品', data)
 					let dataList = data.items
 					this.total = data.total
-					if(this.total>0){
+					if (this.total > 0) {
 						this.isEmpty = false
 						this.productList = dataList
 						this.QueryProductPrice1(this.productList)
-					}else{
+					} else {
 						this.isEmpty = true
 					}
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
 				})
-			},
-			GetMoreSupplierHomeProductList(){//加载分页
-				this.listQuery.pageNum +=1
-				this.ShopService.GetSupplierHomeProductList(this.listQuery).then(response =>{
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		GetMoreSupplierHomeProductList() {
+			//加载分页
+			this.listQuery.pageNum += 1
+			this.ShopService.GetSupplierHomeProductList(this.listQuery)
+				.then(response => {
 					let data = JSON.parse(response.data)
 					this.total = data.total
-					this.productList = this.productList.concat(data.items) 
+					this.productList = this.productList.concat(data.items)
 					this.QueryProductPrice1(this.productList)
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			QueryProductPrice(data){//处理主推商品商品或者活动价格
-				let productIdArr = [];
-				let productIds ='';
-				data.map(item=>{// 0公开价格 1不公开价格 2仅对资质机构公开
-					productIdArr.push(item.productId)
 				})
-				productIds = productIdArr.join(",");
-				this.ProductService.querySearchProductPrice(
-					{
-						userId: this.userID,
-						productIds:productIds,
-						source: 2
-					}
-				)
-				.then(response =>{
-					this.recommendList = this.ReturnNewProducts(data,response.data);
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
 				})
-				.catch(error =>{
-					this.$util.msg(error.msg,2000)
+		},
+		QueryProductPrice(data) {
+			//处理主推商品商品或者活动价格
+			let productIdArr = []
+			let productIds = ''
+			data.map(item => {
+				// 0公开价格 1不公开价格 2仅对资质机构公开
+				productIdArr.push(item.productId)
+			})
+			productIds = productIdArr.join(',')
+			this.ProductService.querySearchProductPrice({
+				userId: this.userID,
+				productIds: productIds,
+				source: 2
+			})
+				.then(response => {
+					this.recommendList = this.ReturnNewProducts(data, response.data)
 				})
-			},
-			QueryProductPrice1(data){//获取商品或者活动价格
-				let productIdArr = [];
-				let productIds ='';
-				data.map(item=>{// 0公开价格 1不公开价格 2仅对资质机构公开
-					productIdArr.push(item.productId)
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
 				})
-				productIds = productIdArr.join(",");
-				this.ProductService.querySearchProductPrice(
-					{
-						userId: this.userID,
-						productIds:productIds,
-						source: 2
-					}
-				)
-				.then(response =>{
-					this.productList = this.ReturnNewProducts(data,response.data);
-					console.log('合并价格后',this.productList)
+		},
+		QueryProductPrice1(data) {
+			//获取商品或者活动价格
+			let productIdArr = []
+			let productIds = ''
+			data.map(item => {
+				// 0公开价格 1不公开价格 2仅对资质机构公开
+				productIdArr.push(item.productId)
+			})
+			productIds = productIdArr.join(',')
+			this.ProductService.querySearchProductPrice({
+				userId: this.userID,
+				productIds: productIds,
+				source: 2
+			})
+				.then(response => {
+					this.productList = this.ReturnNewProducts(data, response.data)
+					console.log('合并价格后', this.productList)
 				})
-				.catch(error =>{
-					this.$util.msg(error.msg,2000)
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
 				})
-			},
-			ReturnNewProducts(listA,listB){
-				let NewArray = []
-				listA.map(item=>{
-					for (let i = 0; i < listB.length; i++) {
-						if( item.productId == listB[i].productId ){
-							NewArray.push(Object.assign(item,listB[i])) 
-						}
-					}
-				});
-				return NewArray
-			},
-			SubMitSearch() {//搜索
-				this.listQuery.pageNum = 1
-				this.GetSupplierHomeProductList()
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
+		},
+		ReturnNewProducts(listA, listB) {
+			let NewArray = []
+			listA.map(item => {
+				for (let i = 0; i < listB.length; i++) {
+					if (item.productId == listB[i].productId) {
+						NewArray.push(Object.assign(item, listB[i]))
 					}
 				}
-				return false
-			},
-			onShowClose () {//输入框输入时触发
-				this.inputEmpty(this.listQuery.keyword)
-			},
-			onFocus () { //输入框获取焦点时触发
-				this.inputEmpty(this.listQuery.keyword)
-			},
-			delInputText () { //清除输入框内容
-				this.listQuery.keyword = ''
-				this.isShowClose = false
-				this.isShowWrapper = false
-				this.inputEmpty(this.listQuery.keyword)
-				this.initGetSerachRecord()
-			},
-			inputEmpty(val){
-				if(val != ''){
-					this.isShowClose = true
-					this.isFocus = true
-				}else{					
-					this.isShowClose = false
-					this.isFocus = true
+			})
+			return NewArray
+		},
+		SubMitSearch() {
+			//搜索
+			this.listQuery.pageNum = 1
+			this.GetSupplierHomeProductList()
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-			},
-			isInterceptHtmlFn(text){
-				let name = this.$reg.interceptHtmlFn(text)
-				return name
-			},
-			goSupplier(){//跳供应商资料页
-				this.$api.navigateTo('/pages/supplier/user/supplier?shopId='+this.supplierId)
-			},
-			navToDetailPage(id) {//跳转商品详情页
-				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
 			}
+			return false
 		},
-		onPageScroll(e){//实时获取到滚动的值
-			if(e.scrollTop>400){
-				this.isScrollTop = true
-			}else{
-				this.isScrollTop = false
-			}	
+		onShowClose() {
+			//输入框输入时触发
+			this.inputEmpty(this.listQuery.keyword)
 		},
-		onPullDownRefresh() {//下拉刷新
-			this.listQuery.pageNum = 1
-			this.productList =[]
-			this.InitShopDataInfo()
-			uni.stopPullDownRefresh()
+		onFocus() {
+			//输入框获取焦点时触发
+			this.inputEmpty(this.listQuery.keyword)
 		},
-		onReachBottom() {//上滑加载分页
-			if(this.total > this.productList.length){
-				this.loadding = true
-				this.pullUpOn = true
-				this.GetMoreSupplierHomeProductList()
-			}	
+		delInputText() {
+			//清除输入框内容
+			this.listQuery.keyword = ''
+			this.isShowClose = false
+			this.isShowWrapper = false
+			this.inputEmpty(this.listQuery.keyword)
+			this.initGetSerachRecord()
 		},
-		onShareAppMessage(res){//分享转发
-			if (res.from === 'button') {
-		      // 来自页面内转发按钮
-		    }
-			return {
-			  title: `进入店铺,发现惊喜`,
-			  path: `pages/supplier/user/my-shop?type=share&shopId=${this.listQuery.id}`
+		inputEmpty(val) {
+			if (val != '') {
+				this.isShowClose = true
+				this.isFocus = true
+			} else {
+				this.isShowClose = false
+				this.isFocus = true
 			}
 		},
-		onShow(){
-			
+		isInterceptHtmlFn(text) {
+			let name = this.$reg.interceptHtmlFn(text)
+			return name
+		},
+		goSupplier() {
+			//跳供应商资料页
+			this.$api.navigateTo('/pages/supplier/user/supplier?shopId=' + this.supplierId)
+		},
+		navToDetailPage(id) {
+			//跳转商品详情页
+			this.$api.navigateTo(`/pages/goods/product?id=${id}`)
 		}
-	}
+	},
+	onPageScroll(e) {
+		//实时获取到滚动的值
+		if (e.scrollTop > 400) {
+			this.isScrollTop = true
+		} else {
+			this.isScrollTop = false
+		}
+	},
+	onPullDownRefresh() {
+		//下拉刷新
+		this.listQuery.pageNum = 1
+		this.productList = []
+		this.InitShopDataInfo()
+		uni.stopPullDownRefresh()
+	},
+	onReachBottom() {
+		//上滑加载分页
+		if (this.total > this.productList.length) {
+			this.loadding = true
+			this.pullUpOn = true
+			this.GetMoreSupplierHomeProductList()
+		}
+	},
+	onShareAppMessage(res) {
+		//分享转发
+		if (res.from === 'button') {
+			// 来自页面内转发按钮
+		}
+		return {
+			title: '进入店铺,发现惊喜',
+			path: `pages/supplier/user/my-shop?type=share&shopId=${this.listQuery.id}`
+		}
+	},
+	onShow() {}
+}
 </script>
 
 <style lang="scss">
-	page{
-		background-color: #F7F7F7;
-	}
-	.shop{
-		width: 100%;
-		height: auto;
-	}
-	.shop-search-main{
+page {
+	background-color: #f7f7f7;
+}
+.shop {
+	width: 100%;
+	height: auto;
+}
+.shop-search-main {
+	width: 100%;
+	height: 86rpx;
+	background-color: #ffffff;
+	box-sizing: border-box;
+	padding: 10rpx 24rpx;
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 999;
+	.shop-search {
 		width: 100%;
-		height: 86rpx;
-		background-color: #FFFFFF;
+		height: 66rpx;
+		border-radius: 33rpx;
+		background-color: #f7f7f7;
 		box-sizing: border-box;
-		padding:10rpx 24rpx;
-		position: fixed;
-		top:0;
-		left: 0;
-		z-index: 999;
-		.shop-search{
-			width: 100%;
+		position: relative;
+		.icon-sousuo {
+			width: 80rpx;
+			height: 66rpx;
+			display: block;
+			float: left;
+			color: #707070;
+			line-height: 66rpx;
+			text-align: center;
+			font-size: 36rpx;
+		}
+		.icon-shanchu1 {
+			width: 80rpx;
+			height: 66rpx;
+			display: block;
+			color: #8a8a8a;
+			line-height: 66rpx;
+			text-align: center;
+			font-size: 36rpx;
+			position: absolute;
+			right: 0;
+			top: 0;
+			z-index: 100;
+		}
+		.input {
+			width: 580rpx;
 			height: 66rpx;
-			border-radius: 33rpx;
-			background-color: #F7F7F7;
 			box-sizing: border-box;
-			position: relative;
-			.icon-sousuo{
-				width: 80rpx;
-				height: 66rpx;
-				display: block;
+			color: #666666;
+			overflow: hidden;
+			font-size: $font-size-24;
+		}
+	}
+}
+.container-shop {
+	width: 100%;
+	height: auto;
+	padding: 24rpx;
+	box-sizing: border-box;
+	background-color: #ffffff;
+	margin-top: 96rpx;
+}
+.product-supplier {
+	width: 100%;
+	height: 140rpx;
+	padding: 30rpx 0 10rpx 0;
+	box-sizing: border-box;
+	background-color: #ffffff;
+	position: relative;
+	box-sizing: border-box;
+	.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;
-				color: #707070;
-				line-height: 66rpx;
-				text-align: center;
-				font-size: 36rpx;
 			}
-			.icon-shanchu1{
-				width: 80rpx;
-				height: 66rpx;
-				display: block;
-				color: #8A8A8A;
-				line-height: 66rpx;
-				text-align: center;
-				font-size: 36rpx;
-				position: absolute;
-				right: 0;
-				top: 0;
-				z-index: 100;
+			.p-stars {
+				float: left;
+				margin-left: 20rpx;
 			}
-			.input{
-				width: 580rpx;
-				height: 66rpx;
-				box-sizing: border-box;
-				color: #666666;
-				overflow: hidden;
-				font-size: $font-size-24;
+			.acount {
+				float: right;
+				text {
+					color: $color-system;
+				}
 			}
 		}
 	}
-	.container-shop{
+	.icon-xiayibu {
+		line-height: 154rpx;
+		display: inline-block;
+		position: absolute;
+		width: 48rpx;
+		top: 0;
+		right: 0;
+		color: #b2b2b2;
+	}
+}
+.container-section {
+	width: 100%;
+	height: auto;
+	background-color: #f7f7f7;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	.tab-title {
 		width: 100%;
-		height: auto;
-		padding:24rpx;
-		box-sizing: border-box;
-		background-color: #FFFFFF;
-		margin-top: 96rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		font-size: $font-size-30;
+		font-weight: bold;
 	}
-	.product-supplier{
+	.section-product {
 		width: 100%;
-		height: 140rpx;
-		padding: 30rpx 0 10rpx 0;
-		box-sizing: border-box;
-		background-color: #FFFFFF;
-		position: relative;
-		box-sizing: border-box;
-		.logo{
-			width: 128rpx;
-			height: 92rpx;
-			float: left;
-			border: 1px solid #efefef;
-			border-radius: 6rpx;
-			image{
-				width: 100%;
-				height: 100%;
-				display: block;
-				border-radius: 6rpx;
+		height: auto;
+		.floor-item-none {
+			min-height: 300rpx;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			.none-image {
+				width: 260rpx;
+				height: 260rpx;
+			}
+			.none-text {
+				text-align: center;
+				font-size: $font-size-28;
+				color: #999999;
+				line-height: 40rpx;
 			}
 		}
-		.main{
-			width: 470rpx;
-			height: 92rpx;
+		.floor-item {
+			width: 341rpx;
+			height: auto;
+			margin-right: 20rpx;
+			font-size: $font-size-24;
+			color: $text-color;
+			background: #ffffff;
+			line-height: 36rpx;
+			border-radius: 20rpx;
+			margin-bottom: 20rpx;
 			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;
+			box-sizing: border-box;
+			padding-bottom: 10rpx;
+			&:nth-child(2n) {
+				margin-right: 0;
+			}
+			.item-img {
+				width: 341rpx;
+				height: 341rpx;
+				border-radius: 20rpx 20rpx 0 0;
+				display: block;
+				margin-bottom: 20rpx;
+			}
+			.floor-item-content {
+				width: 311rpx;
+				padding: 0 15rpx;
 			}
-			.massgs{
+			.floor-item-act {
+				display: block;
 				width: 100%;
-				line-height: 46rpx;
-				float: left;
-				font-size: $font-size-24;
-				color: #999999;
-				.label{
+				height: 68rpx;
+				text-align: center;
+				box-sizing: border-box;
+				padding: 16rpx 0;
+				margin-top: 8rpx;
+				.coupon-tags {
+					height: 32rpx;
+					box-sizing: border-box;
+					border-radius: 8rpx;
+					background-color: #fff1eb;
+					line-height: 28rpx;
+					color: #f94b4b;
+					text-align: center;
+					display: inline-block;
+					padding: 0 10rpx;
+					font-size: $font-size-20;
+					border: 1px solid #f94b4b;
 					float: left;
+					margin-right: 12rpx;
 				}
-				.p-stars{
+				.floor-tags {
+					height: 32rpx;
+					box-sizing: border-box;
+					border-radius: 8rpx;
+					background-color: #ffffff;
+					line-height: 28rpx;
+					color: $color-system;
+					text-align: center;
+					display: inline-block;
+					padding: 0 16rpx;
+					font-size: $font-size-20;
+					border: 1px solid #e15616;
 					float: left;
-					margin-left: 20rpx;
 				}
-				.acount{
+			}
+			.title-none {
+				font-size: $font-size-26;
+				color: #ff2a2a;
+				line-height: 54rpx;
+				.btn {
+					display: inline-block;
 					float: right;
-					text{
-						color: $color-system;
-					}
+					width: 112rpx;
+					height: 44rpx;
+					background: $btn-confirm;
+					line-height: 44rpx;
+					font-size: $font-size-24;
+					color: #ffffff;
+					text-align: center;
+					border-radius: 22rpx;
+					margin-top: 17rpx;
 				}
 			}
-		}
-		.icon-xiayibu{
-			line-height: 154rpx;
-			display: inline-block;
-			position: absolute;
-			width: 48rpx;
-			top: 0;
-			right: 0;
-			color: #b2b2b2;
-		}
-	}
-	.container-section{
-		width: 100%;
-		height: auto;
-		background-color: #F7F7F7;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		.tab-title{
-			width: 100%;
-			height: 88rpx;
-			line-height: 88rpx;
-			font-size: $font-size-30;
-			font-weight: bold;
-		}
-		.section-product{
-			width: 100%;
-			height: auto;
-			.floor-item-none{
-				min-height: 300rpx;
+			.title {
+				width: 100%;
+				height: 72rpx;
 				display: flex;
 				flex-direction: column;
-				align-items: center;
-				.none-image{
-					width: 260rpx;
-					height: 260rpx;
+				margin-bottom: 15rpx;
+				padding: 0;
+				position: relative;
+				.mclap {
+					width: 100%;
+					line-height: 40rpx;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+					font-size: 26rpx;
+					&.indent {
+						text-indent: 95rpx;
+					}
 				}
-				.none-text{
+				.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;
-					font-size: $font-size-28;
-					color: #999999;
-					line-height: 40rpx;
+					position: absolute;
+					left: 0;
+					top: 0;
 				}
 			}
-			.floor-item{
-				width: 341rpx;
-				height: auto;
-				margin-right: 20rpx;
-				font-size: $font-size-24;
-				color: $text-color;
-				background: #FFFFFF;
-				line-height: 36rpx;
-				border-radius: 20rpx;
-				margin-bottom: 20rpx;
-				float: left;
+			.no-price {
+				height: 54rpx;
+				line-height: 54rpx;
+				display: flex;
 				box-sizing: border-box;
-				padding-bottom: 10rpx;
-				&:nth-child(2n){
-					margin-right: 0;
-				}
-				.item-img{
-					width: 341rpx;
-					height: 341rpx;
-					border-radius: 20rpx 20rpx 0 0;
-					display: block;
-					margin-bottom: 20rpx;
-				}
-				.floor-item-content{
-					width: 311rpx;
-					padding: 0 15rpx;
-				}
-				.floor-item-act{
+				.p-no {
+					font-size: $font-size-30;
+					color: $text-color;
 					display: block;
-					width: 100%;
-					height: 68rpx;
-					text-align: center;
-					box-sizing: border-box;
-					padding: 16rpx 0;
-					margin-top: 8rpx;
-					.coupon-tags{
-						height: 32rpx;
-						box-sizing: border-box;
-						border-radius: 8rpx;
-						background-color: #fff1eb;
-						line-height: 28rpx;
-						color: #f94b4b;
-						text-align: center;
-						display: inline-block;
-						padding:0 10rpx;
-						font-size: $font-size-20;
-						border: 1px solid #f94b4b;
-						float: left;
-						margin-right: 12rpx;
-					}
-					.floor-tags{
-						height: 32rpx;
-						box-sizing: border-box;
-						border-radius: 8rpx;
-						background-color: #FFFFFF;
-						line-height: 28rpx;
-						color: $color-system;
-						text-align: center;
-						display: inline-block;
-						padding:0 16rpx;
-						font-size: $font-size-20;
-						border: 1px solid #E15616;
-						float: left;
-					}
+					float: left;
 				}
-				.title-none{
-					font-size: $font-size-26;
-					color: #FF2A2A;
-					line-height: 54rpx;
-					.btn{
-						display: inline-block;
-						float: right;
-						width: 112rpx;
-						height: 44rpx;
-						background: $btn-confirm;
-						line-height: 44rpx;
-						font-size: $font-size-24;
-						color: #FFFFFF;
-						text-align: center;
-						border-radius: 22rpx;
-						margin-top: 17rpx;
-					}
+				.p-stars {
+					float: left;
 				}
-				.title{
-					width: 100%;
-					height: 72rpx;
-					display: flex;
-					flex-direction: column;
-					margin-bottom: 15rpx;
-					padding: 0;
-					position: relative;
-					.mclap{
-						width: 100%;
-						line-height:40rpx;
-						text-overflow:ellipsis;
-						display: -webkit-box;
-						word-break: break-all;
-						-webkit-box-orient: vertical;
-						-webkit-line-clamp: 2;
-						overflow: hidden;
-						font-size: 26rpx;
-						&.indent{
-							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: 0;
-					}
+			}
+			.price {
+				color: #ff2a2a;
+				line-height: 54rpx;
+				&.none {
+					text-decoration: line-through;
+					color: #999999;
 				}
-				.no-price{
-					height: 54rpx;
-					line-height: 54rpx;
-					display: flex;
-					box-sizing: border-box;
-					.p-no{
-						font-size: $font-size-30;
-						color: $text-color;
-						display: block;
-						float: left;
-					}
-					.p-stars{
-						float: left;
-					}
+				.sm {
+					font-size: $font-size-24;
 				}
-				.price{
-					color: #FF2A2A;
-					line-height:54rpx;
-					&.none{
-						text-decoration: line-through;
-						color: #999999;
-					}
-					.sm{
-						font-size: $font-size-24;
-					}
-					.big{
-						font-size: $font-size-28;
-					}
+				.big {
+					font-size: $font-size-28;
 				}
 			}
 		}
 	}
+}
 </style>

+ 3 - 1
pages/user/member/member-product.vue

@@ -20,13 +20,15 @@
 						</view>
 						<view class="product-tags">
 							<view class="floor-item-act" v-if="pro.actStatus==1">
+								<view class="coupon-tags">优惠券</view>
 								<view class="floor-tags" v-if="PromotionsFormat(pro.promotions)">
 									{{pro.promotions.name}}
 									<text v-if="pro.priceFlag != 1">:¥{{ pro.price | NumFormat }}</text>
 								</view>
 								<view class="floor-tags" v-else>{{pro.promotions.name}}</view>	
 							</view>
-							<view class="floor-item-act" v-if="pro.actStatus==0">
+							<view class="floor-item-act" v-else>
+								<view class="coupon-tags">优惠券</view>
 								<view class="floor-tags" v-if="pro.actStatus ==0  &&  pro.ladderPriceFlag==1">阶梯价格</view>	
 							</view>
 						</view>

+ 3 - 1
pages/user/member/member.vue

@@ -101,13 +101,15 @@
 						</view>
 						<view class="product-tags">
 							<view class="floor-item-act" v-if="pro.actStatus==1">
+								<view class="coupon-tags">优惠券</view>
 								<view class="floor-tags" v-if="PromotionsFormat(pro.promotions)">
 									{{pro.promotions.name}}
 									<text v-if="pro.priceFlag != 1">:¥{{ pro.price | NumFormat }}</text>
 								</view>
 								<view class="floor-tags" v-else>{{pro.promotions.name}}</view>	
 							</view>
-							<view class="floor-item-act" v-if="pro.actStatus==0">
+							<view class="floor-item-act" v-else>
+								<view class="coupon-tags">优惠券</view>
 								<view class="floor-tags" v-if="pro.actStatus ==0  &&  pro.ladderPriceFlag==1">阶梯价格</view>	
 							</view>
 						</view>