Browse Source

commit -m 超级会员

zhengjinyi 3 years ago
parent
commit
086c994d4d
43 changed files with 1623 additions and 1298 deletions
  1. 27 15
      components/cm-module/cart-components/index.vue
  2. 12 10
      components/cm-module/creatOrder/goodsList.vue
  3. 18 10
      components/cm-module/creatOrder/sellerGoodsList.vue
  4. 355 316
      components/cm-module/listTemplate/buyagainList.vue
  5. 12 8
      components/cm-module/listTemplate/immediatelyList.vue
  6. 1 1
      components/cm-module/listTemplate/productList.vue
  7. 10 7
      components/cm-module/orderDetails/goodsList.vue
  8. 16 3
      components/cm-module/pageFloorTemplate/templateA.vue
  9. 16 3
      components/cm-module/pageFloorTemplate/templateB.vue
  10. 16 3
      components/cm-module/pageFloorTemplate/templateC.vue
  11. 16 3
      components/cm-module/pageFloorTemplate/templateD.vue
  12. 16 3
      components/cm-module/pageFloorTemplate/templateE.vue
  13. 16 3
      components/cm-module/pageFloorTemplate/templateF.vue
  14. 16 3
      components/cm-module/pageFloorTemplate/templateG.vue
  15. 16 3
      components/cm-module/pageFloorTemplate/templateI.vue
  16. 7 3
      components/cm-module/pageFloorTemplate/templateJ.vue
  17. 16 3
      components/cm-module/pageFloorTemplate/templateK.vue
  18. 16 3
      components/cm-module/pageTemplate/templateA.vue
  19. 16 3
      components/cm-module/pageTemplate/templateB.vue
  20. 16 3
      components/cm-module/pageTemplate/templateC.vue
  21. 16 3
      components/cm-module/pageTemplate/templateD.vue
  22. 16 3
      components/cm-module/pageTemplate/templateE.vue
  23. 16 3
      components/cm-module/pageTemplate/templateF.vue
  24. 16 3
      components/cm-module/pageTemplate/templateG.vue
  25. 18 3
      components/cm-module/pageTemplate/templateH.vue
  26. 16 3
      components/cm-module/pageTemplate/templateI.vue
  27. 16 3
      components/cm-module/pageTemplate/templateJ.vue
  28. 16 3
      components/cm-module/pageTemplate/templateK.vue
  29. 8 8
      components/cm-module/productDetails/cm-price.vue
  30. 44 31
      pages/goods/goods-classify.vue
  31. 3 6
      pages/search/search-order.vue
  32. 20 17
      pages/search/search.vue
  33. 3 6
      pages/seller/order/order-historylist.vue
  34. 3 6
      pages/seller/order/order-list.vue
  35. 3 6
      pages/seller/search/search-order.vue
  36. 40 29
      pages/supplier/user/my-shop.vue
  37. 279 330
      pages/user/member/member-product.vue
  38. 224 142
      pages/user/member/member-record.vue
  39. 4 2
      pages/user/member/member-renew.vue
  40. 43 124
      pages/user/member/member.vue
  41. 3 6
      pages/user/order/order-list.vue
  42. 168 155
      services/product.service.js
  43. 14 0
      services/user.service.js

+ 27 - 15
components/cm-module/cart-components/index.vue

@@ -74,11 +74,11 @@
 												<!--使用过滤器对总价改变-->
 												<view
 													class="price"
-													:class="PromotionsFormat(pros.promotions) ? 'disabled' : ''"
+													:class="PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1 ? 'disabled' : ''"
 												>
 													<text>¥</text>
 													{{
-														(PromotionsFormat(pros.promotions)
+														(PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
 															? pros.originalPrice
 															: pros.price) | NumFormat
 													}}
@@ -140,13 +140,14 @@
 														{{ pros.promotions.name }}
 													</view>
 												</template>
-												<template v-else>
-													<view class="svip-tags" v-if="pros.ladderFlag == 1">
-														<view class="tags">SVIP</view> <view class="price">8折</view>
-													</view>
-													<view class="svip-tags" v-if="pros.ladderFlag == 0">
-														<view class="tags">SVIP</view>
-														<view class="price">¥{{ pros.price | NumFormat }}</view>
+												<template v-if="pros.svipProductFlag == 1">
+													<view class="svip-tags">
+														<view class="tags" :class="{ none: vipFlag == 0 }">SVIP</view>
+														<view
+															class="price"
+															v-if="isShowVipFlag(pros)"
+															>{{ pros.svipPriceTag }}</view
+														>
 													</view>
 												</template>
 											</view>
@@ -462,7 +463,8 @@ export default {
 			StaticUrl: this.$Static, // 静态图片路径
 			CustomBar: this.CustomBar, // 顶部导航栏高度
 			isIphoneX: this.$store.state.isIphoneX,
-			userId: '',
+			userId: 0,
+			userIdentity:0,
 			alertType: '',
 			isStock: '',
 			handlerPros: {}, // 监听单挑促销商品
@@ -560,7 +562,8 @@ export default {
 		}
 	},
 	methods: {
-		initData() {
+		async initData() {
+			const userInfo = await this.$api.getStorage()
 			this.isModallayer = false //遮罩层 防止多次点击
 			this.skeletonShow = true //预加载圆圈
 			this.isCheckAll = false //是否全选
@@ -569,10 +572,19 @@ export default {
 			this.totalDiscountAmount = 0
 			this.isDiscount = false
 			this.eligibleCoupons = []
-			this.$api.getStorage().then(resolve => {
-				this.userId = this.couponParam.userId = resolve.userId ? resolve.userId : 0
-				this.initGetCartGoodsList()
-			})
+			this.userId = this.couponParam.userId = userInfo.userId ? userInfo.userId : 0
+			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			this.initGetCartGoodsList()
+		},
+		isShowVipFlag(pros){
+			if(pros.priceFlag!=1){
+				if(this.userIdentity == 4 && this.vipFlag == 1){
+					return true
+				}else if(this.userIdentity == 2){
+					return true
+				}
+			}
 		},
 		initLogin() {
 			this.$api.redirectTo('/pages/login/login')

+ 12 - 10
components/cm-module/creatOrder/goodsList.vue

@@ -28,20 +28,17 @@
 							<view class="floor-item-act">
 								<template v-if="pros.actStatus == 1 && pros.promotions">
 									<view v-if="PromotionsFormat(pros.promotions)" class="floor-tags">
-										{{pros.promotions.name}}
-										<text v-if ="pros.promotions!=null">
+										{{ pros.promotions.name }}
+										<text v-if ="pros.promotions">
 											:¥{{ pros.promotions == null ? '0.00' : pros.promotions.touchPrice | NumFormat}}
 										</text>
 									</view>
 									<view v-else-if="pros.promotions.type !=3" class="floor-tags">{{pros.promotions.name}}</view>	
 								</template>
-								<template v-else>
-									<view class="svip-tags" v-if="pros.ladderFlag == 1">
-										<view class="tags">SVIP</view> <view class="price">8折</view>
-									</view>
-									<view class="svip-tags" v-if="pros.ladderFlag == 0">
+								<template v-if="pros.svipProductFlag == 1 && vipFlag == 1">
+									<view class="svip-tags">
 										<view class="tags">SVIP</view>
-										<view class="price">¥{{ pros.price | NumFormat }}</view>
+										<view class="price">{{ pros.svipPriceTag }}</view>
 									</view>
 								</template>
 							</view>
@@ -82,11 +79,12 @@
 		},
 		data() {
 			return{
-				remark:[]
+				remark:[],
+				vipFlag:0,
 			}
 		},
 		created(){
-			
+			this.initGetStotage()
 		},
 		filters:{
 			NumFormat(value) {//处理金额
@@ -105,6 +103,10 @@
 
 		},
 		methods:{
+			async initGetStotage() {
+				const userInfo = await this.$api.getStorage()
+				this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			},
 			PromotionsFormat(promo){//促销活动类型数据处理
 				if(promo!=null){
 					if(promo.type == 1 && promo.mode == 1){

+ 18 - 10
components/cm-module/creatOrder/sellerGoodsList.vue

@@ -25,14 +25,22 @@
 								<view class="price"><text>¥{{ pros.price | NumFormat }}</text></view>
 								<view class="count"><text class="small">x</text>{{ pros.number }}</view>
 							</view>
-							<view class="floor-item-act" v-if="pros.promotions!=null">
-								<view v-if="PromotionsFormat(pros.promotions)" class="floor-tags">
-									{{pros.promotions.name}}
-									<text v-if ="pros.promotions!=null">
-										:¥{{ pros.promotions == null ? '0.00' : pros.promotions.touchPrice | NumFormat}}
-									</text>
-								</view>
-								<view v-else-if="pros.promotions.type !=3" class="floor-tags">{{ pros.promotions.name }}</view>	
+							<view class="floor-item-act">
+								<template v-if="pros.actStatus == 1 && pros.promotions">
+									<view v-if="PromotionsFormat(pros.promotions)" class="floor-tags">
+										{{pros.promotions.name}}
+										<text v-if ="pros.promotions!=null">
+											:¥{{ pros.promotions == null ? '0.00' : pros.promotions.touchPrice | NumFormat}}
+										</text>
+									</view>
+									<view v-else-if="pros.promotions.type !=3" class="floor-tags">{{ pros.promotions.name }}</view>	
+								</template>
+								<template v-if="pros.svipProductFlag == 1">
+									<view class="svip-tags">
+										<view class="tags">SVIP</view>
+										<view class="price">{{ pros.svipPriceTag }}</view>
+									</view>
+								</template>
 							</view>
 						</view>	
 					</view>
@@ -63,7 +71,7 @@
 
 <script>
 	export default{
-		name:"goods",
+		name:'goods',
 		props:{
 			goodsData:{
 				type:Array
@@ -79,7 +87,7 @@
 		},
 		filters:{
 			NumFormat(value) {//处理金额
-				return Number(value).toFixed(2);
+				return Number(value).toFixed(2)
 			},
 		},	
 		watch: {

+ 355 - 316
components/cm-module/listTemplate/buyagainList.vue

@@ -1,23 +1,47 @@
 <template>
-	<view class="container commodity-list-wrapper" :style="{'overflow':(showSkeleton? 'hidden' : 'auto'),'height': (showSkeleton? windowHeight + 'px' : 'auto')}">
+	<view
+		class="container commodity-list-wrapper"
+		:style="{ overflow: showSkeleton ? 'hidden' : 'auto', height: showSkeleton ? windowHeight + 'px' : 'auto' }"
+	>
 		<list-skeleton v-if="showSkeleton"></list-skeleton>
-		<view class="product-container" v-if="!isShowEmpty" :style="{paddingTop:searchStatus?'112rpx':''}">
-			<scroll-view :style="{'height':scrollHeight+'px'}" @scrolltolower="scrolltolower" scroll-y v-if="productList.length > 0">
-				<view v-for="(item,index) in productList" :key="index" :id="item.productId" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.productId)">
-					<image mode='widthFix' :src="item.image"  class="list-img" alt="list-img"></image>
+		<view class="product-container" v-if="!isShowEmpty" :style="{ paddingTop: searchStatus ? '112rpx' : '' }">
+			<scroll-view
+				:style="{ height: scrollHeight + 'px' }"
+				@scrolltolower="scrolltolower"
+				scroll-y
+				v-if="productList.length > 0"
+			>
+				<view
+					v-for="(item, index) in productList"
+					:key="index"
+					:id="item.productId"
+					class="all-type-list-content commodity-list"
+					@click.stop="navToDetailPage(item.productId)"
+				>
+					<image mode="widthFix" :src="item.image" class="list-img" alt="list-img"></image>
 					<view class="list-details-info">
-						<text class="list-details-title">{{item.name}}</text>
-						<text class="list-details-specs">规格:{{item.unit !=null ? item.unit : ''}}</text>
-						<text class="list-details-miniQuantity">起订量:{{item.ladderPriceFlag == 1 ? item.maxBuyNumber : item.minBuyNumber}}</text>
+						<text class="list-details-title">{{ item.name }}</text>
+						<text class="list-details-specs">规格:{{ item.unit != null ? item.unit : '' }}</text>
+						<text class="list-details-miniQuantity"
+							>起订量:{{ item.ladderPriceFlag == 1 ? item.maxBuyNumber : item.minBuyNumber }}</text
+						>
 						<view class="list-details-price">
 							<view class="list-shop">
 								<view class="list-price-none" v-if="item.repurchaseFlag == 1">
-									<text class="price-none">¥{{item.originalPrice}}</text>
+									<text class="price-none">¥{{ item.originalPrice }}</text>
 									<text class="iconfont icon-wenhao" @click.stop="repurchModel"></text>
 								</view>
 								<view class="list-price" v-else>
-									<text class="price-larger" :class="PromotionsFormat(item.promotions) ? 'none' : ''">
-										¥{{ (PromotionsFormat(item.promotions) ? item.originalPrice : item.price) | NumFormat }}
+									<text
+										class="price-larger"
+										:class="
+											PromotionsFormat(item.promotions) || item.svipProductFlag == 1 ? 'none' : ''
+										"
+									>
+										¥{{
+											(PromotionsFormat(item.promotions) ? item.originalPrice : item.price)
+												| NumFormat
+										}}
 									</text>
 								</view>
 							</view>
@@ -26,396 +50,411 @@
 						<view class="list-details-price">
 							<view class="floor-item-act">
 								<view class="coupon-tags" v-if="item.couponsLogo">优惠券</view>
-								<template v-if="item.actStatus==1">
+								<template v-if="item.actStatus == 1">
 									<view class="floor-tags" v-if="PromotionsFormat(item.promotions)">
-										{{item.promotions.name}}<text>:¥{{ item.price | NumFormat }}</text>
+										{{ item.promotions.name }}<text>:¥{{ item.price | NumFormat }}</text>
 									</view>
-									<view class="floor-tags" v-else>{{item.promotions.name}}</view>	
+									<view class="floor-tags" v-else>{{ item.promotions.name }}</view>
 								</template>
 								<template v-if="item.svipProductFlag == 1">
 									<view class="svip-tags">
-										<view class="tags">SVIP</view> 
-										<!-- <view class="price">{{ item.svipPriceTag }}</view> -->
+										<view class="tags">SVIP</view>
+										<view class="price">{{ item.svipPriceTag }}</view>
 									</view>
 								</template>
 							</view>
-						</view>	
+						</view>
 					</view>
 				</view>
 				<view v-if="showLoading && productList.length > 4 && !showRegularBtn">
-					<view class="loading-wrapper loading-wrapper-now" v-if="loadingNow">{{loadingText}}<text v-if="loadingText === '已至底部'">‧ ‧ ‧</text></view>
-					<view class="loading-wrapper loading-wrapper-btm" v-else>———<text class="btm-text">已至底部</text>———</view>
+					<view class="loading-wrapper loading-wrapper-now" v-if="loadingNow"
+						>{{ loadingText }}<text v-if="loadingText === '已至底部'">‧ ‧ ‧</text></view
+					>
+					<view class="loading-wrapper loading-wrapper-btm" v-else
+						>———<text class="btm-text">已至底部</text>———</view
+					>
 				</view>
 			</scroll-view>
 		</view>
 		<view class="empty-container" v-else>
-			<image class="empty-container-image" src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AWdWzAAGlgAP0das422.png" mode="aspectFit"></image>
+			<image
+				class="empty-container-image"
+				src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AWdWzAAGlgAP0das422.png"
+				mode="aspectFit"
+			></image>
 			<text class="error-text">您还没有购买过任何商品哟~</text>
 		</view>
 		<!-- 可拖动悬浮按钮 -->
-		<cm-drag :cartNum="cartQuantity" 
-				 :isDock="true"
-				 :existTabBar="true" 
-				 @btnClick="btnClick" 
-				 @btnTouchstart="btnTouchstart" 
-				 @btnTouchend="btnTouchend">
+		<cm-drag
+			:cartNum="cartQuantity"
+			:isDock="true"
+			:existTabBar="true"
+			@btnClick="btnClick"
+			@btnTouchstart="btnTouchstart"
+			@btnTouchend="btnTouchend"
+		>
 		</cm-drag>
 		<!-- 透明模态层 -->
-		<modal-layer v-if='isModallayer'></modal-layer>
+		<modal-layer v-if="isModallayer"></modal-layer>
 	</view>
 </template>
 
 <script>
-	import listSkeleton from '@/components/cm-module/listTemplate/listSkeleton'
-	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'
-	export default{
-		name:'productList',
-		components:{
-			listSkeleton,
-			modalLayer,
-			uniStars,
-			cmDrag
-		},
-		data(){
-			return{
-				isShowClose:false,
-				searchInputVal:'',
-				isModallayer:false,
-				windowHeight: '',
-				showSkeleton: true,
-				isShowEmpty: false,
-				userId: '',
-				scrollHeight: '',
-				productList: [],
-				showLoading: false,
-				loadingNow: true,
-				loadingText: '上拉加载更多',
-				pageSize: 10,
-				pageNum: 1,
-				hasNextPage: false,
-				pullFlag: true,
-				fromRegularPurchasePage: false,
-				cartQuantity: 0,
-				showRegularBtn: false,
-				isPrecedence:false,
-				windowWidth:'',
-				windowHeight:'',
+import listSkeleton from '@/components/cm-module/listTemplate/listSkeleton'
+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'
+export default {
+	name: 'productList',
+	components: {
+		listSkeleton,
+		modalLayer,
+		uniStars,
+		cmDrag
+	},
+	data() {
+		return {
+			isShowClose: false,
+			searchInputVal: '',
+			isModallayer: false,
+			windowHeight: '',
+			showSkeleton: true,
+			isShowEmpty: false,
+			userId: '',
+			scrollHeight: '',
+			productList: [],
+			showLoading: false,
+			loadingNow: true,
+			loadingText: '上拉加载更多',
+			pageSize: 10,
+			pageNum: 1,
+			hasNextPage: false,
+			pullFlag: true,
+			fromRegularPurchasePage: false,
+			cartQuantity: 0,
+			showRegularBtn: false,
+			isPrecedence: false,
+			windowWidth: '',
+			windowHeight: ''
+		}
+	},
+	created() {
+		this.setScrollHeight()
+		this.$parent.getClubProductNum()
+		this.$api.getComStorage('orderUserInfo').then(resolve => {
+			this.userId = resolve.userID
+			this.getProductAgainInfo(false)
+		})
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo'])
+	},
+	methods: {
+		scrolltolower() {
+			if (this.hasNextPage && this.pullFlag) {
+				this.getProductAgainInfo(true)
 			}
 		},
-		created() {
-			this.setScrollHeight()		
-			this.$parent.getClubProductNum()
-			this.$api.getComStorage('orderUserInfo').then((resolve) =>{
-				this.userId = resolve.userID
-				this.getProductAgainInfo(false)
-			})
+		setScrollHeight() {
+			const { windowHeight, pixelRatio } = wx.getSystemInfoSync()
+			this.windowHeight = windowHeight - 1
+			this.scrollHeight = windowHeight - 1
 		},
-		filters: {
-			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2)
-			},
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo'])
-		},
-		methods:{
-			scrolltolower() {
-				if(this.hasNextPage && this.pullFlag) {
-					this.getProductAgainInfo(true)
-				}
-			},
-			setScrollHeight() {
-				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.ProductService.GetRepeatBuyAgainProductList(
-					{
-						userId:this.userId,
-						pageNum:this.pageNum,
-						pageSize:this.pageSize,
-					}
-				)
-				.then(response =>{
+		getProductAgainInfo(loadMore) {
+			this.showLoading = true
+			this.loadingNow = true
+			this.loadingText = '加载中'
+			this.isShowEmpty = false
+			if (loadMore) {
+				this.pageNum += 1
+			}
+			this.ProductService.GetRepeatBuyAgainProductList({
+				userId: this.userId,
+				pageNum: this.pageNum,
+				pageSize: this.pageSize
+			})
+				.then(response => {
 					this.isShowWrapper = true
 					this.showSkeleton = false
 					const listData = response.data.results
-					if(listData && listData.length > 0){
+					if (listData && listData.length > 0) {
 						this.hasNextPage = response.data.hasNextPage
 						this.isShowEmpty = false
-						if(loadMore) {
-							this.productList = [...this.productList,...listData]
+						if (loadMore) {
+							this.productList = [...this.productList, ...listData]
 						} else {
 							this.productList = listData
 							console.log(this.productList)
 						}
 						//价格显示处理
-						let isActFlg,newProductList=[]
-						this.productList.map((item, index)=> {
+						let isActFlg,
+							newProductList = []
+						this.productList.map((item, index) => {
 							console.log(item)
-							if(item.actStatus == 1){
+							if (item.actStatus == 1) {
 								isActFlg = true
-							}else if(item.actStatus == 1 && item.ladderPriceFlag == 1){
+							} else if (item.actStatus == 1 && item.ladderPriceFlag == 1) {
 								isActFlg = true
-							}else{
+							} else {
 								isActFlg = false
 							}
-							newProductList.push(Object.assign({},item,{isShowActFlg:isActFlg}))
+							newProductList.push(Object.assign({}, item, { isShowActFlg: isActFlg }))
 						})
 						this.productList = newProductList
 						console.log(this.productList)
 						// 防上拉暴滑
 						this.pullFlag = false
-						setTimeout(()=>{
+						setTimeout(() => {
 							this.pullFlag = true
-						},500)
+						}, 500)
 						// 底部提示文案
-						if(this.hasNextPage) {
+						if (this.hasNextPage) {
 							this.loadingText = '上拉加载更多'
 						} else {
 							this.showLoading = true
 							this.loadingNow = false
 						}
 					} else {
-						if(!loadMore) {
+						if (!loadMore) {
 							this.isShowEmpty = true
 						}
 					}
 				})
-				.catch(error =>{
-					this.$util.msg(error.msg,2000)
+				.catch(error => {
+					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
-			},
-			repurchModel(){
-				this.$util.modal('','此商品的价格有变化,原来的购买价已不适用','知道了','',false,() =>{})
-			},
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
-					}
-				}
-				return false
-			},
-			onShowClose () {//输入框失去焦点时触发
-				if(this.searchInputVal != ''){
-					this.isShowClose = true
-				}else{					
-					this.isShowClose = false
+		},
+		operationHanld(prop) {
+			this.$emit('operationConfim', prop)
+		},
+		navToDetailPage(id) {
+			this.isModallayer = true
+			this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+			this.isModallayer = false
+		},
+		repurchModel() {
+			this.$util.modal('', '此商品的价格有变化,原来的购买价已不适用', '知道了', '', false, () => {})
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
 				}
-			},
-			delInputText(){//清除输入框内容
-				this.searchInputVal = ''
+			}
+			return false
+		},
+		onShowClose() {
+			//输入框失去焦点时触发
+			if (this.searchInputVal != '') {
+				this.isShowClose = true
+			} else {
 				this.isShowClose = false
-			},
-			btnClick() {
-				this.$emit('goCartPage')
-			},
-			btnTouchstart() {
-				// console.log('btnTouchstart');
-			},
-			btnTouchend() {
-				// console.log('btnTouchend');
 			}
+		},
+		delInputText() {
+			//清除输入框内容
+			this.searchInputVal = ''
+			this.isShowClose = false
+		},
+		btnClick() {
+			this.$emit('goCartPage')
+		},
+		btnTouchstart() {
+			// console.log('btnTouchstart');
+		},
+		btnTouchend() {
+			// console.log('btnTouchend');
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.commodity-list-wrapper {
-		scroll-view {
-			height: 100%;
-		}
-		.empty-container-image {
-			margin-top: -300rpx;
-		}
-		.toIndexPage {
-			bottom: 390rpx;
-		}
-		.show-more-btn {
-			width: 276rpx;
-			height: 52rpx;
-			line-height: 52rpx;
-			border: 2rpx solid #D8D8D8;
-			background: #F7F7F7;
-			font-size: 26rpx;
-			margin: 26rpx 0;
-			position: absolute;
-			left: 50%;
-			margin-left: -138rpx;
-		}
+.commodity-list-wrapper {
+	scroll-view {
+		height: 100%;
 	}
-	.all-type-list-content {
-		height: auto;
-		padding: 24rpx;
-		background: #fff;
-		margin-bottom: 2rpx;
-		display: flex;
-		flex-direction: row;
-		box-sizing: content-box;
-		.list-img {
-			width: 240rpx;
-			height: 240rpx !important;
-			margin-right: 26rpx;
-			border-radius: 10rpx;
-			border: 2rpx solid #f3f3f3;
-		}
+	.empty-container-image {
+		margin-top: -300rpx;
 	}
-	.list-details-info {
-		width: 442rpx;
-		flex-direction: column;
+	.toIndexPage {
+		bottom: 390rpx;
+	}
+	.show-more-btn {
+		width: 276rpx;
+		height: 52rpx;
+		line-height: 52rpx;
+		border: 2rpx solid #d8d8d8;
+		background: #f7f7f7;
 		font-size: 26rpx;
-		position: relative;
-		.list-details-title {
-			line-height: 38rpx;
-			text-overflow: ellipsis;
-			overflow: hidden;
-			display: -webkit-box;
-			-webkit-line-clamp: 2;
-			line-clamp: 2;
-			-webkit-box-orient: vertical;
-		}
-		.list-details-specs {
-			width: 100%;
-			display: inline-block;
-			margin-top: 8rpx;
-			color: #999999;
-		}
-		.list-details-miniQuantity {
-			width: 100%;
-			display: inline-block;
-			margin-top: 7rpx;
-		}
+		margin: 26rpx 0;
+		position: absolute;
+		left: 50%;
+		margin-left: -138rpx;
 	}
-	.list-details-price {
+}
+.all-type-list-content {
+	height: auto;
+	padding: 24rpx;
+	background: #fff;
+	margin-bottom: 2rpx;
+	display: flex;
+	flex-direction: row;
+	box-sizing: content-box;
+	.list-img {
+		width: 240rpx;
+		height: 240rpx !important;
+		margin-right: 26rpx;
+		border-radius: 10rpx;
+		border: 2rpx solid #f3f3f3;
+	}
+}
+.list-details-info {
+	width: 442rpx;
+	flex-direction: column;
+	font-size: 26rpx;
+	position: relative;
+	.list-details-title {
+		line-height: 38rpx;
+		text-overflow: ellipsis;
+		overflow: hidden;
+		display: -webkit-box;
+		-webkit-line-clamp: 2;
+		line-clamp: 2;
+		-webkit-box-orient: vertical;
+	}
+	.list-details-specs {
 		width: 100%;
+		display: inline-block;
+		margin-top: 8rpx;
+		color: #999999;
+	}
+	.list-details-miniQuantity {
+		width: 100%;
+		display: inline-block;
+		margin-top: 7rpx;
+	}
+}
+.list-details-price {
+	width: 100%;
+	float: left;
+	line-height: 54rpx;
+	.floor-item-act {
+		height: 54rpx;
+		text-align: center;
+		box-sizing: border-box;
 		float: left;
-		line-height: 54rpx;
-		.floor-item-act{
-			height: 54rpx;
-			text-align: center;
-			box-sizing: border-box;
+		padding: 11rpx 0;
+	}
+	.price-icon {
+		width: 22rpx;
+		height: 28rpx;
+		vertical-align: middle;
+		margin-right: 10rpx;
+	}
+	.price-icon + text {
+		font-size: 25rpx;
+		vertical-align: middle;
+	}
+	.list-login-now {
+		width: 375rpx;
+		color: #f8c499;
+		.p-no {
 			float: left;
-			padding: 11rpx 0;
-		}
-		.price-icon {
-			width: 22rpx;
-			height: 28rpx;
-			vertical-align: middle;
+			font-size: $font-size-24;
+			color: $color-system;
 			margin-right: 10rpx;
 		}
-		.price-icon + text {
-			font-size: 25rpx;
-			vertical-align: middle;
-		}
-		.list-login-now {
-			width: 375rpx;
-			color: #F8C499;
-			.p-no{
-				float: left;
-				font-size: $font-size-24;
-				color: $color-system;
-				margin-right: 10rpx;
-			}
-		}
-		.login-now {
-			padding: 10rpx 10rpx 10rpx 0;
-		}
-		.list-none{
-			margin-top: 15rpx;
-			.price-small{
-				font-size:$font-size-24;
-				line-height: 40rpx;
-				color: #FF2A2A;
-			}
+	}
+	.login-now {
+		padding: 10rpx 10rpx 10rpx 0;
+	}
+	.list-none {
+		margin-top: 15rpx;
+		.price-small {
+			font-size: $font-size-24;
+			line-height: 40rpx;
+			color: #ff2a2a;
 		}
-		.list-shop{
-			height: auto;
+	}
+	.list-shop {
+		height: auto;
+		float: left;
+		.list-price {
+			width: 100%;
+			color: #ff2a2a;
 			float: left;
-			.list-price {
-				width: 100%;
-				color: #FF2A2A;
-				float: left;
-				line-height:54rpx ;
-				align-items: center;
-				justify-content: center;
-				.price-larger {
-					font-size: $font-size-30;
-					display: inline-block;
-					&.none{
-						text-decoration: line-through;
-						color: #999999;
-					}
-				}
-			}
-			.list-price-none{
-				width: 100%;
-				.price-none{
+			line-height: 54rpx;
+			align-items: center;
+			justify-content: center;
+			.price-larger {
+				font-size: $font-size-30;
+				display: inline-block;
+				&.none {
 					text-decoration: line-through;
 					color: #999999;
-					display: inline-block;
-				}
-				.icon-wenhao{
-					font-size: $font-size-32;
-					color: #0091FF;
-					margin-left: 6rpx;
 				}
 			}
 		}
-		.add-cart-btn {
-			float: right;
-			width: 140rpx;
-			height: 54rpx;
-			line-height: 54rpx;
-			border-radius: 27rpx;
-			color: #fff;
-			font-size: 24rpx;
-			margin-right: 0;
-			background:#FFFFFF;
-			border: 1px solid #C9C9C9;
-			color: $text-color;
+		.list-price-none {
+			width: 100%;
+			.price-none {
+				text-decoration: line-through;
+				color: #999999;
+				display: inline-block;
+			}
+			.icon-wenhao {
+				font-size: $font-size-32;
+				color: #0091ff;
+				margin-left: 6rpx;
+			}
 		}
 	}
-	.cart-icon {
-		width: 92rpx;
-		height: 92rpx;
-		border-radius: 50%;
-		background: rgba(255, 147, 0, 0.5);
-		position: fixed;
-		right: 24rpx;
-		bottom: 28%;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		cursor: pointer;
-		image {
-			width: 58rpx;
-			height: 58rpx;
-		}
-		text {
-			font-size: 28rpx;
-			position: absolute;
-			top: -10rpx;
-			right: 0;
-		}
+	.add-cart-btn {
+		float: right;
+		width: 140rpx;
+		height: 54rpx;
+		line-height: 54rpx;
+		border-radius: 27rpx;
+		color: #fff;
+		font-size: 24rpx;
+		margin-right: 0;
+		background: #ffffff;
+		border: 1px solid #c9c9c9;
+		color: $text-color;
+	}
+}
+.cart-icon {
+	width: 92rpx;
+	height: 92rpx;
+	border-radius: 50%;
+	background: rgba(255, 147, 0, 0.5);
+	position: fixed;
+	right: 24rpx;
+	bottom: 28%;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	cursor: pointer;
+	image {
+		width: 58rpx;
+		height: 58rpx;
+	}
+	text {
+		font-size: 28rpx;
+		position: absolute;
+		top: -10rpx;
+		right: 0;
 	}
+}
 </style>

+ 12 - 8
components/cm-module/listTemplate/immediatelyList.vue

@@ -70,7 +70,11 @@
 										<view class="list-price">
 											<text
 												class="price-larger"
-												:class="PromotionsFormat(pros.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(pros.promotions) || item.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												¥{{
 													(PromotionsFormat(pros.promotions)
@@ -86,16 +90,16 @@
 							<view class="list-details-price">
 								<view class="floor-item-act">
 									<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
-									<template v-if="pros.actStatus==1">
+									<template v-if="pros.actStatus == 1">
 										<view class="floor-tags" v-if="PromotionsFormat(pros.promotions)">
-											{{pros.promotions.name}}<text>:¥{{ pros.price | NumFormat }}</text>
+											{{ pros.promotions.name }}<text>:¥{{ pros.price | NumFormat }}</text>
 										</view>
-										<view class="floor-tags" v-else>{{pros.promotions.name}}</view>	
+										<view class="floor-tags" v-else>{{ pros.promotions.name }}</view>
 									</template>
 									<template v-if="pros.svipProductFlag == 1">
 										<view class="svip-tags">
-											<view class="tags">SVIP</view> 
-											<!-- <view class="price">{{ pros.svipPriceTag }}</view> -->
+											<view class="tags">SVIP</view>
+											<view class="price">{{ pros.svipPriceTag }}</view>
 										</view>
 									</template>
 								</view>
@@ -165,8 +169,8 @@
 													</template>
 													<template v-if="pros.svipProductFlag == 1">
 														<view class="svip-tags">
-															<view class="tags">SVIP</view> 
-															<!-- <view class="price">{{ pros.svipPriceTag }}</view> -->
+															<view class="tags">SVIP</view>
+															<view class="price">{{ pros.svipPriceTag }}</view>
 														</view>
 													</template>
 												</view>

+ 1 - 1
components/cm-module/listTemplate/productList.vue

@@ -19,7 +19,7 @@
 									<text class="iconfont icon-wenhao" @click.stop="repurchModel"></text>
 								</view>
 								<view class="list-price" v-else>
-									<text class="price-larger" :class="PromotionsFormat(item.promotions) ? 'none' : ''">
+									<text class="price-larger" :class="PromotionsFormat(item.promotions) || item.svipProductFlag == 1 ? 'none' : ''">
 										¥{{ (PromotionsFormat(item.promotions) ? item.originalPrice : item.price) | NumFormat }}
 									</text>
 								</view>

+ 10 - 7
components/cm-module/orderDetails/goodsList.vue

@@ -56,13 +56,10 @@
 										>{{ pros.productPromotion.name }}</view
 									>
 								</template>
-								<template v-else>
-									<view class="svip-tags" v-if="pros.ladderPriceFlag == 1">
-										<view class="tags">SVIP</view> <view class="price">8折</view>
-									</view>
-									<view class="svip-tags" v-if="pros.ladderPriceFlag == 0">
+								<template v-if="pros.svipPriceFlag == 1">
+									<view class="svip-tags">
 										<view class="tags">SVIP</view>
-										<view class="price">¥{{ pros.price | NumFormat }}</view>
+										<view class="price">{{ pros.svipPriceTag }}</view>
 									</view>
 								</template>
 							</view>
@@ -134,11 +131,13 @@ export default {
 	},
 	data() {
 		return {
-			initData: []
+			initData: [],
+			vipFlag:0,
 		}
 	},
 	created() {
 		this.initData = this.shopOrderData
+		this.initGetStotage()
 	},
 	filters: {
 		NumFormat(value) {
@@ -157,6 +156,10 @@ export default {
 	},
 	computed: {},
 	methods: {
+		async initGetStotage() {
+			const userInfo = await this.$api.getStorage()
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+		},
 		goShophome(id) {
 			this.$api.navigateTo(`/pages/supplier/user/my-shop?shopId=${id}`)
 		},

+ 16 - 3
components/cm-module/pageFloorTemplate/templateA.vue

@@ -47,7 +47,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -79,7 +84,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -96,7 +105,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateB.vue

@@ -63,7 +63,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -95,7 +100,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -112,7 +121,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateC.vue

@@ -63,7 +63,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -95,7 +100,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -112,7 +121,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateD.vue

@@ -79,7 +79,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -111,7 +116,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -128,7 +137,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateE.vue

@@ -47,7 +47,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -79,7 +84,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -96,7 +105,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateF.vue

@@ -31,7 +31,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -63,7 +68,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -80,7 +89,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateG.vue

@@ -31,7 +31,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -63,7 +68,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -80,7 +89,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateI.vue

@@ -79,7 +79,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -111,7 +116,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -128,7 +137,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 7 - 3
components/cm-module/pageFloorTemplate/templateJ.vue

@@ -79,7 +79,7 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1? 'none' : ''"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -111,7 +111,7 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1? 'none' : ''"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -128,7 +128,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none' 
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageFloorTemplate/templateK.vue

@@ -111,7 +111,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -143,7 +148,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -160,7 +169,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateA.vue

@@ -48,7 +48,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -80,7 +85,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -97,7 +106,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateB.vue

@@ -64,7 +64,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -96,7 +101,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -113,7 +122,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateC.vue

@@ -64,7 +64,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -96,7 +101,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -113,7 +122,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateD.vue

@@ -80,7 +80,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -112,7 +117,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -129,7 +138,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateE.vue

@@ -48,7 +48,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -80,7 +85,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -97,7 +106,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateF.vue

@@ -32,7 +32,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -64,7 +69,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -81,7 +90,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateG.vue

@@ -32,7 +32,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -64,7 +69,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -81,7 +90,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 18 - 3
components/cm-module/pageTemplate/templateH.vue

@@ -42,7 +42,12 @@
 												<view
 													class="price tui-skeleton-rect"
 													v-else
-													:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+													:class="
+														PromotionsFormat(item.product.promotions) ||
+														item.product.svipProductFlag == 1
+															? 'none'
+															: ''
+													"
 												>
 													<text class="p sm">¥</text>
 													<text class="p big">{{
@@ -74,7 +79,12 @@
 											<view
 												class="price tui-skeleton-rect"
 												v-if="item.product.priceFlag === 0"
-												:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(item.product.promotions) ||
+													item.product.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												<text class="p sm">¥</text>
 												<text class="p big">{{
@@ -91,7 +101,12 @@
 											<view
 												class="price tui-skeleton-rect"
 												v-else
-												:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(item.product.promotions) ||
+													item.product.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												<text class="p sm">¥</text>
 												<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateI.vue

@@ -80,7 +80,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -112,7 +117,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -129,7 +138,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateJ.vue

@@ -81,7 +81,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -113,7 +118,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -130,7 +139,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 16 - 3
components/cm-module/pageTemplate/templateK.vue

@@ -112,7 +112,12 @@
 									<view
 										class="price tui-skeleton-rect"
 										v-else
-										:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(item.product.promotions) ||
+											item.product.svipProductFlag == 1
+												? 'none'
+												: ''
+										"
 									>
 										<text class="p sm">¥</text>
 										<text class="p big">{{
@@ -144,7 +149,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-if="item.product.priceFlag === 0"
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{
@@ -161,7 +170,11 @@
 								<view
 									class="price tui-skeleton-rect"
 									v-else
-									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+									:class="
+										PromotionsFormat(item.product.promotions) || item.product.svipProductFlag == 1
+											? 'none'
+											: ''
+									"
 								>
 									<text class="p sm">¥</text>
 									<text class="p big">{{

+ 8 - 8
components/cm-module/productDetails/cm-price.vue

@@ -34,11 +34,11 @@
 				<view class="wrap-main-item">
 					<view
 						class="p-price tui-skeleton-fillet"
-						:class="PromotionsFormat(product.promotions) ? 'none' : ''"
+						:class="(PromotionsFormat(product.promotions) || product.svipProductFlag == 1) ? 'none' : ''"
 					>
 						<text class="txt sm">¥</text>
 						<text class="txt big">{{
-							(PromotionsFormat(product.promotions) ? product.originalPrice : product.price) | NumFormat
+							((PromotionsFormat(product.promotions) || product.svipProductFlag == 1) ? product.originalPrice : product.price) | NumFormat
 						}}</text>
 					</view>
 					<view class="floor-item-act">
@@ -77,11 +77,11 @@
 					<view
 						v-else
 						class="p-price tui-skeleton-fillet"
-						:class="PromotionsFormat(product.promotions) ? 'none' : ''"
+						:class="( PromotionsFormat(product.promotions) || product.svipProductFlag == 1 )? 'none' : ''"
 					>
 						<text class="txt sm">¥</text>
 						<text class="txt big">{{
-							(PromotionsFormat(product.promotions) ? product.originalPrice : product.price) | NumFormat
+							((PromotionsFormat(product.promotions) || product.svipProductFlag == 1) ? product.originalPrice : product.price) | NumFormat
 						}}</text>
 					</view>
 					<view class="floor-item-act">
@@ -122,11 +122,11 @@
 						<view
 							v-else
 							class="p-price tui-skeleton-fillet"
-							:class="PromotionsFormat(product.promotions) ? 'none' : ''"
+							:class="(PromotionsFormat(product.promotions) || product.svipProductFlag == 1)? 'none' : ''"
 						>
 							<text class="txt sm">¥</text>
 							<text class="txt big">{{
-								(PromotionsFormat(product.promotions) ? product.originalPrice : product.price)
+								((PromotionsFormat(product.promotions) || product.svipProductFlag == 1 )? product.originalPrice : product.price)
 									| NumFormat
 							}}</text>
 						</view>
@@ -182,11 +182,11 @@
 					<view class="wrap-main-item">
 						<view
 							class="p-price tui-skeleton-fillet"
-							:class="PromotionsFormat(product.promotions) ? 'none' : ''"
+							:class="(PromotionsFormat(product.promotions) || product.svipProductFlag == 1 )? 'none' : ''"
 						>
 							<text class="txt sm">¥</text>
 							<text class="txt big">{{
-								(PromotionsFormat(product.promotions) ? product.originalPrice : product.price)
+								((PromotionsFormat(product.promotions) || product.svipProductFlag == 1 )? product.originalPrice : product.price)
 									| NumFormat
 							}}</text>
 						</view>

+ 44 - 31
pages/goods/goods-classify.vue

@@ -112,13 +112,14 @@
 											<view class="floor-tags" v-else>{{ item.promotions.name }}</view>
 										</template>
 										<template v-if="item.svipProductFlag == 1">
-											<view class="svip-tags" v-if="hasLogin && userIdentity == 3 && item.priceFlag != 1">
-												<view class="tags">SVIP</view> 
+											<view
+												class="svip-tags"
+												v-if="hasLogin && userIdentity == 3 && item.priceFlag != 1"
+											>
+												<view class="tags">SVIP</view>
 												<view class="price">{{ item.svipPriceTag }}</view>
 											</view>
-											<view class="svip-tags" v-else>
-												<view class="tags none">SVIP</view>
-											</view>
+											<view class="svip-tags" v-else> <view class="tags none">SVIP</view> </view>
 										</template>
 									</view>
 								</template>
@@ -138,13 +139,14 @@
 											<view class="floor-tags" v-else>{{ item.promotions.name }}</view>
 										</template>
 										<template v-if="item.svipProductFlag == 1">
-											<view class="svip-tags" v-if="hasLogin  && userIdentity == 2 && item.priceFlag != 1">
-												<view class="tags">SVIP</view> 
+											<view
+												class="svip-tags"
+												v-if="hasLogin && userIdentity == 2 && item.priceFlag != 1"
+											>
+												<view class="tags">SVIP</view>
 												<view class="price">{{ item.svipPriceTag }}</view>
 											</view>
-											<view class="svip-tags" v-else>
-												<view class="tags none">SVIP</view>
-											</view>
+											<view class="svip-tags" v-else> <view class="tags none">SVIP</view> </view>
 										</template>
 									</view>
 								</template>
@@ -154,7 +156,11 @@
 										<template v-else>
 											<text
 												class="price-larger"
-												:class="PromotionsFormat(item.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(item.promotions) || item.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												¥{{
 													(PromotionsFormat(item.promotions)
@@ -176,7 +182,11 @@
 											<text
 												v-else
 												class="price-larger"
-												:class="PromotionsFormat(item.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(item.promotions) || item.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												¥{{
 													(PromotionsFormat(item.promotions)
@@ -197,7 +207,11 @@
 											<text
 												v-else
 												class="price-larger"
-												:class="PromotionsFormat(item.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(item.promotions) || item.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												¥{{
 													(PromotionsFormat(item.promotions)
@@ -221,7 +235,11 @@
 										<template v-else>
 											<text
 												class="price-larger"
-												:class="PromotionsFormat(item.promotions) ? 'none' : ''"
+												:class="
+													PromotionsFormat(item.promotions) || item.svipProductFlag == 1
+														? 'none'
+														: ''
+												"
 											>
 												¥{{
 													(PromotionsFormat(item.promotions)
@@ -342,7 +360,8 @@ export default {
 			showSkeleton: true,
 			showEmpty: false,
 			userId: 0,
-			userIdentity: '',
+			vipFlag: 0,
+			userIdentity: 0,
 			listData: [],
 			windowHeight: '',
 			scrollHeight: '',
@@ -368,7 +387,7 @@ export default {
 			wxLogin.wxLoginAuthorize()
 		}
 		this.SetScrollHeight()
-		this.InitOption(option)
+		this.initGetStotage(option)
 	},
 
 	filters: {
@@ -378,25 +397,19 @@ export default {
 		}
 	},
 	methods: {
-		InitOption(option) {
+		async initGetStotage(option) {
+			const userInfo = await this.$api.getStorage()
 			this.listQuery.id = option.id
 			this.listQuery.identity = this.identity
 			this.listQuery.idType = this.classifyType = Number(option.classType)
 			uni.setNavigationBarTitle({ title: option.title })
-			this.$api
-				.getComStorage('userInfo')
-				.then(resolve => {
-					this.userId = resolve.userId ? resolve.userId : 0
-					this.shopId = resolve.shopId ? resolve.shopId : 0
-					this.userIdentity = resolve.userIdentity
-					this.isRequest = true
-					this.GetProductListInfo()
-					this.GetProductOneClassly()
-				})
-				.catch(error => {
-					this.GetProductListInfo()
-					this.GetProductOneClassly()
-				})
+			this.userId = userInfo.userId ? userInfo.userId : 0
+			this.shopId = userInfo.shopId ? userInfo.shopId : 0
+			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			this.isRequest = true
+			this.GetProductListInfo()
+			this.GetProductOneClassly()
 			console.log(this.classifyID)
 		},
 		GetProductOneClassly() {

+ 3 - 6
pages/search/search-order.vue

@@ -154,13 +154,10 @@
 														>{{ pros.productPromotion.name }}</view
 													>
 												</template>
-												<template v-else>
-													<view class="svip-tags" v-if="pros.ladderPriceFlag == 1 && pros.productType ==0">
-														<view class="tags">SVIP</view> <view class="price">8折</view>
-													</view>
-													<view class="svip-tags" v-if="pros.ladderPriceFlag == 0 && pros.productType ==0">
+												<template v-if="pros.svipPriceFlag == 1">
+													<view class="svip-tags">
 														<view class="tags">SVIP</view>
-														<view class="price">¥{{ pros.price | NumFormat }}</view>
+														<view class="price">{{ pros.svipPriceTag }}</view>
 													</view>
 												</template>
 											</view>

+ 20 - 17
pages/search/search.vue

@@ -150,16 +150,12 @@
 											class="floor-tags"
 											v-if="pros.actStatus == 1 && PromotionsFormat(pros.promotions)"
 										>
-											{{ pros.promotions.name }}
-											<text>:¥{{ pros.price | NumFormat }}</text
-											>
+											{{ pros.promotions.name }} <text>:¥{{ pros.price | NumFormat }}</text>
 										</view>
 										<view class="floor-tags" v-else>{{ pros.promotions.name }}</view>
 									</template>
 									<template v-if="pros.svipProductFlag == 1">
-										<view class="svip-tags">
-											<view class="tags none">SVIP</view>
-										</view>
+										<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
 									</template>
 								</view>
 							</template>
@@ -182,16 +178,11 @@
 										<template v-if="pros.priceFlag != 1 && hasLogin && userIdentity == 2">
 											<view class="svip-tags">
 												<view class="tags">SVIP</view>
-												<view
-													class="price"
-													>{{ pros.svipPriceTag }}</view
-												>
+												<view class="price">{{ pros.svipPriceTag }}</view>
 											</view>
 										</template>
 										<template v-else>
-											<view class="svip-tags">
-												<view class="tags none">SVIP</view>
-											</view>
+											<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
 										</template>
 									</template>
 								</view>
@@ -202,7 +193,9 @@
 									<text
 										v-else
 										class="price-larger"
-										:class="PromotionsFormat(pros.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1 ? 'none' : ''
+										"
 									>
 										¥{{
 											(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
@@ -222,7 +215,11 @@
 										<text
 											v-else
 											class="price-larger"
-											:class="PromotionsFormat(pros.promotions) ? 'none' : ''"
+											:class="
+												PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
+													? 'none'
+													: ''
+											"
 										>
 											¥{{
 												(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
@@ -240,7 +237,11 @@
 										<text
 											v-else
 											class="price-larger"
-											:class="PromotionsFormat(pros.promotions) ? 'none' : ''"
+											:class="
+												PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
+													? 'none'
+													: ''
+											"
 										>
 											¥{{
 												(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
@@ -263,7 +264,9 @@
 									<text
 										v-else
 										class="price-larger"
-										:class="PromotionsFormat(pros.promotions) ? 'none' : ''"
+										:class="
+											PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1 ? 'none' : ''
+										"
 									>
 										¥{{
 											(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)

+ 3 - 6
pages/seller/order/order-historylist.vue

@@ -158,13 +158,10 @@
 															>{{ pros.productPromotion.name }}</view
 														>
 													</template>
-													<template v-else>
-														<view class="svip-tags" v-if="pros.ladderPriceFlag == 1 && pros.productType ==0">
-															<view class="tags">SVIP</view> <view class="price">8折</view>
-														</view>
-														<view class="svip-tags" v-if="pros.ladderPriceFlag == 0 && pros.productType ==0">
+													<template v-if="pros.svipPriceFlag == 1">
+														<view class="svip-tags">
 															<view class="tags">SVIP</view>
-															<view class="price">¥{{ pros.price | NumFormat }}</view>
+															<view class="price">{{ pros.svipPriceTag }}</view>
 														</view>
 													</template>
 												</view>

+ 3 - 6
pages/seller/order/order-list.vue

@@ -169,13 +169,10 @@
 															>{{ pros.productPromotion.name }}</view
 														>
 													</template>
-													<template v-else>
-														<view class="svip-tags" v-if="pros.ladderPriceFlag == 1 && pros.productType ==0">
-															<view class="tags">SVIP</view> <view class="price">8折</view>
-														</view>
-														<view class="svip-tags" v-if="pros.ladderPriceFlag == 0 && pros.productType ==0">
+													<template v-if="pros.svipPriceFlag == 1">
+														<view class="svip-tags">
 															<view class="tags">SVIP</view>
-															<view class="price">¥{{ pros.price | NumFormat }}</view>
+															<view class="price">{{ pros.svipPriceTag }}</view>
 														</view>
 													</template>
 												</view>

+ 3 - 6
pages/seller/search/search-order.vue

@@ -152,13 +152,10 @@
 														>{{ pros.productPromotion.name }}</view
 													>
 												</template>
-												<template v-else>
-													<view class="svip-tags" v-if="pros.ladderPriceFlag == 1 && pros.productType ==0">
-														<view class="tags">SVIP</view> <view class="price">8折</view>
-													</view>
-													<view class="svip-tags" v-if="pros.ladderPriceFlag == 0 && pros.productType ==0">
+												<template v-if="pros.svipPriceFlag == 1">
+													<view class="svip-tags">
 														<view class="tags">SVIP</view>
-														<view class="price">¥{{ pros.price | NumFormat }}</view>
+														<view class="price">{{ pros.svipPriceTag }}</view>
 													</view>
 												</template>
 											</view>

+ 40 - 29
pages/supplier/user/my-shop.vue

@@ -91,17 +91,16 @@
 										</view>
 										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-else>
-										<view class="svip-tags" v-if="prop.ladderPriceFlag == 2">
-											<view class="tags none">SVIP</view>
-										</view>
-										<view class="svip-tags" v-if="prop.ladderPriceFlag == 1">
-											<view class="tags">SVIP</view> <view class="price">8折</view>
-										</view>
-										<view class="svip-tags" v-if="prop.ladderPriceFlag == 0">
-											<view class="tags">SVIP</view>
-											<view class="price">¥{{ prop.price | NumFormat }}</view>
-										</view>
+									<template v-if="prop.svipProductFlag == 1">
+										<template v-if="prop.priceFlag != 1">
+											<view class="svip-tags">
+												<view class="tags">SVIP</view>
+												<view class="price" v-if="prop.shopId == shopId">{{ prop.svipPriceTag }}</view>
+											</view>
+										</template>
+										<template v-else>
+											<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
+										</template>
 									</template>
 								</template>
 								<template v-else>
@@ -115,17 +114,16 @@
 										</view>
 										<view class="floor-tags" v-else>{{ prop.promotions.name }}</view>
 									</template>
-									<template v-else>
-										<view class="svip-tags" v-if="prop.ladderPriceFlag == 2">
-											<view class="tags none">SVIP</view>
-										</view>
-										<view class="svip-tags" v-if="prop.ladderPriceFlag == 1">
-											<view class="tags">SVIP</view> <view class="price">8折</view>
-										</view>
-										<view class="svip-tags" v-if="prop.ladderPriceFlag == 0">
-											<view class="tags">SVIP</view>
-											<view class="price">¥{{ prop.price | NumFormat }}</view>
-										</view>
+									<template v-if="prop.svipProductFlag == 1">
+										<template v-if="prop.priceFlag != 1 && userIdentity == 2">
+											<view class="svip-tags">
+												<view class="tags">SVIP</view>
+												<view class="price">{{ prop.svipPriceTag }}</view>
+											</view>
+										</template>
+										<template v-else>
+											<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
+										</template>
 									</template>
 								</template>
 							</view>
@@ -205,9 +203,6 @@
 										</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>
 								</view>
 							</view>
 						</view>
@@ -248,8 +243,16 @@
 										</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.svipProductFlag == 1">
+										<template v-if="prop.priceFlag != 1">
+											<view class="svip-tags">
+												<view class="tags">SVIP</view>
+												<view class="price" v-if="prop.shopId == shopId">{{ prop.svipPriceTag }}</view>
+											</view>
+										</template>
+										<template v-else>
+											<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
+										</template>
 									</template>
 								</template>
 								<template v-else>
@@ -263,8 +266,16 @@
 										</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.svipProductFlag == 1">
+										<template v-if="prop.priceFlag != 1 && userIdentity == 2">
+											<view class="svip-tags">
+												<view class="tags">SVIP</view>
+												<view class="price">{{ prop.svipPriceTag }}</view>
+											</view>
+										</template>
+										<template v-else>
+											<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
+										</template>
 									</template>
 								</template>
 							</view>

+ 279 - 330
pages/user/member/member-product.vue

@@ -1,390 +1,339 @@
 <template>
-	<view class="container clearfix">
-		<view class="cm-member-top">
-			<image class="banner" :src="banner" mode=""></image>
-		</view>
+	<view class="container clearfix" v-if="isRequest">
+		<view class="cm-member-top"> <image class="banner" :src="banner" mode=""></image> </view>
 		<view class="cm-member-main ">
 			<view class="cm-member-product clearfix">
-				<view 	v-for="(pro,index) in productList"
-						:key="index" 
-						:id="pro.productId" 
-						class="product-list" 
-						@click="productDetail(pro.productId)"
+				<view
+					v-for="(pro, index) in productList"
+					:key="index"
+					:id="pro.productId"
+					class="product-list"
+					@click="productDetail(pro.productId)"
 				>
-					<view class="product-image">
-						<image :src="pro.image" mode=""></image>
-					</view>
+					<view class="product-image"> <image :src="pro.image" mode=""></image> </view>
 					<view class="product-mains">
-						<view class="product-name">
-							{{ pro.name }}
-						</view>
+						<view class="product-name"> {{ pro.name }} </view>
 						<view class="product-tags">
 							<view class="floor-item-act">
-								<view class="coupon-tags">优惠券</view>
-								<template v-if="pro.actStatus== 1">
-									<view class="svip-tags" v-if='pro.proType == 0'>
-										<view class="tags none">SVIP</view>
-									</view>
-									<view class="svip-tags" v-if='pro.proType == 1'>
-										<view class="tags">SVIP</view>
-										<view class="price">{{ pro.discount }}</view>
-									</view>
-									<view class="svip-tags" v-if='pro.proType == 2'>
-										<view class="tags">SVIP</view>
-										<view class="price">¥{{ pro.discountPrice | NumFormat }}</view>
-									</view>
-								</template>
-								<template  v-else>
+								<view class="coupon-tags" v-if="pro.couponsLogo">优惠券</view>
+								<template v-if="pro.actStatus == 1">
 									<view class="floor-tags" v-if="PromotionsFormat(pro.promotions)">
-										{{pro.promotions.name}}
+										{{ 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 class="floor-tags" v-else>{{ pro.promotions.name }}</view>
+								</template>
+								<template v-if="pro.svipProductFlag == 1">
+									<template v-if="pro.priceFlag != 1 && userIdentity == 2">
+										<view class="svip-tags">
+											<view class="tags">SVIP</view>
+											<view class="price">{{ pro.svipPriceTag }}</view>
+										</view>
+									</template>
+									<template v-else>
+										<view class="svip-tags"> <view class="tags none">SVIP</view> </view>
+									</template>
 								</template>
 							</view>
 						</view>
 						<view class="product-price">
 							<view class="list-none" v-if="pro.priceFlag == 1">¥未公开价格</view>
-							<view class="list-none" v-else-if="pro.priceFlag == 2">¥价格仅会员可见</view>
-							<view class="list-none-price" v-else>¥{{ pro.price | NumFormat }}</view>
+							<template v-else>
+								<view class="list-none" v-if="pro.priceFlag == 2 && userIdentity == 4"
+									>¥价格仅会员可见</view
+								>
+								<view class="list-none-price" v-else>¥{{ pro.price | NumFormat }}</view>
+							</template>
 						</view>
 					</view>
 				</view>
 			</view>
+			<!--加载loadding-->
+			<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+			<tui-nomore :visible="!pullUpOn" :backgroundColor="'#F7F7F7'" :text="nomoreText"></tui-nomore>
+			<!--加载loadding-->
 		</view>
 		<!-- 透明模态层 -->
-		<modal-layer v-if='isModallayer'></modal-layer>
+		<modal-layer v-if="isModallayer"></modal-layer>
 	</view>
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex'
-	import modalLayer from '@/components/modal-layer'
-	export default {
-		components:{
-			modalLayer
+import { mapState, mapMutations } from 'vuex'
+import modalLayer from '@/components/modal-layer'
+export default {
+	components: {
+		modalLayer
+	},
+	data() {
+		return {
+			StaticUrl: this.$Static,
+			isModallayer: false,
+			banner: 'https://img.caimei365.com/group1/M00/00/28/rB-lGGE4XKWADKAdAANR7wZz3OQ936.jpg',
+			listQuery: {
+				userId: 0,
+				source: 1,
+				pageNum: 1,
+				pageSize: 10
+			},
+			userIdentity:0,
+			productList: [],
+			nomoreText: '上拉显示更多',
+			hasNextPage: false,
+			loadding: false,
+			pullUpOn: true,
+			pullFlag: true,
+			isRequest: false
+		}
+	},
+	onLoad() {
+		this.initGetStotage()
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'identity', 'isActivity'])
+	},
+	methods: {
+		async initGetStotage() {
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.userId = userInfo.userId ? userInfo.userId : 0
+			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
+			this.getSvipProductPage()
 		},
-		data() {
-			return {
-				StaticUrl:this.$Static,
-				isModallayer:false,
-				banner:'https://img.caimei365.com/group1/M00/00/28/rB-lGGE4XKWADKAdAANR7wZz3OQ936.jpg',
-				params:{
-					userId:0,
-					redemptionCode:'',
-					source:2,
-				},
-				productList:[
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:0,
-						priceFlag:1,
-						originalPrice:100,
-						price:5000000,
-						actStatus:0,
-						promotions:null,
-						isChecked:false,
-						productIds:1000,
-						proType:1,
-						discount:'8.8折'
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:1,
-						priceFlag:2,
-						originalPrice:100,
-						price:500000,
-						actStatus:1,
-						promotions:{
-							type:1,
-							mode:1,
-							name:'优惠价'
-						},
-						isChecked:false,
-						productIds:1001,
-						proType:2,
-						discountPrice:50000,
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:1,
-						priceFlag:1,
-						originalPrice:100,
-						price:5000000,
-						actStatus:1,
-						promotions:{
-							type:0,
-							mode:0,
-							name:'单品满减'
-						},
-						isChecked:false,
-						productIds:1002,
-						proType:0,
-						discountPrice:50000,
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:1,
-						priceFlag:0,
-						originalPrice:100,
-						price:50000000,
-						actStatus:1,
-						promotions:null,
-						isChecked:false,
-						productIds:1003,
-						proType:0,
-						discountPrice:50000,
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:0,
-						priceFlag:1,
-						originalPrice:100,
-						price:5000000,
-						actStatus:1,
-						promotions:null,
-						isChecked:false,
-						productIds:1000,
-						proType:1,
-						discount:'8.8折'
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:1,
-						priceFlag:2,
-						originalPrice:100,
-						price:500000,
-						actStatus:1,
-						promotions:{
-							type:1,
-							mode:1,
-							name:'优惠价'
-						},
-						isChecked:false,
-						productIds:1001,
-						proType:2,
-						discountPrice:50000,
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:1,
-						priceFlag:0,
-						originalPrice:100,
-						price:5000000,
-						actStatus:1,
-						promotions:{
-							type:0,
-							mode:0,
-							name:'单品满减'
-						},
-						isChecked:false,
-						productIds:1002,
-						proType:0,
-						discountPrice:50000,
-					},
-					{
-						image:'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-						name:'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-						unit:'台',
-						ladderPriceFlag:1,
-						priceFlag:0,
-						originalPrice:100,
-						price:50000000,
-						actStatus:0,
-						promotions:null,
-						isChecked:false,
-						productIds:1003,
-						proType:0,
-						discountPrice:50000,
+		getSvipProductPage() {
+			// 获取会员优惠商品列表
+			this.coupinList = []
+			this.listQuery.pageNum = 1
+			this.ProductService.getSvipProductPage(this.listQuery)
+				.then(response => {
+					let data = response.data.svipProductPage
+					this.banner = response.data.adsImage
+					if (data.results && data.results.length > 0) {
+						this.showEmpty = false
+						this.hasNextPage = data.hasNextPage
+						this.productList = data.results
+						this.pullFlag = false
+						setTimeout(() => {
+							this.pullFlag = true
+						}, 500)
+						if (this.hasNextPage) {
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						} else {
+							if (this.coupinList.length < 8) {
+								this.pullUpOn = true
+							} else {
+								this.pullUpOn = false
+								this.loadding = false
+								this.nomoreText = '已至底部'
+							}
+						}
+					} else {
+						this.showEmpty = true
 					}
-				]
-			}
+					this.isRequest = true
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
 		},
-		onLoad() {
-			
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2)
-			}
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','identity','isActivity'])
-		},
-		methods: {
-			PromotionsFormat(promo){//促销活动类型数据处理
-				if(promo!=null){
-					if(promo.type == 1 && promo.mode == 1){
-						return true
-					}else{
-						return false
+		getOnReachBottomData() {
+			// 上滑加载分页
+			this.listQuery.pageNum += 1
+			this.ProductService.getSvipProductPage(this.listQuery)
+				.then(response => {
+					let data = response.data.svipProductPage
+					if (data.results && data.results.length > 0) {
+						this.hasNextPage = data.hasNextPage
+						this.productList = this.productList.concat(data.results)
+						this.pullFlag = false // 防上拉暴滑
+						setTimeout(() => {
+							this.pullFlag = true
+						}, 500)
+						if (this.hasNextPage) {
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						} else {
+							this.pullUpOn = false
+							this.loadding = false
+							this.nomoreText = '已至底部'
+						}
 					}
-				}
-				return false
-			},
-			productDetail(productId) {
-				this.isModallayer = true
-				this.$api.navigateTo(`/pages/goods/product?id=${productId}`)
-				this.isModallayer = false
-			},
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
 		},
-		onPullDownRefresh() {
-			setTimeout(() => {
-				uni.stopPullDownRefresh()
-			}, 200)
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
 		},
-		onShow(){
-			this.$api.getComStorage('userInfo').then((resolve) =>{
-				this.params.userId = resolve.userId ? resolve.userId : 0
-			}).catch(error =>{
-				console.log('暂无用户信息~')
-			})
+		productDetail(productId) {
+			this.isModallayer = true
+			this.$api.navigateTo(`/pages/goods/product?id=${productId}`)
+			this.isModallayer = false
+		}
+	},
+	onPullDownRefresh() {
+		setTimeout(() => {
+			this.getSvipProductPage()
+			uni.stopPullDownRefresh()
+		}, 200)
+	},
+	onReachBottom() {
+		if (this.hasNextPage) {
+			this.loadding = true
+			this.pullUpOn = true
+			this.getOnReachBottomData()
 		}
+	},
+	onShow() {
+		
 	}
+}
 </script>
 
 <style lang="scss">
-	page{
-		background-color: #F7F7F7;
-	}
-	.container{
-		width: 100%;
-		height: auto;
-	}
-	.cm-member-top{
+page {
+	background-color: #f7f7f7;
+}
+.container {
+	width: 100%;
+	height: auto;
+}
+.cm-member-top {
+	width: 100%;
+	height: 340rpx;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	margin: 24rpx 0 0 0;
+	.banner {
 		width: 100%;
 		height: 340rpx;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		margin: 24rpx 0 0 0;
-		.banner{
-			width: 100%;
-			height: 340rpx;
-			display: block;
-			border-radius: 16rpx;
-		}
+		display: block;
+		border-radius: 16rpx;
 	}
-	.cm-member-main{
+}
+.cm-member-main {
+	width: 100%;
+	box-sizing: border-box;
+	padding: 0 24rpx 24rpx 24rpx;
+	background-color: #f7f7f7;
+	.cm-member-product {
 		width: 100%;
-		box-sizing: border-box;
-		padding: 0  24rpx 24rpx 24rpx;
-		background-color: #F7F7F7;
-		.cm-member-product{
-			width: 100%;
-			margin-top: 24rpx;
-			.product-list{
+		margin-top: 24rpx;
+		.product-list {
+			width: 339rpx;
+			height: 516rpx;
+			border-radius: 16rpx;
+			float: left;
+			margin-right: 24rpx;
+			margin-bottom: 24rpx;
+			background-color: #ffffff;
+			&:nth-child(2n) {
+				margin-right: 0;
+			}
+			.product-image {
 				width: 339rpx;
-				height: 560rpx;
-				border-radius: 16rpx;
-				float: left;
-				margin-right: 24rpx;
-				margin-bottom: 24rpx;
-				background-color: #FFFFFF;
-				&:nth-child(2n){
-					margin-right: 0;
-				}
-				.product-image{
+				height: 339rpx;
+				image {
 					width: 339rpx;
 					height: 339rpx;
-					image{
-						width: 339rpx;
-						height: 339rpx;
-						display: block;
-						border-radius: 16rpx 16rpx 0 0;
+					display: block;
+					border-radius: 16rpx 16rpx 0 0;
+				}
+			}
+			.product-mains {
+				width: 100%;
+				height: auto;
+				box-sizing: border-box;
+				padding: 0 24rpx;
+				margin-top: 8rpx;
+				.product-name {
+					height: 72rpx;
+					line-height: 36rpx;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					display: -webkit-box;
+					-webkit-line-clamp: 2;
+					line-clamp: 2;
+					-webkit-box-orient: vertical;
+					font-size: $font-size-26;
+					color: #333333;
+					text-align: justify;
+				}
+				.product-tags {
+					width: 100%;
+					height: 32rpx;
+					margin-top: 6rpx;
+					.floor-item-act {
+						width: 100%;
+						height: 32rpx;
+						text-align: center;
+						box-sizing: border-box;
+						float: left;
 					}
 				}
-				.product-mains{
+				.product-price {
 					width: 100%;
-					height: auto;
-					box-sizing: border-box;
-					padding: 0 24rpx;
+					line-height: 37rpx;
+					font-size: $font-size-26;
+					color: #333333;
 					margin-top: 8rpx;
-					.product-name{
-						line-height: 36rpx;
-						text-overflow: ellipsis;
-						overflow: hidden;
-						display: -webkit-box;
-						-webkit-line-clamp: 2;
-						line-clamp: 2;
-						-webkit-box-orient: vertical;
-						font-size: $font-size-26;
-						color: #333333;
-						text-align: justify;
+					.list-none-price {
+						text-decoration: line-through;
+						color: #999999;
 					}
-					.product-tags{
-						width: 100%;
+				}
+				.product-svip {
+					width: 100%;
+					height: 32rpx;
+					margin-top: 10rpx;
+					.svip {
+						padding-left: 44rpx;
 						height: 32rpx;
-						margin-top: 6rpx;
-						.floor-item-act{
-							width: 100%;
+						position: relative;
+						.tags {
+							width: 60rpx;
 							height: 32rpx;
+							background-color: #333333;
 							text-align: center;
-							box-sizing: border-box;
-							float: left;
+							line-height: 32rpx;
+							font-size: $font-size-22;
+							color: #f0cb72;
+							position: absolute;
+							left: 0;
+							top: 0;
+							border-radius: 8rpx 16rpx 8rpx 8rpx;
 						}
-					}
-					.product-price{
-						width: 100%;
-						line-height: 37rpx;
-						font-size: $font-size-26;
-						color: #333333;
-						margin-top: 8rpx;
-						.list-none-price{
-							text-decoration: line-through;
-							color: #999999;
-						}
-					}
-					.product-svip{
-						width: 100%;
-						height: 32rpx;
-						margin-top: 10rpx;
-						.svip{
-							padding-left: 44rpx;
+						.price {
 							height: 32rpx;
-							position: relative;
-							.tags{
-								width: 60rpx;
-								height: 32rpx;
-								background-color: #333333;
-								text-align: center;
-								line-height: 32rpx;
-								font-size: $font-size-22;
-								color: #F0CB72;
-								position: absolute;
-								left: 0;
-								top: 0;
-								border-radius: 8rpx 16rpx 8rpx 8rpx;
-							}
-							.price{
-								height: 32rpx;
-								box-sizing: border-box;
-								border-radius:0 8rpx 8rpx 0;
-								background-color: #F0CB72;
-								line-height: 32rpx;
-								color: #333333;
-								text-align: center;
-								padding:0 9rpx 0 25rpx;
-								font-size: $font-size-26;
-								float: left;
-							}
+							box-sizing: border-box;
+							border-radius: 0 8rpx 8rpx 0;
+							background-color: #f0cb72;
+							line-height: 32rpx;
+							color: #333333;
+							text-align: center;
+							padding: 0 9rpx 0 25rpx;
+							font-size: $font-size-26;
+							float: left;
 						}
 					}
 				}
 			}
 		}
 	}
+}
 </style>

+ 224 - 142
pages/user/member/member-record.vue

@@ -2,185 +2,267 @@
 	<view class="container clearfix">
 		<view class="cm-member-top">
 			<view class="cm-member-head">
-				<view class="cm-member-text">
+				<view class="cm-member-text" v-if="isRequest">
 					<view class="cm-member-h1">
-						<text>采美·超级会员</text>
+						<text v-if="userVip.vipFlag == 1">已开通采美·超级会员</text>
+						<text v-if="userVip.vipFlag == -1">采美·超级会员已过期</text>
 					</view>
 					<view class="cm-member-p">
-						<text>有效期至:2021-10-01</text>
+						<text>有效期至:{{ userVip.endTime }}</text>
 					</view>
 				</view>
 			</view>
 		</view>
 		<view class="cm-member-main">
-			<view class="record-list" v-for="(pay,index) in payList" :key="index" >
+			<view class="record-list" v-for="(pay, index) in payList" :key="index">
 				<view class="record-list-type">
-					<view class="list-type-h1"> {{ pay.text }} </view>
-					<view class="list-type-p"> {{ pay.time }} </view>
+					<view class="list-type-h1">超级会员套餐-{{ pay.packageId | MonthFormat}} </view>
+					<view class="list-type-p"> {{ pay.payTime }} </view>
 				</view>
 				<view class="record-list-text">
-					<text v-if="pay.type == 1">¥{{ pay.money }}</text>
-					<text v-else>{{ pay.money }}采美豆</text>
+					<text v-if="pay.payWay == 4">{{ pay.userBeans }}采美豆</text> 
+					<text v-else>¥{{ pay.price | NumFormat }}</text>
 				</view>
 			</view>
+			<!--加载loadding-->
+			<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+			<tui-nomore :visible="!pullUpOn" :backgroundColor="'#F7F7F7'" :text="nomoreText"></tui-nomore>
+			<!--加载loadding-->
 		</view>
 	</view>
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex'
-	export default {
-		components:{
-			
-		},
-		data() {
-			return {
-				StaticUrl:this.$Static,
-				memberType:0,
-				tabCurrent:0,
-				params:{
-					userId:0,
-					redemptionCode:'',
-					source:2,
-				},
-				payList:[
-					{month:'1个月',money:'600',type:1,text:'超级会员套餐-1个月',time:'2021-09-28  13:54:48'},
-					{month:'3个月',money:'1500',type:1,text:'超级会员套餐-3个月',time:'2021-09-28  13:54:48'},
-					{month:'12个月',money:'4800',type:1,text:'超级会员套餐-12个月',time:'2021-09-28  13:54:48'},
-					{month:'12个月',money:'48000',type:2,text:'超级会员套餐-12个月',time:'2021-09-28  13:54:48'},
-				],
-				payAmount:4800,
-				payBeans:480000,
-			}
-		},
-		onLoad() {
-			
-		},
-		filters: {
-			TypeFormat:function(value) {
-				switch (value) {
-					case 0:
-						return  '活动券'
-						break
-					case 1:
-						return  '品类券'
-						break
-					case 2:
-						return  '用户专享券'
-						break
-					case 3:
-						return  '店铺券'
-						break
-					case 4:
-						return  '新用户券'
-						break
-				}
+import { mapState, mapMutations } from 'vuex'
+export default {
+	components: {},
+	data() {
+		return {
+			StaticUrl: this.$Static,
+			memberType: 0,
+			tabCurrent: 0,
+			listQuery: {
+				userId: 0,
+				pageNum: 1,
+				pageSize: 10
+			},
+			userVip: {},
+			payList: [],
+			payAmount: 4800,
+			payBeans: 480000,
+			nomoreText: '上拉显示更多',
+			hasNextPage: false,
+			loadding: false,
+			pullUpOn: true,
+			pullFlag: true,
+			isRequest: false
+		}
+	},
+	onLoad() {
+		this.initGetStotage()
+	},
+	filters: {
+		MonthFormat(value) {
+			switch (value) {
+				case 1:
+					return '12个月'
+					break
+				case 2:
+					return '3个月'
+					break
+				case 3:
+					return '1个月'
+					break
 			}
 		},
-		computed: {
-			...mapState(['hasLogin','userInfo','identity','isActivity'])
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	computed: {
+		
+	},
+	methods: {
+		async initGetStotage() {
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.userId = userInfo.userId ? userInfo.userId : 0
+			this.getUserSuperCenter()
+			this.getUserSuperHistory()
 		},
-		methods: {
-			handleCheckedPay(index,pay){// 选择会员
-				this.tabCurrent = index
-				this.payAmount = pay.money
-				this.payBeans = pay.beans
-			}
+		getUserSuperCenter() {
+			// 获取会员中心数据
+			this.UserService.getUserSuperCenter({ userId: this.listQuery.userId })
+				.then(response => {
+					let data = response.data
+					this.userVip = data.vip
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
 		},
-		onPullDownRefresh() {
-			setTimeout(() => {
-				uni.stopPullDownRefresh()
-			}, 200)
+		getUserSuperHistory() {
+			// 获取会员购买记录列表
+			this.coupinList = []
+			this.listQuery.pageNum = 1
+			this.UserService.getUserSuperHistory(this.listQuery)
+				.then(response => {
+					let data = response.data
+					if (data.list && data.list.length > 0) {
+						this.showEmpty = false
+						this.hasNextPage = data.hasNextPage
+						this.payList = data.list
+						this.pullFlag = false
+						setTimeout(() => {
+							this.pullFlag = true
+						}, 500)
+						if (this.hasNextPage) {
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						} else {
+							if (this.coupinList.length < 8) {
+								this.pullUpOn = true
+							} else {
+								this.pullUpOn = false
+								this.loadding = false
+								this.nomoreText = '已至底部'
+							}
+						}
+					} else {
+						this.showEmpty = true
+					}
+					this.isRequest = true
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
 		},
-		onShow(){
-			this.$api.getComStorage('userInfo').then((resolve) =>{
-				this.params.userId = resolve.userId ? resolve.userId : 0
-			}).catch(error =>{
-				console.log('暂无用户信息~')
-			})
+		getOnReachBottomData() {
+			// 上滑加载分页
+			this.listQuery.pageNum += 1
+			this.UserService.getUserSuperHistory(this.listQuery)
+				.then(response => {
+					let data = response.data
+					if (data.list && data.list.length > 0) {
+						this.hasNextPage = data.hasNextPage
+						this.payList = this.payList.concat(data.list)
+						this.pullFlag = false // 防上拉暴滑
+						setTimeout(() => {
+							this.pullFlag = true
+						}, 500)
+						if (this.hasNextPage) {
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						} else {
+							this.pullUpOn = false
+							this.loadding = false
+							this.nomoreText = '已至底部'
+						}
+					}
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
 		}
+	},
+	onPullDownRefresh() {
+		setTimeout(() => {
+			this.getUserSuperHistory()
+			uni.stopPullDownRefresh()
+		}, 200)
+	},
+	onReachBottom() {
+		if (this.hasNextPage) {
+			this.loadding = true
+			this.pullUpOn = true
+			this.getOnReachBottomData()
+		}
+	},
+	onShow() {
+		
 	}
+}
 </script>
 
 <style lang="scss">
-	.container{
-		width: 100%;
-		height: auto;
-	}
-	.cm-member-top{
-		width: 100%;
-		height: 242rpx;
+.container {
+	width: 100%;
+	height: auto;
+}
+.cm-member-top {
+	width: 100%;
+	height: 242rpx;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	background: url(https://static.caimei365.com/app/img/icon/icon-member-bg01@2x.png) no-repeat;
+	background-size: cover;
+	position: relative;
+	.cm-member-head {
+		width: 702rpx;
+		height: 132rpx;
 		box-sizing: border-box;
-		padding: 0 24rpx;
-		background: url(https://static.caimei365.com/app/img/icon/icon-member-bg01@2x.png) no-repeat;
+		padding: 30rpx 32rpx 0 109rpx;
+		background: url(https://static.caimei365.com/app/img/icon/icon-member-bg02@2x.png) no-repeat;
 		background-size: cover;
-		position: relative;
-		.cm-member-head{
-			width: 702rpx;
-			height: 132rpx;
-			box-sizing: border-box;
-			padding: 30rpx 32rpx 0 109rpx;
-			background: url(https://static.caimei365.com/app/img/icon/icon-member-bg02@2x.png) no-repeat;
-			background-size: cover;
-			position: absolute;
-			bottom: 0;
-			left: 24rpx;
-			border-radius: 16rpx 16rpx 0 0;
-			.cm-member-text{
-				float: left;
-				.cm-member-h1{
-					line-height: 42rpx;
-					font-size: $font-size-30;
-					color: #55331D;
-					text-align: left;
-					margin-bottom: 12rpx;
-					font-weight: bold;
-				}
-				.cm-member-p{
-					line-height: 30rpx;
-					font-size: $font-size-22;
-					color: #55331D;
-					text-align: left;
-				}
+		position: absolute;
+		bottom: 0;
+		left: 24rpx;
+		border-radius: 16rpx 16rpx 0 0;
+		.cm-member-text {
+			float: left;
+			.cm-member-h1 {
+				line-height: 42rpx;
+				font-size: $font-size-30;
+				color: #55331d;
+				text-align: left;
+				margin-bottom: 12rpx;
+				font-weight: bold;
+			}
+			.cm-member-p {
+				line-height: 30rpx;
+				font-size: $font-size-22;
+				color: #55331d;
+				text-align: left;
 			}
 		}
 	}
-	.cm-member-main{
+}
+.cm-member-main {
+	width: 100%;
+	box-sizing: border-box;
+	padding: 40rpx 24rpx;
+	background-color: #ffffff;
+	margin-bottom: 20rpx;
+	.record-list {
 		width: 100%;
+		height: 135rpx;
+		border-bottom: 1px solid #f0f0f0;
 		box-sizing: border-box;
-		padding: 40rpx 24rpx;
-		background-color: #FFFFFF;
-		margin-bottom: 20rpx;
-		.record-list{
-			width: 100%;
-			height: 135rpx;
-			border-bottom: 1px solid #F0F0F0;
-			box-sizing: border-box;
-			padding: 24rpx 0;
-			.record-list-type{
-				float: left;
-				height: 100%;
-				.list-type-h1{
-					line-height: 37rpx;
-					font-size: $font-size-26;
-					color: #333333;
-					text-align: left;
-					margin-bottom: 16rpx;
-				}
-				.list-type-p{
-					line-height: 33rpx;
-					font-size: $font-size-24;
-					color: #999999;
-					text-align: left;
-				}
+		padding: 24rpx 0;
+		.record-list-type {
+			float: left;
+			height: 100%;
+			.list-type-h1 {
+				line-height: 37rpx;
+				font-size: $font-size-26;
+				color: #333333;
+				text-align: left;
+				margin-bottom: 16rpx;
 			}
-			.record-list-text{
-				float: right;
-				line-height: 86rpx;
-				font-size: $font-size-34;
-				color: #FF2A2A;
-				text-align: right;
+			.list-type-p {
+				line-height: 33rpx;
+				font-size: $font-size-24;
+				color: #999999;
+				text-align: left;
 			}
 		}
+		.record-list-text {
+			float: right;
+			line-height: 86rpx;
+			font-size: $font-size-34;
+			color: #ff2a2a;
+			text-align: right;
+		}
 	}
+}
 </style>

+ 4 - 2
pages/user/member/member-renew.vue

@@ -144,8 +144,10 @@ export default {
 			this.PayService.getUserRegisterSuperBeans(this.payParam)
 				.then(response => {
 					this.isShowBeansModal = false
-					this.$util.msg('开通成功', 2000, true, 'success')
-					this.getUserSuperCenter()
+					this.$util.msg('续费成功', 2000, true, 'success')
+					setTimeout(()=>{
+						this.$api.navigateTo('/pages/user/member/member')
+					},2000)
 				})
 				.catch(error => {
 					this.$util.msg(error.msg, 2000)

+ 43 - 124
pages/user/member/member.vue

@@ -111,7 +111,7 @@
 						<view class="product-name"> {{ pro.name }} </view>
 						<view class="product-tags">
 							<view class="floor-item-act">
-								<view class="coupon-tags">优惠券</view>
+								<view class="coupon-tags" v-if="pro.couponsLogo">优惠券</view>
 								<template v-if="pro.actStatus == 1">
 									<view class="floor-tags" v-if="PromotionsFormat(pro.promotions)">
 										{{ pro.promotions.name }}
@@ -119,24 +119,30 @@
 									</view>
 									<view class="floor-tags" v-else>{{ pro.promotions.name }}</view>
 								</template>
-								<template v-else>
-									<view class="svip-tags" v-if="pro.proType == 0">
-										<view class="tags none">SVIP</view>
-									</view>
-									<view class="svip-tags" v-if="pro.proType == 1">
-										<view class="tags">SVIP</view> <view class="price">{{ pro.discount }}</view>
-									</view>
-									<view class="svip-tags" v-if="pro.proType == 2">
-										<view class="tags">SVIP</view>
-										<view class="price">¥{{ pro.discountPrice | NumFormat }}</view>
-									</view>
+								<template v-if="pro.svipProductFlag == 1">
+									<template v-if="pro.priceFlag != 1 && userIdentity == 2">
+										<view class="svip-tags">
+											<view class="tags">SVIP</view>
+											<view
+												class="price"
+												>{{ pro.svipPriceTag }}</view
+											>
+										</view>
+									</template>
+									<template v-else>
+										<view class="svip-tags">
+											<view class="tags none">SVIP</view>
+										</view>
+									</template>
 								</template>
 							</view>
 						</view>
 						<view class="product-price">
 							<view class="list-none" v-if="pro.priceFlag == 1">¥未公开价格</view>
-							<view class="list-none" v-else-if="pro.priceFlag == 2">¥价格仅会员可见</view>
-							<view class="list-none-price" v-else>¥{{ pro.price | NumFormat }}</view>
+							<template v-else>
+								<view class="list-none" v-if="pro.priceFlag == 2 && userIdentity == 4">¥价格仅会员可见</view>
+								<view class="list-none-price" v-else>¥{{ pro.price | NumFormat }}</view>
+							</template>
 						</view>
 					</view>
 				</view>
@@ -183,6 +189,7 @@ export default {
 			isShowBeansModal: false,
 			memberType: 0,
 			tabCurrent: 0,
+			userIdentity:0,
 			userVip: {},
 			handelPayMsg: {
 				beans: 480000,
@@ -190,7 +197,6 @@ export default {
 				month: '12个月',
 				packageId: 1
 			},
-			userIdentity: 0,
 			payParam: {
 				userId: 0,
 				packageId: 1
@@ -242,114 +248,14 @@ export default {
 					privName: '更多特权'
 				}
 			],
-			productCouponList: [
-				{
-					couponAmount: 5000,
-					touchPrice: 2000,
-					couponType: 0,
-					productType: 1,
-					categoryType: 1,
-					shopName: null,
-					useStatus: 0
-				},
-				{
-					couponAmount: 5000,
-					touchPrice: 2000,
-					couponType: 1,
-					productType: 1,
-					categoryType: 1,
-					shopName: null,
-					useStatus: 0
-				},
-				{
-					couponAmount: 5000,
-					touchPrice: 2000,
-					couponType: 2,
-					productType: 1,
-					categoryType: 1,
-					shopName: null,
-					useStatus: 1
-				},
-				{
-					couponAmount: 5000,
-					touchPrice: 2000,
-					couponType: 3,
-					productType: 1,
-					categoryType: 1,
-					shopName: null,
-					useStatus: 1
-				}
-			],
-			productList: [
-				{
-					image: 'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-					name: 'ET-SPACE全身热疗系统生物热能太空舱',
-					unit: '台',
-					ladderPriceFlag: 0,
-					priceFlag: 1,
-					originalPrice: 100,
-					price: 500,
-					actStatus: 1,
-					promotions: null,
-					isChecked: false,
-					productIds: 1000,
-					proType: 1,
-					discount: '8.8折'
-				},
-				{
-					image: 'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-					name: 'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-					unit: '台',
-					ladderPriceFlag: 1,
-					priceFlag: 2,
-					originalPrice: 100,
-					price: 500,
-					actStatus: 1,
-					promotions: {
-						type: 1,
-						mode: 1,
-						name: '优惠价'
-					},
-					isChecked: false,
-					productIds: 1001,
-					proType: 2,
-					discountPrice: 5000000
-				},
-				{
-					image: 'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-					name: 'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-					unit: '台',
-					ladderPriceFlag: 1,
-					priceFlag: 0,
-					originalPrice: 100,
-					price: 5000000,
-					actStatus: 1,
-					promotions: {
-						type: 0,
-						mode: 0,
-						name: '单品满减'
-					},
-					isChecked: false,
-					productIds: 1002,
-					proType: 0,
-					discountPrice: 5000000
-				},
-				{
-					image: 'https://img.caimei365.com/group1/M00/00/10/rB-lGGCHqP-AIE9-AAEQHiqWjQY981.png',
-					name: 'ET-SPACE全身热疗系统全身热疗系统生物热能太空舱',
-					unit: '台',
-					ladderPriceFlag: 1,
-					priceFlag: 0,
-					originalPrice: 100,
-					price: 50000000,
-					actStatus: 1,
-					promotions: null,
-					isChecked: false,
-					productIds: 1003,
-					proType: 0,
-					discountPrice: 50000
-				}
-			]
+			listQuery: {
+				userId: 0,
+				source: 1,
+				pageNum: 1,
+				pageSize: 4
+			},
+			productCouponList: [],
+			productList: []
 		}
 	},
 	onLoad() {},
@@ -384,7 +290,7 @@ export default {
 	methods: {
 		async initGetStotage() {
 			const userInfo = await this.$api.getStorage()
-			this.payParam.userId = userInfo.userId ? userInfo.userId : 0
+			this.payParam.userId = this.listQuery.userId =userInfo.userId ? userInfo.userId : 0
 			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
 			this.getUserSuperCenter()
 		},
@@ -394,12 +300,24 @@ export default {
 				.then(response => {
 					let data = response.data
 					this.userVip = data.vip
+					this.getSvipProductPage()
 					this.isRequest = true
 				})
 				.catch(error => {
 					this.$util.msg(error.msg, 2000)
 				})
 		},
+		getSvipProductPage() {
+			// 获取会员中心商品数据
+			this.ProductService.getSvipProductPage(this.listQuery)
+				.then(response => {
+					let data = response.data.svipProductPage
+					this.productList = data.results
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
 		hanldeShowBeans() {
 			// 显示采美豆抵扣开通超级会员弹窗
 			this.isShowBeansModal = true
@@ -805,6 +723,7 @@ page {
 				padding: 0 24rpx;
 				margin-top: 8rpx;
 				.product-name {
+					height: 72rpx;
 					line-height: 36rpx;
 					text-overflow: ellipsis;
 					overflow: hidden;

+ 3 - 6
pages/user/order/order-list.vue

@@ -154,13 +154,10 @@
 															>{{ pros.productPromotion.name }}</view
 														>
 													</template>
-													<template v-else>
-														<view class="svip-tags" v-if="pros.ladderPriceFlag == 1 && pros.productType ==0">
-															<view class="tags">SVIP</view> <view class="price">8折</view>
-														</view>
-														<view class="svip-tags" v-if="pros.ladderPriceFlag == 0 && pros.productType ==0">
+													<template v-if="pros.svipPriceFlag == 1">
+														<view class="svip-tags">
 															<view class="tags">SVIP</view>
-															<view class="price">¥{{ pros.price | NumFormat }}</view>
+															<view class="price">{{ pros.svipPriceTag }}</view>
 														</view>
 													</template>
 												</view>

+ 168 - 155
services/product.service.js

@@ -112,15 +112,15 @@ export default class ProductService {
 	 * @param:productID 用户ID(必填)
 	 * @param:productCount 商品数量(必填)
 	 */
-	shoppingAddCart (data = {}) {
-		return this.AjaxService.post({
-			url:'/order/club/cart/add',
-			data,
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/**
+    shoppingAddCart (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/add',
+            data,
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /**
 	 * @查询购物车数量
 	 * @param:userId 用户ID(必填)
 	 */
@@ -136,27 +136,27 @@ export default class ProductService {
 	 * @购物车列表
 	 * @param:userId 用户ID(必填)
 	 */
-	QueryShoppingCartList (data = {}) {
-		return this.AjaxService.get({
-			url:'/order/club/cart/list',
-			data,
-			isLoading: false ,
-			isHost:true
-		})
-	}
+    QueryShoppingCartList (data = {}) {
+        return this.AjaxService.get({
+            url:'/order/club/cart/list',
+            data,
+            isLoading: false ,
+            isHost:true
+        })
+    }
 	
     /**
 	 * @更新购物车加减数量
 	 * @param:userId 用户ID(必填)
 	 */
-	ShoppingCartUpdate (data = {}) {
-		return this.AjaxService.post({
-			url:'/order/club/cart/update',
-			data,
-			isLoading: false ,
-			isHost:true
-		})
-	}
+    ShoppingCartUpdate (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/update',
+            data,
+            isLoading: false ,
+            isHost:true
+        })
+    }
 	
     /**
 	 * @购物车领券弹窗优惠券列表
@@ -165,140 +165,140 @@ export default class ProductService {
 	 * @param:source 来源 1 WWW 2小程序
 	 * @param:status 状态 1 未领取 2已领取
 	 */
-	ShoppingCartGetCoupon(data = {}) {
-		return this.AjaxService.get({
-			url:'/order/club/coupon',
-			data,
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/**
+    ShoppingCartGetCoupon(data = {}) {
+        return this.AjaxService.get({
+            url:'/order/club/coupon',
+            data,
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /**
 	 * @删除购物车商品
 	 * @param:userId 用户ID(必填)
 	 * @param:productIDs 商品ID(用','号拼接)
 	 */
-	ShoppingCartDelete (data = {}) {
-		return this.AjaxService.post({
-			url:'/order/club/cart/delete',
-			data,
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/* 二级列表 */
-	GetPageTopic (data = {}) {
-		return this.AjaxService.get({ url:'/page/topic', data, isLoading: false })
-	}
-	/* 二级列表banner */
-	GetPageTopicBanner (data = {}) {
-		return this.AjaxService.get({ url:'/page/topic/info', data, isLoading: false })
-	}
-	/* 活动专题列表 */
-	GetPromotionsrList (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/promotions/list', 
-			data, 
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/* 搜索项目仪器列表 */
-	GetSearchEquipmentList (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/search/query/equipment', 
-			data, 
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/* 项目仪器详情 */
-	GetEquipmentDetails (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/equipment/details', 
-			data, 
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/* 查询搜索历史记录 */
-	GetProductSearchHistory (data = {}) {
-		return this.AjaxService.get({ url:'/product/searchHistory', data, isLoading: false })
-	}
-	/* 添加搜索历史记录 */
-	GetAddProductSearchHistory (data = {}) {
-		return this.AjaxService.get({ url:'/product/history/add', data, isLoading: true })
-	}
-	/* 清除搜索历史记录 */
-	GetDeleteProductSearchHistory (data = {}) {
-		return this.AjaxService.get({ url:'/product/searchHistory/delete', data, isLoading: false })
-	}
-	/* 搜索商品列表 */
-	GetProductSearchList (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/search/query/product', 
-			data, 
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/* 搜索分类商品列表 */
-	GetSearchProductTypeData (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/search/query/product/type', 
-			data, 
-			isLoading: true,
-			isHost:true
-		})
-	}
-	/* 搜索分类商品列表 */
-	GetSearchCombinationProduct (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/seller/product/combination', 
-			data, 
-			isLoading: true,
-			isHost:true
-		})
-	}
-	/* 获取商品评价 */
-	GetProductEvaluate (data = {}) {
-		return this.AjaxService.get({ url:'/product/evaluate', data, isLoading: false })
-	}
-	/* 获取再次购买商品列表 */
-	GetRepeatBuyAgainProductList (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/product/repeat', 
-			data, 
-			isLoading: true ,
-			isHost:true
-		})
-	}
-	/* 新商品搜索查询商品阶梯价格 */
-	GetSearchProductLadderPrice (data = {}) {
-		return this.AjaxService.get({ 
-			url:'/commodity/price/ladder', 
-			data, 
-			isLoading: false,
-			isHost:true
-		})
-	}
-	/* 获取分类导航 */
-	GetProductClassify (data = {}) {
-		return this.AjaxService.get({ url:'/product/classify', data, isLoading: true })
-	}
-	/* 获取小程序三个模块商品列表 */
-	GetProductPreferred (data = {}) {
-		return this.AjaxService.get({ url:'/product/preferred', data, isLoading: true })
-	}
-	/* 发票信息回显 */
-	GetPersonalCenterFindInvoice (data = {}) {
-		return this.AjaxService.get({ url:'/personalCenter/findInvoice', data, isLoading: false })
-	}
-	/* 发票信息保存 */
-	GetPersonalCenterInvoice (data = {}) {
-		return this.AjaxService.post({ url:'/personalCenter/invoice', data, isLoading: true })
-	}
-	/**
+    ShoppingCartDelete (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/delete',
+            data,
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /* 二级列表 */
+    GetPageTopic (data = {}) {
+        return this.AjaxService.get({ url:'/page/topic', data, isLoading: false })
+    }
+    /* 二级列表banner */
+    GetPageTopicBanner (data = {}) {
+        return this.AjaxService.get({ url:'/page/topic/info', data, isLoading: false })
+    }
+    /* 活动专题列表 */
+    GetPromotionsrList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/promotions/list', 
+            data, 
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /* 搜索项目仪器列表 */
+    GetSearchEquipmentList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/equipment', 
+            data, 
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /* 项目仪器详情 */
+    GetEquipmentDetails (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/equipment/details', 
+            data, 
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /* 查询搜索历史记录 */
+    GetProductSearchHistory (data = {}) {
+        return this.AjaxService.get({ url:'/product/searchHistory', data, isLoading: false })
+    }
+    /* 添加搜索历史记录 */
+    GetAddProductSearchHistory (data = {}) {
+        return this.AjaxService.get({ url:'/product/history/add', data, isLoading: true })
+    }
+    /* 清除搜索历史记录 */
+    GetDeleteProductSearchHistory (data = {}) {
+        return this.AjaxService.get({ url:'/product/searchHistory/delete', data, isLoading: false })
+    }
+    /* 搜索商品列表 */
+    GetProductSearchList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/product', 
+            data, 
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /* 搜索分类商品列表 */
+    GetSearchProductTypeData (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/product/type', 
+            data, 
+            isLoading: true,
+            isHost:true
+        })
+    }
+    /* 搜索分类商品列表 */
+    GetSearchCombinationProduct (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/seller/product/combination', 
+            data, 
+            isLoading: true,
+            isHost:true
+        })
+    }
+    /* 获取商品评价 */
+    GetProductEvaluate (data = {}) {
+        return this.AjaxService.get({ url:'/product/evaluate', data, isLoading: false })
+    }
+    /* 获取再次购买商品列表 */
+    GetRepeatBuyAgainProductList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/product/repeat', 
+            data, 
+            isLoading: true ,
+            isHost:true
+        })
+    }
+    /* 新商品搜索查询商品阶梯价格 */
+    GetSearchProductLadderPrice (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/price/ladder', 
+            data, 
+            isLoading: false,
+            isHost:true
+        })
+    }
+    /* 获取分类导航 */
+    GetProductClassify (data = {}) {
+        return this.AjaxService.get({ url:'/product/classify', data, isLoading: true })
+    }
+    /* 获取小程序三个模块商品列表 */
+    GetProductPreferred (data = {}) {
+        return this.AjaxService.get({ url:'/product/preferred', data, isLoading: true })
+    }
+    /* 发票信息回显 */
+    GetPersonalCenterFindInvoice (data = {}) {
+        return this.AjaxService.get({ url:'/personalCenter/findInvoice', data, isLoading: false })
+    }
+    /* 发票信息保存 */
+    GetPersonalCenterInvoice (data = {}) {
+        return this.AjaxService.post({ url:'/personalCenter/invoice', data, isLoading: true })
+    }
+    /**
 	 * @优惠券-是定商品活动页列表
 	 * @param:userId 用户userId(未登录传0)
 	 * @param:pageNum 页码
@@ -422,5 +422,18 @@ export default class ProductService {
             isHost:true
         })
     }
+    /**
+	 * @会员优惠商品
+	 * @param:userId 用户userId(必传)
+	 * @param:productIDs 商品Id字符串逗号隔开
+	 */
+    getSvipProductPage (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/svip/product/page',
+            data,
+            isLoading: true ,
+            isHost:true
+        })
+    }
 	
 }

+ 14 - 0
services/user.service.js

@@ -405,6 +405,20 @@ export default class UserService {
         return this.AjaxService.get({ 
             url:'/user/super/center', 
             data, 
+            isLoading: false,
+            isHost:true
+        })
+    }
+    /**
+	 *@会员购买记录
+	 *@param userId	用户Id
+	 *@param pageNum	页码
+	 *@param pageSize	条数
+	 */
+    getUserSuperHistory (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/user/super/history', 
+            data, 
             isLoading: true,
             isHost:true
         })